//data里面以及请求接口保存数据的时候需要用下列的方式去写(如果接口原先没有fieldValue这个字段,需要循环遍历,给他先赋值为空字符串,如果有这个字段的话,直接赋值就行。。。)
const list = res.rows
list.forEach(item => {
item.fieldValue = ''
})
this.queryParams4.apOrderFieldList = list
//data里面定义的
queryParams4: {
apOrderFieldList: []
},
这两个字段与下面的代码要对应!!!!
<el-form v-if="queryParams4.apOrderFieldList.length>0" ref="queryParams4" :model="queryParams4" :inline="true"
label-width="80px">
<el-row v-for="(item, index) in queryParams4.apOrderFieldList" :key="index">
<el-col :span="24">
<el-form-item :label="item.chineseName" :prop="'apOrderFieldList.'+index+'.fieldValue'" :rules="[
{
required: item.defaultFlag == '1' ? true : false,
message: item.chineseName + '不能为空',
trigger: 'blur',
},
{
min: item.minLength,
max: item.maxLength,
message:
'长度在' +
item.minLength +
'到' +
item.maxLength +
'个字符',
trigger: 'blur',
}
]">
<el-input v-model="item.fieldValue" :placeholder="'请输入'+item.chineseName" clearable size="small"
style="width: 430px" type="text"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
image.png
借用网友的一张图,也就是画横线的几个地方必须要对应,否则会报下列的错误。
image.png
在切换tab的时候需要给表单校验清除掉,但是表单校验的清除必须在表单赋上值之后才可以清除,负责会报表单校验清除的方法为undefind
//这个表单要赋上值才可以
this.queryParams4.apOrderFieldList = list
// 有值的时候再去给他清楚
this.$nextTick(() => {
this.$refs.queryParams4 && this.$refs.queryParams4.clearValidate()
})