let columns = [
{
title: '责任人',
dataIndex: 'createTime4',
key: 'createTime4',
hideInSearch:true,
hideInTable:false,
hideInForm:false,
width: 100,
fieldProps:{ // 查询表单的 props,会透传给表单项,如果渲染出来是 Input,就支持 input 的所有 props,同理如果是 select,也支持 select 的所有 props。也支持方法传入
placeholder:'',
...
},
formItemProps:{ // 传递给 Form.Item 的配置,可以配置 rules,但是默认的查询表单 rules 是不生效的。
label:'' ,
validateTrigger:'onBlur', // 失去焦点触发
rules:[
{
required:true,
message:'xxxx',
transform(value){
...........
return 'xxx'
}
}
]
},
search:{ // 配置列的搜索相关,false 为隐藏
transform:(value)=>{
return {startTime:vlaue[0],endTime:vlaue[1]}
}
},
colSize:1,// 一个表单项占用的格子数量
filters:false, // 表头的筛选菜单项,当值为 true 时,自动使用 valueEnum 生成
onCell:(_:any, index:any) => { // 合并单元格
return {rowSpan:_.rowSpan4} // 行合并,处理数据见以下函数 changeData()
},
}
]
关联函数定义
1.changeData 处理数据 rowSpan值
// 正常每一条数据,需要合并的参数 如上: changeData(data,'createTime4')
const changeData = (data,field)=>{
let count = 0;//重复项的第一项
let indexCount = 1;//下一项
while (indexCount<data.length){
var item = data.slice(count,count+1)[0];//获取没有比较的第一个对象
if(!item.rowSpan){
item.rowSpan = 1;//初始化为1
}
if(item[field] === data[indexCount][field]){//第一个对象与后面的对象相比,有相同项就累加,并且后面相同项设置为0
item.rowSpan++;
data[indexCount].rowSpan = 0;
}else {
count = indexCount;
}
indexCount++;
}
}