react 表格组件使用说明

基础使用

import ITable from '@/components/Table/index';

{

"result":true,

"data":{

"list":[...list...],

"current":1,

"pageSize":10,

"totalCount":57

}

}

tableData参数说明

参数

说明

类型

默认值

版本

url

接口路径

string

--

1.0.0

size

表格大小

default | middle | small

default

1.0.0

rowSelection

是否打开多选

boolean

false

1.0.0

columns

列参数(参看antd-table)

array

--

1.0.0

dataToOut

数据是否外送处理

boolean

false

1.0.0

addParams

新增请求参数(见说明1)

object

--

1.1.0

lineIndex

排序

boolean

false

1.1.0

handleOverflow

全局溢出处理

boolean

false

1.2.0

falseData

假数据字段

array

--

1.2.0

changePageParam

新页码、条数、总条数、列表属性参数(见说明2)

object

--

1.2.3

method

请求方式

post | get

post

1.2.3

const tableData = {

url: 'xx/xx/xxx',

lineIndex: true,

rowSelection: false,

method: 'post',

columns: [{

title: '姓名',

dataIndex: 'name',

align: 'center',

},{...

},{

title: '操作',

align: 'center',

render: (record) => (

查看

编辑

)

}]

}

说明:

addParams传入新参数后无法清除,伴随组件终身,如需使用过程中删除可调用inputParam() 方法实现。

changePageParam修改默认的页码、页条数、总条数字段,用于后端列表请求体未统一时。例子:

const tableData = {

url: ...,

lineIndex: true, // 序号

rowSelection: true, // 多选

changePageParam: {page:'pageNo',totalCount:'total',pagesize:'xxx',list: 'list'},

columns: [{...}]

changePageParam对象的key值只能为page(页码)、totalCount(列表总条数)、pagesize(页条数),如果key值不是这三个中的一个控制台会报相应的错误,报错如下:

在1.2.3版本中新增返回体自定义参数list,用法:changePageParam: {totalCount:'自定义总条数参数'list: '自定义列表参数'},key值不是list以前上个版本的三个同样会报错。

columns参数说明

参数

说明

类型

默认值

版本

overflow

单独列溢出处理

boolean

false

1.2.0

外送数据参数说明

方法

说明

类型

版本

getTableDatas

外送数据处理参数(用于复杂数据过滤)

Function(data)

1.0.0

getSelectData

外送多选选中数据

Function(data)

1.0.0

ref={ ITable => this.table = ITable }

tableData={attendanceData}

getTableDatas={this.handleData}

getSelectData={this.handleSeleteData} />

/**

* 多选数据处理

* @param e 多选选中数据

*/

handleSeleteData(e){

console.log(e);

}

/**

* 外送数据处理

* @param e 外送数据

*/

handleData(e){

console.log(e);

}

效果

方法说明

方法

说明

类型

版本

inputData

外送数据处理后返回表格再显示 (用于复杂数据过滤)

Function(data)

1.0.0

inputParam

传入新参数进行筛选

Function(object)

1.0.0

setCheckboxProps

单选后其他不可选中

Function(key)

1.1.3

refresh

表格刷新功能

Function()

1.2.0

setUnselect

设置不可选择条目

Function(param,key,type)

1.2.2

cleanSelectedRow

清除已选中

Function()

1.2.4

举例说明

ref={ ITable => this.table = ITable }

tableData={tableData}

getTableDatas={this.handleData} />

/**

* 表格信息处理函数

* @param e 表格外送数据

*/

handleData = (e) => {

let data = e.list;

// 外送数据处理

// 。。。。

this.table.inputData(data); // 回传组件显示

}

/**

* 搜索、重置

* @param e 事件

* @param status 搜索/重置标志位(true:搜索,false:重置)

*/

handleSearch = (e, status) => {

e.preventDefault();

if (status) {

const keyword = this.props.form.getFieldValue('key');

this.table.inputParam({nameOrProjectCode: keyword}); // 传入请求参数实现筛选

} else {

// 重置移除插入参数

this.props.form.setFieldsValue({ key: '' });

this.table.inputParam({nameOrProjectCode: null}); // 传入请求参数实现筛选

}

};

/**

* 单选后其余不可选中

* @param list 选中条目

*/

getSelectData=(list)=>{

if (list.length === 1) {

this.table.setCheckboxProps(list[0].key) // 传入key值进行比较使用

}

}

/**

* 不可选设置

* @param param 表格某个字段

* @param key 不可选判断目

* @param type 判断类型true:record[param]===key是不可选,false:record[param]!==key是不可选

*/

componentDidMount(){

this.table.setUnselect('addStatus', 1, false)

}

待处理问题

当页面中有三个表格时且page和pageSize都不一样时打开另一个表格其他的序号会变为NaN且请求也会顺带出错

分页可以优化下使用antd table自带的anchange回调

溢出处理也可以使用antd table自带的属性

更新说明

版本汇总

版本号

发行时间

更新内容

1.0.0

2019.12.31

新增分页、多选、筛选等基础功能

1.1.0

2020.01.13

多选数据外送、排序、表格大小设置功能

1.1.1

2020.01.14

完善重置功能,传空值则重置

1.1.2

2020.02.06

修复翻页多选不清除问题

1.1.3

2020.02.10

单选后其他不可选中功能(setCheckboxProps)

1.2.0

2020.02.11

新增内置内容溢出处理、假数据显示、手动刷新功能

1.2.1

2020.02.14

优化请求体页码、页条数、总条数可修改

1.2.2

2020.02.17

新增条目不可选设置

1.2.3

2020.02.26

新增自定义返回体、get请求方式

1.2.4

2020.03.19

bug修复,同步scroll滚动条属性

1.2.5

2020.04.13

修复已知bug

版本说明

# 1.0.0

基础版本,包含分页。多选、筛选、复杂数据外送过滤等基础表格功能

# 1.1.0

解决表格分页后排序不连续问题;

新增多选数据外送、设置表格尺寸大小功能

# 1.1.1

上个版本重置需要将输入字段手动置空处理:

​this.table.inputParam({corpName: '',proCorpCode: undefined});

现在完善传入空值既重置:

​this.table.inputParam();(ps: 当然你也可以延用之前的传入空值进行重置)

# 1.1.2

修复多选选中时翻页选中效果依旧存在的问题。

如果要多页间多选可以在多选触发 getSelectData() 时自行处理

# 1.1.3

新增单选后其他不可选中功能。

缺点:只能选择一个,因为本身功能使用情况就很少,所以暂不考虑多选情况,待出现多选后不可选中需求再做增加

# 1.2.0

新增内置内容溢出处理、假数据显示、手动刷新功能

内容溢出处理:设置handleOverflow=true; 既判断每列参数是否有width属性,有则溢出隐藏用省略号代替溢出部 分(鼠标覆盖显示全部);单独列处理不设置handleOverflow,在列中设置overflow=true(鼠标覆盖显示全部);如果不想隐藏只想换行,则设置overflow=false;

假数据显示:设置falseData;

手动刷新功能:调用refresh,有时需要刷新表格可以用到;

列开关(未实现):之前外部列参数设置rander也能实现,列属性代码如下:

title: '联动状态',

dataIndex: 'linkageStatus',

key: 'linkageStatus',

align: 'center',

render: (text, record, index) => {

return (

disabled={record.equipStatus !== '启动'}

title={record.linkageStatus === '0' ? '确定要关闭吗?' : '确定要打开吗?'}

onConfirm={() => this.connectionChange(index, record.linkageStatus, record.equipmentCode)}

okText="确定"

cancelText="取消" >

)

}

所以暂不考虑内置,下个#1.3.0版本有望加入

# 1.2.1

优化请求体页码、页条数、总条数可修改

之前这三个参数是不可修改的(page,pageSize,totalCount),这就导致后端请求体、返回体没做统一的时候组件是不可用的。这个版本将这三个参数名设置为变量,就可以灵活设置了。同时限定只能修改这三个参数,否则会报错。

# 1.2.2

新增条目不可选设置setUnselect(param, key, type)

# 1.2.3

新增自定义返回体、get请求方式

**请求方式设置:**新增method参宿,默认post请求方式,备选get,暂不支持其他请求方式。

自定义返回体:changePageParam: {totalCount:'自定义总条数属性名参数'list: '自定义列表属性名参数'},要求这两个参数在返回体的同一个对象里(多层嵌套也行),且不能有多个列表名一样、列表长度也显示条数一样数据,例如:

// 正确

{

"result":true,

"data":{

"list":[...list...],

"current":1,

"pageSize":10,

"totalCount":57

}

}

// 错误

{

"result":true,

"data":{

"list":[...list...],

"current":1,

"pageSize":10,

},

"totalCount":57

}

// 或者

{

"result":true,

"data":{

"list":[...list...], // 名称为list,长度为10

"current":1,

"pageSize":10,

"totalCount":57

},

"data":{

"data":{

"list":[...list...], // 名称为list,长度为10

"current":1,

"pageSize":10,

"totalCount":57

}

}

}

# 1.2.4

bug修复,同步scroll滚动条属性

同步antd表格组件的scroll属性,用于适应1366分辨率事表格显示错乱问题。

修复tabs组件标签页切换不刷新导致请求体不同报405错误,setMethod(params);

修复同个页面多个组件相互切换时自定义数据不刷新问题;

修复使用假数据是依旧请求接口问题;

新增表格清除多选方法cleanSelectedRow();

修复接口请求失败时分页失效问题;

修复条数改变后分页pageSize设置导致分页失效问题;

# 1.2.5

修复已知bug

修复refresh时可能存在的外送、筛选参数丢失问题,refresh()方法优化

修复筛选参数清除时请求接口筛选参数未清除问题,inputParam()判断优化

修复表格重绘时全局参数重置问题

完善报错时或者请求失败时有外送数据的依旧有数据外送

注释获取数据为空时的提示

滚动条参数同步,新增scroll,用于不同分辨率适配

更改拼写错误字段addPramas为addParams

react-antdTable-secondEncapsulation

react 封装表格组件_GitHub - lzq741167479/react-antdTable-secondEncapsulation: antd Design 表格组件二次封装...相关推荐

  1. Echarts的二次封装思考心得。封装成果:折线柱状混合图、立体柱状折线混合图、markline标记线

    先说一下这次对ECharts二次封装总结的一些东西吧,感觉这是重点! 二次封装及使用的矛盾痛点: 一般封装只会暴露出一些常用的属性,最常见的如图表的颜色.数据: 封装人员也不会考虑把所有情况都封装起来 ...

  2. Retrofit网络加载库二次封装支持RxJava与Flow-HttpUtils

    Retrofit网络加载库二次封装支持RxJava与Flow-HttpUtils HttpUtils是Retrofit网络加载库二次封装支持RxJava与Flow,包含网络加载动画.activity销 ...

  3. antd picker 使用 如何_如何基于jsoneditor二次封装一个可实时预览的json编辑器组件?(react版)...

    前言 做为一名前端开发人员,掌握vue/react/angular等框架已经是必不可少的技能了,我们都知道,vue或react等MVVM框架提倡组件化开发,这样一方面可以提高组件复用性和可扩展性,另一 ...

  4. ag-grid表格基本使用方法-React版本

    AG表格基本用法及Api 在要使用的项目中,首次使用需要引入相关组件包(注:项目中所有组件都是封装之后的).引入方式如下:import {Table} from 'pkg/common/table' ...

  5. 厉害的组件_企业级React UI组件库——React Suite

    介绍 React Suite是一套转为后端打造的企业级UI组件库,它由 HYPERS 前端团队与 UX 团队共同打造,在经历了几次大版本更新后,积累了大量的通用组件和功能,而且支持 Typescrip ...

  6. client高性能组件化框架React简单介绍、特点、环境搭建及经常使用语法

    [本文源址:http://blog.csdn.net/q1056843325/article/details/54729657 转载请加入该地址] 明天就是除夕了 预祝大家新春快乐 [ ]~( ̄▽ ̄) ...

  7. react组件放在数组中_为什么要在函数组件中使用React.memo?

    这里提一下,如果大家看到这个标题有所疑惑的话,可以花点时间看一下本篇文章.反之呢如果是看到标题第一时间就反映出结论的话,就可以去get其他文章的知识点了 那么接下来就不废话了,直接长刀直入,进入正题! ...

  8. 使用react实现select_使用 Hooks 优化 React 组件

    奇技指南 本文内容主要是我之前分享的文字版,若想看重点的话可以看之前的Slide: https://ppt.baomitu.com/d/75fc979a 本文作者奇舞团前端开发工程师李喆明. 需求描述 ...

  9. antd中table组件中如何进行换行操作(react中)

    antd中table组件中如何进行换行操作(react中) 说明 效果 数据 代码 说明 react项目,遇到某字段对应的单元格内需要换行. 最初想偷懒,尝试了在数据中加入回车.使用模板字符串.转义字 ...

最新文章

  1. 从硅谷走出来,它们的成功有迹可循
  2. python特性 property_python 特性 property
  3. HP Z840 工作站配sSAS Raid 安装 Ubuntu 16.04 系统
  4. HashMap散列无序存储测试
  5. Ineedle驱动方式dpdk测试性能
  6. 夯实基础开新局--全国乡镇党委换届工作进展顺利
  7. 解析UML箭头、线条代表的意义
  8. php解析psd图层,PSD解析工具实现(七)
  9. 考研英国文学复习要点
  10. 主存、辅存、内存、外存、存储器是什么?还傻傻分不清楚?看完这一篇就够了
  11. Xmind2021分享
  12. 《农民的终结》读书笔记优秀范文2700字
  13. jemeter压测中所遇报错-connect
  14. Unity XCode自动发布ipa
  15. 网页播放视频解决代码(来自百度知道)
  16. QT中C++程序和QML的集成
  17. 2020.7.13 筛选tagged后的语料excel中的动名词搭配
  18. 文件管理“桌面”变成“Desktop”解决方法
  19. 通过关键字获取JD商品列表API接口
  20. Camera sersor 数据传输--DVP、SPI及MIPI

热门文章

  1. python 爬虫遇到的aiohttp证书错误解决办法
  2. 星露谷远程联机教程-基于frp内网穿透
  3. 用Inno Setup制作以管理员身份运行的安装包
  4. 传说中的5G iPhone真的来了?!
  5. 微软Tech Summit 2017,微软携手Unity打造MR之夜
  6. python实现restful接口_使用python为mysql实现restful接口
  7. iOS调用系统相册显示英文标题
  8. ComboBox绑定IList 或 ArrayList
  9. OpenCV-python通过滑条调节两张图片的融合度,通过修改像素对目标区域画上矩形,获取图像的像素
  10. Map转换为String