jiangping
2023-08-18 40609a1bd11ce79445562ac23f16af23a48c3933
web_standard/src/components/base/BaseTable.vue
@@ -262,7 +262,96 @@
      if (this.api == null) {
        throw new Error('The page is not initialized, you can use method \'this.config\' to initialize this page.')
      }
    },
    /**
 * 数字相加
 * @param {*} arg1
 * @param {*} arg2
 * @returns
 */
    accAdd(arg1, arg2) {
      return this.changeNum(arg1, arg2)
    },
    /**
     * 数字相减
     * @param {*} arg1
     * @param {*} arg2
     * @returns
     */
    accSub(arg1, arg2) {
      return this.changeNum(arg1, arg2, false)
    },
    /**
     * 数字相乘
     * @param {*} arg1
     * @param {*} arg2
     * @returns
     */
    accMul(arg1, arg2) {
      let m = 0;
      m = accAdd(m, getDecimalLength(arg1))
      m = accAdd(m, getDecimalLength(arg2))
      return getNum(arg1) * getNum(arg2) / Math.pow(10, m)
    },
    /**
     * 数字相除
     * @param {*} arg1
     * @param {*} arg2
     * @returns
     */
    accDiv(arg1, arg2) {
      let t1, t2;
      t1 = this.getDecimalLength(arg1)
      t2 = this.getDecimalLength(arg2)
      if (t1 - t2 > 0) {
        return (this.getNum(arg1) / this.getNum(arg2)) / Math.pow(10, t1 - t2)
      } else {
        return (this.getNum(arg1) / this.getNum(arg2)) * Math.pow(10, t2 - t1)
    }
    },
    changeNum(arg1 = '', arg2 = '', isAdd = true) {
      function changeInteger(arg, r, maxR) {
        if (r != maxR) {
          let addZero = ''
          for (let i = 0; i < maxR - r; i++) {
            addZero += '0'
          }
          arg = Number(arg.toString().replace('.', '') + addZero)
        } else {
          arg = this.getNum(arg)
        }
        return arg
      }
      let r1, r2, maxR, m;
      r1 = this.getDecimalLength(arg1)
      r2 = this.getDecimalLength(arg2)
      maxR = Math.max(r1, r2)
      arg1 = changeInteger(arg1, r1, maxR)
      arg2 = changeInteger(arg2, r2, maxR)
      m = Math.pow(10, maxR)
      if (isAdd) {
        return (arg1 + arg2) / m
      } else {
        return (arg1 - arg2) / m
      }
    },
    getDecimalLength(arg = '') {
      try {
        return arg.toString().split(".")[1].length
      } catch (e) {
        return 0
      }
    },
    getNum(arg = '') {
      return Number(arg.toString().replace(".", ""))
    }
  }
}
</script>