antdv table+form行内校验

字段校验1:

<template v-if="resource === 2" slot="writeOffAmount" slot-scope="text, row, index">
  <a-form-model-item
    :prop="'recordPayList.' + index + '.writeOffAmount'"
    :rules="[
      {
        validator: (rule, value, callback) => {
          if (!value) {
            callback('请输入核销金额');
          } else if ( row.usableAmount > 0 && (Number(value) > row.usableAmount || Number(value) < 0)) {
            callback('数量值输入错误');
          } else if ( row.usableAmount < 0 && (Number(value) < row.usableAmount || Number(value) > 0)) {
            callback('数量值输入错误');
          } else if(!/^(-|\+)?\d{1,10}(\.\d{0,2})?$/.test(value)) {
            callback('整数10位,小数2位');
          } else if(Number(value) === 0){
            callback('不可为0');
          } else {
            callback();
          }
        },
        trigger: 'change',
      }
    ]"
  >
    <a-input v-model="row.writeOffAmount" @input="row.writeOffAmount = row.writeOffAmount.replace(/[^\-\d\.]/g, '')" />
  </a-form-model-item>
</template>

字段校验2:

<span slot="payableQuantity" slot-scope="payableQuantity, row, index">
  <a-form-model-item
    :wrapperCol="{ pan: 24 }"
    :rules="rules.payableQuantity"
    :prop="'purchaseDifferenceItemRespDtoList.' + index + '.payableQuantity'"
  >
    <a-input
      v-model="row.payableQuantity"
      :maxLength="10"
      @change="row.payableQuantity = row.payableQuantity.replace(/[^\d]/g, '')"
    />
  </a-form-model-item>
</span>

data(){
 return {
	rules: {
        // payableQuantity: [{ required: true, message: "请输入", trigger: "change" }],
        payableQuantity: [
          { required: true, message: "请输入", trigger: "change" },
          { validator: this.validatePass, trigger: "change" }
        ]
      },
  }
},
methods: {
  validatePass(rule, value, callback) {
    let index = Number(rule.field.split(".")[1]);
     let differenceQuantity = this.form.purchaseDifferenceItemRespDtoList[index].differenceQuantity
     if (value === "") {
       callback(new Error("请输入"));
     } else {
       if (parseFloat(value) > Math.abs(differenceQuantity)) {
         callback(new Error("不大于差异数量"));
       } else {
         callback();
       }
     }
   },
}

单独交验某个字段

this.$refs.ruleForm.validateField("purchaseItemRespDtoList." + index + ".newAmountIncludingTax");

取消校验

this.$refs.ruleForm.clearValidate([
  'purchaseItemRespDtoList.'+ index + '.newPriceIncludingTax',
  'purchaseItemRespDtoList.'+ index + '.newAmountIncludingTax'
]);
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值