![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPR5UNVpmT1cGROBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLxUDO2MzNwUTM3IzNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
这里只放简洁代码
html
<div class="cardCont">
<div v-for="(item,index) in formData" :key="index">
<el-form :ref="'form'" :model="formItemData(index)" :rules='formRules' class="cargoForm" :key="'form'+index">
<el-table border ref="table" :data="formData[index].goodsList" :key="'table'+index" >
<el-table-column>
<template slot-scope="scope">
<el-form-item :prop="'goodsList.'+scope.$index+'.goodsName'" :rules="formRules.goodsName">
<el-input v-model="scope.row.goodsName" placeholder="货物名称"></el-input>
</el-form-item>
</template>
</el-table-column>
</el-table>
</el-form>
</div>
<el-button @click='validateForm()'>验证</el-button>
</div>
大致数据格式
formData:[
{
userName: "",
goodsList: [{
"goodsName": "",
"goodsPack": "",
}]
}, {
userName: "",
goodsList: [{
"goodsName": "",
"goodsPack": "",
}]
},
]
methods 、computed
methods: {
validateForm() {
let flagArr = []
this.$refs.form.forEach(item=>{
item.validate((valid) => {
flagArr.push( valid)
})
})
let flag = flagArr.every((item, index) => {
return item
})
return flag
},
},
computed: {
formItemData() {
return function (index) {
return this.formData[index]
}
}
},