el-form 对表单对象里的数组项进行校验

template部分

<div class="form-items" v-for="(data, index) in form.list" :key="index">
  <el-form-item 
    label="共用单位" 
    :rules="rules['attribute']" 
    :prop="'list.'+ index + '.attribute'"
  ></el-form-item>
</div>

data部分

rules: {
  attribute: [
    { required: true, message: "请选择", trigger: "change" },
    // 自定义校验
    { required: true, validator: (rule, value, callback) => {
      if (value && this.form.list) {
        let arr = this.form.list.reduce((r, v, i) => {
          return r.concat(v.attribute === value? i : [])
        }, [])
        if (value === this.form.institutionId) {
          callback(new Error('共用单位为本单位,请选择其他单位'))
        } else if (arr && arr.length > 1 && arr instanceof Array) {
          callback(new Error('单位填写重复,请重新选择'))
        } else {
          callback()
        }
      }
    },  trigger: "change" },
  ],
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值