多列头可伸缩:
例如:业务中, 台账有多列数据,需要伸缩开更多数据,
代码
递归,递归给每列的表头加上拖拉的样式,然后给每列加上拖拉的方法,可以实现
(这只是class函数写的编辑表格,其他 hook中的table表格可以私信我)
// 多级列头可伸缩列
handleResizeMultiseriate = (index: any, child, fie, row) => (e: any, { size }: any) => {
// @ts-ignore
this.setState(({ columns }) => {
this.colNumber(columns, size.width, child, fie, row)
const nextColumns = [...columns];
nextColumns[index] = {
...nextColumns[index],
width: size.width
};
return { columns: nextColumns };
});
}
colNumber = (col, wid, child, fie, row) => { // colnumber
for (let k = 0; k < col.length; k++) {
if (col[k].children) {
this.colNumber(col[k].children, wid, child, fie, row)
} else {
col.map((v) => {
if (v.field === fie) {
v.width = wid
}
return v
})
}
}
}
colStyle = (columns, index) => { // 样式 属性
for (let i = 0; i < columns.length; i++) {
if (columns[i].children) {
this.colStyle(columns[i].children, index)
} else {
columns.map((v) => {
v.onHeaderCell = row => ({
// @ts-ignore
width: row.width,
onResize: this.handleResizeMultiseriate(index, 'children', v.field, row)
});
return v
})
}
}
};
render() {
。。。
columns.map((v, index) => {
if (v.children) {
this.colStyle(v.children, index)
}
})
。。。
}
解决方案:
递归,递归给每列的表头加上拖拉的样式,然后给每列加上拖拉的方法,可以实现
(这只是class函数写的编辑表格,其他 hook中的table表格可以私信我)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)