1.获取表单数据,并处理格式
function editItems(id,sid){
showForm.value = true;
idNumber.value = id;
sidNumber.value = sid;
form.value = {};
formRules.value = {};
tables.value.forEach((s,i)=>{
if(id===i){
s.tableHeaderList.forEach(item=>{
item.placeholderName = '请输入' + item.headerName;
formRules.value[item.headerValue] = [{required: true, message: "请输入"+item.headerName, trigger: "blur"}];
})
formContent.value = s.tableHeaderList;
form.value = JSON.parse(JSON.stringify(s.tableContentList[sid])); // 对操作数据进行深拷贝,防止数据互相影响
}
})
}
2.生成动态表单
<el-form ref="formRef" :model="form" :rules="formRules" label-width="100px">
<el-form-item :label="headerName" :prop="headerValue" v-for="{headerName,headerValue,placeholderName} in formContent" :key="label">
<el-input v-model="form[headerValue]" :placeholder='placeholderName' />
</el-form-item>
</el-form>