通用表格组件
安装/强依赖antd
npm install antd --save
npm install tf-table-react --save
引用
import TfTableReact from 'tf-table-react'
import 'tf-table-react/dist/index.min.css'
使用
index.js
; ; ; ; ; ; // 用户自定义组件 ; ; ; ; ; Component { superprops; thisstate = { // 表头有移动或变更后的回调 console; } // 表头数据,其中 checkColumn 多选标签列和 operation 操作列,agOrder序号列,为固定字段,不可设为 fieldName // 新增 tooltipField 字段,若有,则以单列设置为最高优先,若没有,则以全局 tooltipField 为准,用法: tooltipField: true/false columnData: rowData: null // 表格数据 rowSelection: hide: false // 是否隐藏选择列 type: 'multiple' // 多选模式,multiple 可多选,single 单选 { // 选中后回调 console // 返回当前选中的rowNode console; // 返回所有当前分页的rowNodes console; // 返回指定id的rowNode // setTimeout(()=>{ // 设定rowNodes 的选中状态 // // 取消选中 // this.tftableRef.setSelected(rowNodes,false); // },1000) } rowOrder: // 显示序号字段,字段名:agOrder hide: false width: 100 rowOperation: width: 300 hide: false // 是否隐藏操作列, 默认true pinned: 'left' // 操作列左右固定位置, left || right, 默认: right renderName: 'Operation' renderComponent: Operation pinnedRowCellRenderer: 'Blank' // 优先级高于renderComponent headerFilter: // key值要和columnData里的fieldName对应 'field1': HeaderFilterfield1 'field3': HeaderFilterfield3 // headerRender: { agColumnHeader: HeaderRender }, // 自定义头部,该功能起效,那么headerFilter就自动失效 headerFilterIcons: // 头部过滤自定义icon 'field1': '<i class="ag-icon ag-icon-menu" style="color:#000"/>' cellRenderer: // 内容表格自定义显示 'field1': CellRenderfield1 { // 自定义单元格样式 if paramsdataid < 3 && paramscolumncolId != 'checkColumn' && paramscolumncolId != 'operation' return backgroundColor: '#f00' color: '#fff' ; } { // 自定义单元格class名称 // if( params.data.id == 3 ){ return 'zpl-class' // } } pinnedRowCellRenderer: // 该数据的模板会覆盖 cellRenderer 里对应的模板,优先级最高,一般用于第一行作为筛选的场景 'field1': PinnedCellRenderer 'field2': PinnedCellRenderer context: componentParent: this // 用于自定义注册组件子传父操作 showFieldCheck: true // 是否显示右上角列过滤组件 pagination: hide : false // props : // 参考antd pagination文档说明 defaultCurrent: 1 total: 1 showSizeChanger: true showQuickJumper: true { return `共有20条` } { console this; } { console this; } pinnedTopRowData: 'checkColumn':'筛选' pinnedBottomRowData: 'checkColumn':'统计'field3:3'hxl':1{} localeText: noRowsToShow: '没有数据11' // 没有数据时的内容 loadingOoo: 'Loading...' // loading内容 tooltipField: false // 是否设置鼠标上移单元格显示value // 右上角列表icon自定义图标 fieldCheckIcon : <i className="ag-icon ag-icon-filter" style=padding:'1px'fontSize:23/> } // 获取表头数据 { } // 获以表格内容数据 { } // 设置统计数据 { const a = thisstatepinnedBottomRowData0; const n = 'abc'+ Math thistftableRef; } // 设置筛选数据 { thistftableRef; } { this; } { this; } { return <div style=width: '90vw'height: '90vh'> <TfTableReact ...thisstate ref= thistftableRef = tftableRef/> </div> ; } ; ;
HeaderFilter/field1.js
; ; ; { superprops; console; } {} { console; // 调用父组件方法 thispropscontextcomponentParent } { return this$box } { return // antd DatePicker组件比较特殊,需要给它指定自己的外层div <div ref= this$box = $box style=padding:10> <DatePicker size="small" getCalendarContainer=thisgetCalendarContainer onChange=thisonChange /> <Button size="small">确定</Button> </div> ; } ;
参数说明
参数名 | 默认值 | 说明 | 备注 |
---|---|---|---|
<!-- | columnData | [] | 表头数据,其中 checkColumn 多选标签列和 operation 操作列为固定字段,不可设为 fieldName |