vue循环遍历出来的表单输入框 如何做校验?

发布时间 2023-04-28 15:13:29作者: 左手倒影ZY
有多种输入框,下拉框等循环出来,红字部分是关键
<el-form ref="form" :model="submitForm" label-width="120px" @keyup.enter.native="adjust" @submit.native.prevent > <el-card shadow="never" header="审批信息" body-style="padding: 22px 22px 0 22px;" style="margin-top: 15px" > <el-row :gutter="15"> <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }" v-for="(item, index) in submitForm.templateCodeList" :key="index" > <el-form-item :label="item.label + ':'" :prop="'templateCodeList.' + index + '.value'" :rules="{ required: item.required ? true : false, message: item.label, trigger: 'blur' }" v-show="item.componentName == 'TextField'" > <el-input v-model="item.value" :placeholder="item.label" clearable show-word-limit /> </el-form-item> <el-form-item :label="item.label + ':'" :prop="'templateCodeList.' + index + '.value'" :rules="{ required: item.required ? true : false, message: item.label, trigger: 'change' }" v-show="item.componentName == 'DDSelectField'" > <el-select style="width: 100%" v-model="item.value" placeholder="请选择" > <el-option v-for="item1 in item.options" :key="JSON.parse(item1).key" :label="JSON.parse(item1).value" :value="JSON.parse(item1).value" > </el-option> </el-select> </el-form-item> </el-col> </el-row> </el-card> <!-- 底部工具栏 --> <div class="ele-bottom-tool"> <div class="ele-bottom-tool-actions" style="text-align: center"> <el-button :loading="loading" @click="back"> 返回 </el-button> <el-button type="primary" :loading="loading" @click="adjust"> 推送钉钉审批 </el-button> </div> </div> </el-form>

 后台返回的数据结构:

[{
    "id": "TextField-K2AD4O5B",
    "label": "请输入原因",
    "bizAlias": "",
    "required": true,
    "options": null,
    "unit": null,
    "componentName": "TextField",
    "name": "请输入原因",
    "value": []
}, {
    "id": "DDSelectField_13X1EC31GOV40",
    "label": "职位1",
    "bizAlias": "",
    "required": false,
    "options": ["{\"value\":\"财务负责人\",\"key\":\"option_0\"}", "{\"value\":\"员工\",\"key\":\"option_1\"}", "{\"value\":\"工人\",\"key\":\"option_2\"}"],
    "unit": null,
    "componentName": "DDSelectField",
    "name": "职位1",
    "value": []
}]

 

submitForm: {
       templateCodeList: [
          name:'',
value:''
], },