mixins.js 17 KB
export const inputBlurValidate = {
  data() {
    return {
      queryForm: {
        minWeight: "",
        maxWeight: "",
        minNumOfPieces: "",
        maxNumOfPieces: "",
      },
      validateForm: true, // form表单节流阀
    };
  },
  methods: {
    // 最小件数失焦事件
    inputBlurMinPieces({ target }) {
      this.validateNumOfPieces(target.value, "minNumOfPieces");
    },
    // 最大件数失焦事件
    inputBlurMaxPieces({ target }) {
      this.validateNumOfPieces(target.value, "maxNumOfPieces");
    },
    // 最小重量失焦事件
    inputBlurMinWeight({ target }) {
      // 重量最小值和最大值都为空的情况下
      if (this.queryForm.minWeight == "" && this.queryForm.maxWeight == "") {
        this.validateForm = true;
        this.$refs.minWeight.innerHTML = "";
      }
      // 鼠标聚焦最小重量,最小重量无值的情况下去校验最大重量
      if (target.value == "" && this.queryForm.maxWeight) {
        if (
          /^(0|[1-9]\d*)(.\d{1,5})?$/.test(Number(this.queryForm.maxWeight))
        ) {
          this.validateForm = true;
          this.$refs.minWeight.innerHTML = "";
        }
      }
      // 最小重量有值的情况下
      if (target.value && Number(target.value) >= 0) {
        if (
          /^(0|[1-9]\d*)(.\d{1,5})?$/.test(Number(this.queryForm.maxWeight))
        ) {
          this.validateForm = true;
          this.$refs.minWeight.innerHTML = "";
        } else {
          this.validateForm = false;
          this.$refs.minWeight.innerHTML = "请输入有效重量,小数保留5位";
          // this.msgError("请输入有效重量,小数保留5位");
        }
        if (/^(0|[1-9]\d*)(.\d{1,5})?$/.test(Number(target.value))) {
          this.validateForm = true;
          this.$refs.minWeight.innerHTML = "";
        } else {
          this.validateForm = false;
          this.$refs.minWeight.innerHTML = "请输入有效重量,小数保留5位";
          // this.msgError("请输入有效重量,小数保留5位");
        }
      }
      // 重量最小值和最大值都不为空的情况下
      if (this.queryForm.minWeight && this.queryForm.maxWeight) {
        if (
          Number(this.queryForm.maxWeight) < Number(this.queryForm.minWeight)
        ) {
          this.validateForm = false;
          this.$refs.minWeight.innerHTML = "最小重量不得大于最大重量";
          // this.msgError("最小重量不得大于最大重量");
        }
      }
    },
    // 最大重量失焦事件
    inputBlurMaxWeight({ target }) {
      // 重量最小值和最大值都为空的情况下
      if (this.queryForm.minWeight == "" && this.queryForm.maxWeight == "") {
        this.validateForm = true;
        this.$refs.minWeight.innerHTML = "";
      }
      // 鼠标聚焦最大重量,最大重量无值的情况下去校验最小重量
      if (target.value == "" && this.queryForm.minWeight) {
        if (
          /^(0|[1-9]\d*)(.\d{1,5})?$/.test(Number(this.queryForm.minWeight))
        ) {
          this.validateForm = true;
          this.$refs.minWeight.innerHTML = "";
        } else {
          this.validateForm = false;
          this.$refs.minWeight.innerHTML = "请输入有效重量,小数保留5位";
          // this.msgError("请输入有效重量,小数保留5位");
        }
      }
      // 最大重量有值的情况下
      if (target.value && Number(target.value) >= 0) {
        if (
          /^(0|[1-9]\d*)(.\d{1,5})?$/.test(Number(this.queryForm.minWeight))
        ) {
          this.validateForm = true;
          this.$refs.minWeight.innerHTML = "";
        } else {
          this.validateForm = false;
          this.$refs.minWeight.innerHTML = "请输入有效重量,小数保留5位";
          // this.msgError("请输入有效重量,小数保留5位");
        }
        if (/^(0|[1-9]\d*)(.\d{1,5})?$/.test(Number(target.value))) {
          this.validateForm = true;
          this.$refs.minWeight.innerHTML = "";
        } else {
          this.validateForm = false;
          this.$refs.minWeight.innerHTML = "请输入有效重量,小数保留5位";
          // this.msgError("请输入有效重量,小数保留5位");
        }
      }
      // 重量最小值和最大值都不为空的情况下
      if (this.queryForm.minWeight && this.queryForm.maxWeight) {
        if (
          Number(this.queryForm.maxWeight) < Number(this.queryForm.minWeight)
        ) {
          this.validateForm = false;
          this.$refs.minWeight.innerHTML = "最小重量不得大于最大重量";
          // this.msgError("最小重量不得大于最大重量");
        }
      }
    },
    // 人民币最小申报价值
    inputCNYBlurMin({ target }, customVal) {
      // 申报价值最小值和最大值都为空的情况下
      if (this.queryForm.minCustomVal == "" && this.queryForm.maxCustomVal == "") {
        this.validateForm = true;
        this.$refs.minCNYCustomVal.innerHTML = "";
      }
      // 鼠标聚焦最小申报价值,最小申报价值无值的情况下去校验最大申报价值
      if (target.value == "" && this.queryForm.maxCustomVal) {
        if (/^(0|[1-9]\d*)(.\d{1,2})?$/.test(Number(this.queryForm.maxCustomVal))) {
          this.validateForm = true;
          this.$refs.minCNYCustomVal.innerHTML = "";
        }
      }
      // 最小申报价值有值的情况下
      if (target.value && Number(target.value) >= 0) {
        if (/^(0|[1-9]\d*)(.\d{1,2})?$/.test(Number(this.queryForm.maxCustomVal))) {
          this.validateForm = true;
          this.$refs.minCNYCustomVal.innerHTML = "";
        } else {
          this.validateForm = false;
          this.$refs.minCNYCustomVal.innerHTML = "请输入有效申报价值,小数保留2位";
        }
        if (/^(0|[1-9]\d*)(.\d{1,2})?$/.test(Number(target.value))) {
          this.validateForm = true;
          this.$refs.minCNYCustomVal.innerHTML = "";
        } else {
          this.validateForm = false;
          this.$refs.minCNYCustomVal.innerHTML = "请输入有效申报价值,小数保留2位";
        }
      }
      // 申报价值最小值和最大值都不为空的情况下
      if (this.queryForm.minCustomVal && this.queryForm.maxCustomVal) {
        if (Number(this.queryForm.maxCustomVal) < Number(this.queryForm.minCustomVal)) {
          this.validateForm = false;
          this.$refs.minCNYCustomVal.innerHTML = "最小申报价值不得大于最大申报价值";
        }
      }
    },
    // 人民币最大申报价值
    inputCNYBlurMax({ target }, customVal) {
      // 申报价值最小值和最大值都为空的情况下
      if (this.queryForm.minCustomVal == "" && this.queryForm.maxCustomVal == "") {
        this.validateForm = true;
        this.$refs.minCNYCustomVal.innerHTML = "";
      }
      // 鼠标聚焦最大申报价值,最大申报价值无值的情况下去校验最小申报价值
      if (target.value == "" && this.queryForm.minCustomVal) {
        if (/^(0|[1-9]\d*)(.\d{1,2})?$/.test(Number(this.queryForm.minCustomVal))) {
          this.validateForm = true;
          this.$refs.minCNYCustomVal.innerHTML = "";
        } else {
          this.validateForm = false;
          this.$refs.minCNYCustomVal.innerHTML = "请输入有效申报价值,小数保留2位";
        }
      }
      // 最大申报价值有值的情况下
      if (target.value && Number(target.value) >= 0) {
        if (/^(0|[1-9]\d*)(.\d{1,2})?$/.test(Number(this.queryForm.minCustomVal))) {
          this.validateForm = true;
          this.$refs.minCNYCustomVal.innerHTML = "";
        } else {
          this.validateForm = false;
          this.$refs.minCNYCustomVal.innerHTML = "请输入有效申报价值,小数保留2位";
        }
        if (/^(0|[1-9]\d*)(.\d{1,2})?$/.test(Number(target.value))) {
          this.validateForm = true;
          this.$refs.minCNYCustomVal.innerHTML = "";
        } else {
          this.validateForm = false;
          this.$refs.minCNYCustomVal.innerHTML = "请输入有效申报价值,小数保留2位";
        }
      }
      // 申报价值最小值和最大值都不为空的情况下
      if (this.queryForm.minCustomVal && this.queryForm.maxCustomVal) {
        if (Number(this.queryForm.maxCustomVal) < Number(this.queryForm.minCustomVal)) {
          this.validateForm = false;
          this.$refs.minCNYCustomVal.innerHTML = "最小申报价值不得大于最大申报价值";
        }
      }
    },
    // 美元最小申报价值
    inputSUDBlurMin({ target }, customVal) {
      // 申报价值最小值和最大值都为空的情况下
      if (this.queryForm.minUsdCustomVal == "" && this.queryForm.maxUsdCustomVal == "") {
        this.validateForm = true;
        this.$refs.minSUDCustomVal.innerHTML = "";
      }
      // 鼠标聚焦最小申报价值,最小申报价值无值的情况下去校验最大申报价值
      if (target.value == "" && this.queryForm.maxUsdCustomVal) {
        if (/^(0|[1-9]\d*)(.\d{1,2})?$/.test(Number(this.queryForm.maxUsdCustomVal))) {
          this.validateForm = true;
          this.$refs.minSUDCustomVal.innerHTML = "";
        }
      }
      // 最小申报价值有值的情况下
      if (target.value && Number(target.value) >= 0) {
        if (/^(0|[1-9]\d*)(.\d{1,2})?$/.test(Number(this.queryForm.maxUsdCustomVal))) {
          this.validateForm = true;
          this.$refs.minSUDCustomVal.innerHTML = "";
        } else {
          this.validateForm = false;
          this.$refs.minSUDCustomVal.innerHTML = "请输入有效申报价值,小数保留2位";
        }
        if (/^(0|[1-9]\d*)(.\d{1,2})?$/.test(Number(target.value))) {
          this.validateForm = true;
          this.$refs.minSUDCustomVal.innerHTML = "";
        } else {
          this.validateForm = false;
          this.$refs.minSUDCustomVal.innerHTML = "请输入有效申报价值,小数保留2位";
        }
      }
      // 申报价值最小值和最大值都不为空的情况下
      if (this.queryForm.minUsdCustomVal && this.queryForm.maxUsdCustomVal) {
        if (Number(this.queryForm.maxUsdCustomVal) < Number(this.queryForm.minUsdCustomVal)) {
          this.validateForm = false;
          this.$refs.minSUDCustomVal.innerHTML = "最小申报价值不得大于最大申报价值";
        }
      }
    },
    // 美元最大申报价值
    inputSUDBlurMax({ target }, customVal) {
      // 申报价值最小值和最大值都为空的情况下
      if (this.queryForm.minUsdCustomVal == "" && this.queryForm.maxUsdCustomVal == "") {
        this.validateForm = true;
        this.$refs.minSUDCustomVal.innerHTML = "";
      }
      // 鼠标聚焦最大申报价值,最大申报价值无值的情况下去校验最小申报价值
      if (target.value == "" && this.queryForm.minUsdCustomVal) {
        if (/^(0|[1-9]\d*)(.\d{1,2})?$/.test(Number(this.queryForm.minUsdCustomVal))) {
          this.validateForm = true;
          this.$refs.minSUDCustomVal.innerHTML = "";
        } else {
          this.validateForm = false;
          this.$refs.minSUDCustomVal.innerHTML = "请输入有效申报价值,小数保留2位";
        }
      }
      // 最大申报价值有值的情况下
      if (target.value && Number(target.value) >= 0) {
        if (/^(0|[1-9]\d*)(.\d{1,2})?$/.test(Number(this.queryForm.minUsdCustomVal))) {
          this.validateForm = true;
          this.$refs.minSUDCustomVal.innerHTML = "";
        } else {
          this.validateForm = false;
          this.$refs.minSUDCustomVal.innerHTML = "请输入有效申报价值,小数保留2位";
        }
        if (/^(0|[1-9]\d*)(.\d{1,2})?$/.test(Number(target.value))) {
          this.validateForm = true;
          this.$refs.minSUDCustomVal.innerHTML = "";
        } else {
          this.validateForm = false;
          this.$refs.minSUDCustomVal.innerHTML = "请输入有效申报价值,小数保留2位";
        }
      }
      // 申报价值最小值和最大值都不为空的情况下
      if (this.queryForm.minUsdCustomVal && this.queryForm.maxUsdCustomVal) {
        if (Number(this.queryForm.maxUsdCustomVal) < Number(this.queryForm.minUsdCustomVal)) {
          this.validateForm = false;
          this.$refs.minSUDCustomVal.innerHTML = "最小申报价值不得大于最大申报价值";
        }
      }
    },
    // 校验件数方法 【件数可以为空但件数不得为0】只能输入正整数
    validateNumOfPieces(value, pieces) {
      if (value.toString().length) {
        // 获取当前输入框有值的情况下
        this.queryForm[pieces] = Number(value);
        let markPieces = false;
        if (pieces == "minNumOfPieces" || pieces == "maxNumOfPieces") {
          // 最大件数和最小件数都不为空的情况下
          if (
            this.queryForm.minNumOfPieces.toString() != "" &&
            this.queryForm.maxNumOfPieces.toString() != ""
          ) {
            this.validateForm = true;
            this.$refs.minNumOfPieces.innerHTML = "";
            markPieces = true;
          } else {
            markPieces = false;
          }
        }
        if (/^\d+$/.test(this.queryForm[pieces])) {
          if (markPieces) {
            //当最大件数和最小件数都不为空的情况下,最大件数小于最小件数的时候
            if (this.queryForm.maxNumOfPieces < this.queryForm.minNumOfPieces) {
              if (Array.isArray(this.$refs.minNumOfPieces)) {
                this.msgError("最小件数不得大于最大件数");
                this.validateForm = false;
              } else {
                this.$refs.minNumOfPieces.innerHTML = "";
                this.$refs.minNumOfPieces.innerHTML =
                  "最小件数不得大于最大件数";
                this.validateForm = false;
              }
            }
            //当最大件数和最小件数都不为空的情况下,最大件数和最小件数小于1的时候
            else if (
              this.queryForm.minNumOfPieces < 1 ||
              this.queryForm.maxNumOfPieces < 1
            ) {
              if (Array.isArray(this.$refs.minNumOfPieces)) {
                this.msgError("最小件数和最大件数不能小于1");
                this.validateForm = false;
              } else {
                this.$refs.minNumOfPieces.innerHTML = "";
                this.$refs.minNumOfPieces.innerHTML =
                  "最小件数和最大件数不能小于1";
                this.validateForm = false;
              }
            }
            //当最大件数和最小件数都不为空的情况下,最大件数和最小件数满足大于1左区间小于等于右区间的时候
            else {
              this.$refs.minNumOfPieces.innerHTML = "";
              this.validateForm = true;
            }
          } else {
            // 当左右区间其中一个有值的情况下
            if (value.length) {
              if (Number(value) < 1) {
                if (Array.isArray(this.$refs.minNumOfPieces)) {
                  this.msgError("件数不得小于1");
                  this.$refs.minNumOfPieces.innerHTML = "";
                  this.$refs.minNumOfPieces.innerHTML = "件数不得小于1";
                  this.validateForm = false;
                } else {
                  this.msgError("件数不得小于1");
                  this.$refs.minNumOfPieces.innerHTML = "";
                  this.$refs.minNumOfPieces.innerHTML = "件数不得小于1";
                  this.validateForm = false;
                }
              } else {
                if (!Array.isArray(this.$refs.minNumOfPieces)) {
                  this.$refs.minNumOfPieces.innerHTML = "";
                  this.validateForm = true;
                }
              }
            }
          }
        } else {
          if (Array.isArray(this.$refs.minNumOfPieces)) {
            this.msgError("请输入有效件数");
          } else {
            this.queryForm[pieces] = value;
            this.$refs.minNumOfPieces.innerHTML = "";
            this.$refs.minNumOfPieces.innerHTML = "请输入有效件数";
          }
          this.validateForm = false;
        }
      } else {
        // 【左右区间不是都有值的情况下】
        // 最小件数为空最大件数有值的情况下
        if (pieces == "minNumOfPieces" && this.queryForm.maxNumOfPieces > 0) {
          this.$refs.minNumOfPieces.innerHTML = "";
          this.validateForm = true;
        } else {
          this.$refs.minNumOfPieces.innerHTML = "";
          this.$refs.minNumOfPieces.innerHTML = "最大件数不得小于1";
          this.validateForm = false;
        }
        // 最大件数为空最小件数有值的情况下
        if (pieces == "maxNumOfPieces" && this.queryForm.minNumOfPieces > 0) {
          this.$refs.minNumOfPieces.innerHTML = "";
          this.validateForm = true;
        } else {
          this.$refs.minNumOfPieces.innerHTML = "";
          this.validateForm = true;
        }
        // 左右区间 都为空的情况下
        if (
          this.queryForm.minNumOfPieces.toString().length == 0 &&
          this.queryForm.maxNumOfPieces.toString().length == 0
        ) {
          this.$refs.minNumOfPieces.innerHTML = "";
          this.validateForm = true;
        }
      }
      return this.validateForm;
    },
  },
};