diff --git a/oms_web/oms_vue/package.json b/oms_web/oms_vue/package.json index 9b44bc24..dccf5b15 100644 --- a/oms_web/oms_vue/package.json +++ b/oms_web/oms_vue/package.json @@ -48,7 +48,8 @@ "vue-cropper": "0.5.5", "vue-router": "3.4.9", "vuedraggable": "2.24.3", - "vuex": "3.6.0" + "vuex": "3.6.0", + "decimal.js": "10.4.2" }, "devDependencies": { "@vue/cli-plugin-babel": "4.4.6", diff --git a/oms_web/oms_vue/src/main.js b/oms_web/oms_vue/src/main.js index da017509..189b9dfc 100644 --- a/oms_web/oms_vue/src/main.js +++ b/oms_web/oms_vue/src/main.js @@ -4,7 +4,9 @@ import Cookies from 'js-cookie' import Element from 'element-ui' import './assets/styles/element-variables.scss' +import * as Calc from '@/utils/calc' +Vue.prototype.$calc = Calc // 全局挂载 import '@/assets/styles/index.scss' // global css import '@/assets/styles/ruoyi.scss' // ruoyi css import App from './App' diff --git a/oms_web/oms_vue/src/utils/calc.js b/oms_web/oms_vue/src/utils/calc.js new file mode 100644 index 00000000..37c814de --- /dev/null +++ b/oms_web/oms_vue/src/utils/calc.js @@ -0,0 +1,38 @@ +import Decimal from 'decimal.js' + +// 默认保留小数位(你可根据业务修改,比如金额一般 2 位) +const DEFAULT_DP = 2 + +// 内部方法:统一转换 Decimal,避免 null/undefined 报错 +function D(n) { + return new Decimal(n || 0) +} + +/** + * 保留小数位 & 四舍五入 + * @param value 数值 + * @param dp 保留位数(默认 DEFAULT_DP) + */ +export function toFixed(value, dp = DEFAULT_DP) { + return D(value).toDecimalPlaces(dp).toNumber() +} + +// 加法 +export function add(a, b, dp = DEFAULT_DP) { + return D(a).plus(b).toDecimalPlaces(dp).toNumber() +} + +// 减法 +export function sub(a, b, dp = DEFAULT_DP) { + return D(a).minus(b).toDecimalPlaces(dp).toNumber() +} + +// 乘法 +export function mul(a, b, dp = DEFAULT_DP) { + return D(a).times(b).toDecimalPlaces(dp).toNumber() +} + +// 除法 +export function div(a, b, dp = DEFAULT_DP) { + return D(a).div(b || 1).toDecimalPlaces(dp).toNumber() +} diff --git a/oms_web/oms_vue/src/utils/ruoyi.js b/oms_web/oms_vue/src/utils/ruoyi.js index ae9eadfb..d75265d8 100644 --- a/oms_web/oms_vue/src/utils/ruoyi.js +++ b/oms_web/oms_vue/src/utils/ruoyi.js @@ -226,9 +226,4 @@ export function getNormalPath(p) { export function blobValidate(data) { return data.type !== 'application/json' } -export function preciseCurrencyRound(amount,decimalPlace) { - if (decimalPlace){ - return Number(Math.round(amount + `e${decimalPlace}`) + `e-${decimalPlace}`); - } - return Number(Math.round(amount + 'e2') + 'e-2'); -} + diff --git a/oms_web/oms_vue/src/views/approve/order/ConfigInfo.vue b/oms_web/oms_vue/src/views/approve/order/ConfigInfo.vue index 7a7c3db1..488e46dd 100644 --- a/oms_web/oms_vue/src/views/approve/order/ConfigInfo.vue +++ b/oms_web/oms_vue/src/views/approve/order/ConfigInfo.vue @@ -206,7 +206,6 @@