mixins.js 8.15 KB
export const inputBlurValidate = {
  data(){
    return {
      queryForm: {
        minWeight: "",
        maxWeight: "",
        minNumOfPieces: "",
        maxNumOfPieces: "",
      },
    };
  },
  methods: {
    // 最小件数失焦事件
    inputBlurMinPieces({ target }) {
      this.validateNumOfPieces(target.value, "minNumOfPieces");
    },
    // 最大件数失焦事件
    inputBlurMaxPieces({ target }) {
      this.validateNumOfPieces(target.value, "maxNumOfPieces");
    },
    // 最小重量失焦事件
    inputBlurMinWeight({ target }) {
      this.validateWeight(target.value, "minWeight");
    },
    // 最大重量失焦事件
    inputBlurMaxWeight({ target }) {
      this.validateWeight(target.value, "maxWeight");
    },
    // 最小申报价值
    inputBlurMin({ target }, customVal) {
      this.validateCustomVal(target.value, customVal);
    },
    // 最大申报价值
    inputBlurMax({ target }, customVal) {
      this.validateCustomVal(target.value, customVal);
    },
    // 校验件数方法 【件数可以为空但件数不得为0】只能输入正整数
    validateNumOfPieces(value, pieces) {
      if (value.length) {
        this.queryForm[pieces] = Number(value);
        let markPieces = false;
        if (pieces == "minNumOfPieces" || pieces == "maxNumOfPieces") {
          if (this.queryForm.minNumOfPieces && this.queryForm.maxNumOfPieces) {
            markPieces = Number(this.queryForm.maxNumOfPieces) < Number(this.queryForm.minNumOfPieces);
          }
        }
        if (/^\d+$/.test(this.queryForm[pieces])) {
          if (markPieces) {
            if (this.queryForm.maxNumOfPieces < this.queryForm.minNumOfPieces) {
              if (Array.isArray(this.$refs.minNumOfPieces)) {
                this.msgError("最小件数不得大于最大件数");
              } else {
                this.$refs.minNumOfPieces.innerHTML = "";
                this.$refs.minNumOfPieces.innerHTML = "最小件数不得大于最大件数";
              }
            } else if (
              this.queryForm.minNumOfPieces < 1 || this.queryForm.maxNumOfPieces < 1
            ) {
              if (Array.isArray(this.$refs.minNumOfPieces)) {
                this.msgError("最小件数和最大件数不能小于1");
              } else {
                this.$refs.minNumOfPieces.innerHTML = "";
                this.$refs.minNumOfPieces.innerHTML = "最小件数和最大件数不能小于1";
              }
            } else {
              if (!Array.isArray(this.$refs.minNumOfPieces)) {
                this.$refs.minNumOfPieces.innerHTML = "";
              }
            }
          } else {
            if (value.length) {
              if (Number(value) < 1) {
                if (Array.isArray(this.$refs.minNumOfPieces)) {
                  this.msgError("件数不得小于1");
                } else {
                  this.$refs.minNumOfPieces.innerHTML = "";
                  this.$refs.minNumOfPieces.innerHTML = "件数不得小于1";
                }
              } else {
                if (!Array.isArray(this.$refs.minNumOfPieces)) {
                  this.$refs.minNumOfPieces.innerHTML = "";
                }
              }
            }
          }
        } else {
          if (Array.isArray(this.$refs.minNumOfPieces)) {
            this.msgError("请输入有效件数");
          } else {
            this.$refs.minNumOfPieces.innerHTML = "";
            this.$refs.minNumOfPieces.innerHTML = "请输入有效件数";
          }
          return false;
        }
      }
    },
    // 校验重量方法 【重量可以为空为0 && 最小/大重量的范围0~34KG】允许保留1~5位小数。
    validateWeight(value, weight) {
      if (value.length) {
        this.queryForm[weight] = Number(value);
        let markWeight = false;
        if (weight == "minWeight" || weight == "maxWeight") {
          if (this.queryForm.minWeight && this.queryForm.maxWeight) {
            markWeight = Number(this.queryForm.maxWeight) < Number(this.queryForm.minWeight);
          }
        }
        if (/^(0|[1-9]\d*)(.\d{1,5})?$/.test(this.queryForm[weight])) {
          if (this.queryForm[weight] >= 0) {
            if (markWeight) {
              if (Array.isArray(this.$refs.minWeight)) {
                this.msgError("最小重量不得大于最大重量");
              } else {
                this.$refs.minWeight.innerHTML = "";
                this.$refs.minWeight.innerHTML = "最小重量不得大于最大重量";
              }
            } else if (this.queryForm[weight] > 34) {
              if (Array.isArray(this.$refs.minWeight)) {
                this.msgError("最大重量不能大于34KG");
              } else {
                this.$refs.minWeight.innerHTML = "";
                this.$refs.minWeight.innerHTML = "最大重量不能大于34KG";
              }
            } else {
              if (!Array.isArray(this.$refs.minWeight)) {
                this.$refs.minWeight.innerHTML = "";
              }
            }
          } else {
            if (value.length) {
              if (Number(value) > 34) {
                if (Array.isArray(this.$refs.minWeight)) {
                  this.msgError("最大重量不能大于34KG");
                } else {
                  this.$refs.minWeight.innerHTML = "";
                  this.$refs.minWeight.innerHTML = "最大重量不能大于34KG";
                }
              } else {
                if (!Array.isArray(this.$refs.minWeight)) {
                  this.$refs.minWeight.innerHTML = "";
                }
              }
            }
          }
        } else {
          if (Array.isArray(this.$refs.minWeight)) {
            this.msgError("请输入正整数,小数保留5位");
          } else {
            this.$refs.minWeight.innerHTML = "";
            this.$refs.minWeight.innerHTML = "请输入正整数,小数保留5位";
          }
          return false;
        }
      }
    },
    // 报价值【申报价值可以为空为0】
    validateCustomVal(value, customVal) {
      if (value.length) {
        this.queryForm[customVal] = Number(value);
        let coin = {
          minCNYCustomVal: "minCNYCustomVal",
          maxCNYCustomVal: "minCNYCustomVal",
          minSUDCustomVal: "minSUDCustomVal",
          maxSUDCustomVal: "minSUDCustomVal",
        };
        let currency = {
          minCNYCustomVal: 2000,
          maxCNYCustomVal: 2000,
          minSUDCustomVal: 600,
          maxSUDCustomVal: 600,
        };
        let markCoin = false;
        if (customVal == "minCNYCustomVal" || customVal == "maxCNYCustomVal") {
          if (this.queryForm.minCNYCustomVal && this.queryForm.maxCNYCustomVal) {
            markCoin = Number(this.queryForm.maxCNYCustomVal) < Number(this.queryForm.minCNYCustomVal);
          }
        } else {
          if (this.queryForm.minSUDCustomVal && this.queryForm.maxSUDCustomVal) {
            markCoin = Number(this.queryForm.maxSUDCustomVal) < Number(this.queryForm.minSUDCustomVal);
          }
        }
        if (/^(0|[1-9]\d*)(.\d{1,2})?$/.test(this.queryForm[customVal])) {
          if (this.queryForm[customVal] >= 0) {
            if (markCoin) {
              this.$refs[coin[customVal]].innerHTML = "";
              this.$refs[coin[customVal]].innerHTML = "最小申报价值不得大于最大申报价值";
            } else if (this.queryForm[customVal] > currency[customVal]) {
              this.$refs[coin[customVal]].innerHTML = "";
              this.$refs[coin[customVal]].innerHTML = `最大申报值不得大于${currency[customVal]}`;
            } else {
              this.$refs[coin[customVal]].innerHTML = "";
            }
          } else {
            if (value.length) {
              if (Number(value) > currency[customVal]) {
                this.$refs[coin[customVal]].innerHTML = "";
                this.$refs[coin[customVal]].innerHTML = `最大申报值不得大于${currency[customVal]}`;
              } else {
                this.$refs[coin[customVal]].innerHTML = "";
              }
            }
          }
        } else {
          this.$refs[coin[customVal]].innerHTML = "";
          this.$refs[coin[customVal]].innerHTML = "请输入正确申报价值";
          return false;
        }
      }
    },
  },
};