数据格式为form对象中嵌套一层可循环数组,数组内嵌套table表格,也可循环
form: {
id: row.id,
process: [{
code: '',
log: [{
id: ''
}]
}]
}
<el-form :model="form" ref="form" v-for="(item, index) in form.process" :key="index" class="bord">
<el-form-item
:prop="'process.' + index + '.code'"
:rules="[{ required: true, message: '请选择数据', trigger: 'change' }]"
>
<el-select v-model="item.code" placeholder="请选择数据" @change="getChange(item,item.code)">
<el-option
v-for="i in data"
:key="i.value"
:label="i.label"
:value="i.value"
/>
</el-select>
</el-form-item>
<el-form :model="form.process[index]" ref="process.lage">
<el-table
ref="lage"
class="sort-table"
v-model="item.lage"
:data="item.lage"
max-height="240"
:header-cell-style="{textAlign: 'center'}"
:cell-style="{ textAlign: 'center' }"
>
<el-table-column
type="index"
label="序号"
width="60"
/>
<el-table-column
prop="id"
label="节点id"
width="80"
>
<template v-slot="scope">
<el-form-item
:prop="'lage.' + scope.$index + '.id'"
:rules="[{ required: true, message: '请输入id', trigger: 'blur' }]"
>
<el-input v-model="scope.row.id" placeholder="请输入id" />
</el-form-item>
</template>
</el-table-column>
</el-table>
</el-form>
</el-form>
点击按钮提交表单时校验
save() {
Promise.all([this.$refs['form'][0].validate(), this.$refs['process.lage'][0].validate()]).then(() => {
//接口等一系列正常操作
})
})
},