antd 可编辑树形表格的编辑问题
antd官网的table例子里有可编辑单元格表格和树形表格,但是没有可编辑树形表格.但是可以实现如下的效果
数据是递归生成的(主要是根据parenId和id)
renderTreeData = (data, id = 0) => {
let treeData = [];
data.forEach(item => {
if (item.parentId == id) {
const { id, inputTypeId, checkResult, remark = '添加备注' } = item;
let checkRsultMsg = inputTypeId == '2' ? '选择检查结果' : '输入检查结果'
let newItem = {};
newItem = {
...item,
key: id,
remark,
checkResult: checkResult ? checkResult : checkRsultMsg
}
newItem.children = this.renderTreeData(data, id);
!newItem.children.length && delete newItem.children
treeData.push(newItem);
}
})
return treeData;
}
我现在的写法只能编辑第一级数据和第二级再往里面编辑的话,就不知道怎么回显了。就是可以拿到编辑的值,但是不知道怎么去数组里改变对应的值
for (let i = 0; i < data.length; i++) {
if(data[i]['id'] == row.id) {
let item = data[i];
data.splice(i, 1, {
...item,
...row,
});
break
}else {
if(data[i]['children']) {
for (let j = 0; j < data[i]['children'].length; j++) {
if(data[i]['children'][j]['id'] == row.id) {
let val = data[i]['children'][j];
data[i]['children'].splice(j, 1, {
...val,
...row,
});
break
}
}
}
}
}
console.log(data)
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据表单中每个单元格的
record
和index
就可以判断出具体数据在哪里了。