动态改变校验项

307 阅读1分钟

PixPin_2024-01-04_15-42-41.gif

html

:validate-on-rule-change="false"是否在 rules 属性改变后立即触发一次验证 默认是true,这里改为false即可 以下根据 is_ruku字段进行判断

 <el-form :model="drawer_data"  :rules="drawer_datarule"  :validate-on-rule-change="false"></el-form>

如果想针对其中一条进行正则特殊校验,则需要将校验代码作为函数写在methods内

js


methods:{
// 校验规则:正整数和0
valiaNumber(rule, value, callback) {
      if (this.drawer_data.is_ruku == "0") {
        if (validataNumber(value)) {
          callback();
        } else {
          callback(new Error("请输入纯数字格式"));
        }
      }
    }, 
},


  computed: {
    drawer_datarule() {
      return {
        name: [{ required: true, message: "请输入", trigger: "blur" }],
        specs: [{ required: true, message: "请输入", trigger: "blur" }],
        manufacturer: [{ required: this.drawer_data.is_ruku == "1" ? false : true, message: "请输入", trigger: "blur" }],
        weight: [{ required: this.drawer_data.is_ruku == "1" ? false : true, validator: this.valiaNumber, trigger: "blur" }],
        contract_number: [{ required: this.drawer_data.is_ruku == "1" ? false : true, validator: this.valiaNumber_Zimu, trigger: "blur" }],
        original_value: [{ required: this.drawer_data.is_ruku == "1" ? false : true, message: "请输入", trigger: "blur" }],
        factory_no: [{ required: this.drawer_data.is_ruku == "1" ? false : true, message: "请输入", trigger: "blur" }],
        useful_life: [{ required: this.drawer_data.is_ruku == "1" ? false : true, validator: this.valiaNumber, trigger: "blur" }],
        warehouse_number: [{ required: this.drawer_data.is_ruku == "1" ? false : true, message: "请输入", trigger: "blur" }],
        check_number: [{ required: this.drawer_data.is_ruku == "1" ? false : true, validator: this.valiaNumber, trigger: "blur" }],
        after_sales: [{ required: this.drawer_data.is_ruku == "1" ? false : true, validator: this.valiaPhone, trigger: "blur" }],
        overall_size: [{ required: this.drawer_data.is_ruku == "1" ? false : true, message: "请输入", trigger: "blur" }],
        unit: [{ required: this.drawer_data.is_ruku == "1" ? false : true, message: "请选择", trigger: "blur" }],
        number: [{ required: this.drawer_data.is_ruku == "1" ? false : true, message: "请输入", trigger: "blur" }],
        buy_way: [{ required: true, message: "请选择", trigger: "blur" }],
        variety_code: [{ required: this.drawer_data.is_ruku == "1" ? false : true, message: "请输入", trigger: "blur" }],
        metering_code: [{ required: this.drawer_data.is_ruku == "1" ? false : true, message: "请选择", trigger: "blur" }],
        large_category_code: [{ required: true, message: "请选择", trigger: "blur" }],
        image: [{ required: this.drawer_data.is_ruku == "1" ? false : true, message: "请上传", trigger: "change" }],
        erp_code: [{ required: true, message: "请输入", trigger: "blur" }]
      };
    }
  },