elementui表单自定义校验及嵌套验证

2021-08-20  本文已影响0人  oNexiaoyao
indexConfigRules = {
    inputNormalStart: [
      { validator: (rule, value, callback, source, options) => {
        // source是跟value的值一致的键值对象
      }, trigger: 'blur' }
    ]
  }
  /** 指标配置验证规则 */
  indexConfigRules = {
    inputNormalStart: [
      { validator: (rule, value, callback) => {
        this.validateRange(rule, value, callback, 'inputNormalStart', 'inputNormalEnd');
      }, trigger: 'blur' }
    ],
    inputNormalEnd: [
      { validator: (rule, value, callback) => {
        this.validateRange(rule, value, callback, 'inputNormalStart', 'inputNormalEnd');
      }, trigger: 'blur' }
    ],
    inputStandardStart: [
      { validator: (rule, value, callback) => {
        this.validateRange(rule, value, callback, 'inputStandardStart', 'inputStandardEnd');
      }, trigger: 'blur' }
    ],
    inputStandardEnd: [
      { validator: (rule, value, callback) => {
        this.validateRange(rule, value, callback, 'inputStandardStart', 'inputStandardEnd');
      }, trigger: 'blur' }
    ],
    periodNormalStart: [
      { validator: (rule, value, callback) => {
        this.validateRange(rule, value, callback, 'periodNormalStart', 'periodNormalEnd');
      }, trigger: 'blur' }
    ],
    periodNormalEnd: [
      { validator: (rule, value, callback) => {
        this.validateRange(rule, value, callback, 'periodNormalStart', 'periodNormalEnd');
      }, trigger: 'blur' }
    ]
  }

  /**
   * @Des  {验证数字的有效范围}
   */
  validateRange(rule, value, callback, beforeKey, afterKey) {
    if (value) {
      if (this.indexConfigDialogForm[afterKey]) {
        if (parseFloat(this.indexConfigDialogForm[beforeKey]) > parseFloat(this.indexConfigDialogForm[afterKey])) {
          callback(new Error('输入范围有误,请检查'));
        } else {
          callback()
        }
      } else {
        callback()
      }
    } else {
      callback();
    }
  }
上一篇 下一篇

猜你喜欢

热点阅读