列表附件添加自定义列
场景描述
在列表形式的附件中增加列,输入值存储到附件的json数组中
实现思路
在附件组件的表格列渲染事件中,添加列,列中添加输入框组件,输入框的value属性绑定json的key,在输入框的onChange事件中将值写入json
实现步骤
例如在附件中增加版本号列,存入json的version中
onUpload0OnTableColumnRender(event){
//定义一个新的列
let col1 ={
title: '版本号',
ellipsis: {
showTitle: true,
},
render: (file) => (
<Input placeholder="请输入版本号" value={file.version} onChange={(value)=>{
//获取数据集中附件列中的数据
let str = event.source.getValue();
//转为json数组
let files = JSON.parse(str);
//遍历json数组,参数file是当前文件的json,和数据中的storeFileName对比,找到当前文件的json对象,将输入框中的值写入json对象
for(let oneFile of files){
if(oneFile.storeFileName == file.storeFileName){
oneFile.version = value.target.value;
}
}
//保存到数据集
event.source.doChange({value:JSON.stringify(files)});
}}/>
)
};
//加入到表格中
event.data.tableColumns.push(col1);
}