diff --git a/.eslintrc.js b/.eslintrc.js index e651868..1f89b3e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -24,6 +24,7 @@ module.exports = { printWidth: 800, singleQuote: true, trailingComma: 'all', + endOfLine: 'auto', }, ], }, diff --git a/src/pages/login/login/index.vue b/src/pages/login/login/index.vue index d128bad..9521719 100644 --- a/src/pages/login/login/index.vue +++ b/src/pages/login/login/index.vue @@ -171,7 +171,7 @@ export default class LoginPage extends BasePage { console.log('......', server.serverAddress); if (server.serverAddress.includes('https://eurmom.haier.net')) { //修改俄罗斯版本号 - this.Version = '1.1.33'; + this.Version = '1.1.34'; } else { this.Version = '1.0.49'; } diff --git a/src/pages/raw/handover/RUS-aggregating/model.ts b/src/pages/raw/handover/RUS-aggregating/model.ts index 90b05e6..0798273 100644 --- a/src/pages/raw/handover/RUS-aggregating/model.ts +++ b/src/pages/raw/handover/RUS-aggregating/model.ts @@ -4,6 +4,7 @@ import http from '@/utils/request'; import { url } from '@/utils/url'; import { cloneDeep } from 'lodash/fp'; import vm from '@/main'; +import { subtraction } from '@/utils/subtraction'; @Module({ namespaced: true, dynamic: true, @@ -89,7 +90,7 @@ export class AggregatingModule extends VuexModule { @Mutation checkAllAggregateList(checked: boolean) { this.aggregateList.map((item: any) => { - Object.assign(item, { checked, hvAmount: (checked && item.totalMoAmount - item.totalHvAmount) || 0 }); + Object.assign(item, { checked, hvAmount: (checked && subtraction(parseFloat(item.totalMoAmount), parseFloat(item.totalHvAmount))) || 0 }); }); } /** @@ -99,7 +100,7 @@ export class AggregatingModule extends VuexModule { @Mutation checkAllOrderList(checked: boolean) { this.orderList.map((item: any) => { - Object.assign(item, { checked, hvAmount: (checked && item.totalMoAmount - item.totalHvAmount) || 0 }); + Object.assign(item, { checked, hvAmount: (checked && subtraction(parseFloat(item.totalMoAmount), parseFloat(item.totalHvAmount))) || 0 }); }); } /** diff --git a/src/pages/raw/handover/RUS-aggregating/order.vue b/src/pages/raw/handover/RUS-aggregating/order.vue index 457eb75..281a66a 100644 --- a/src/pages/raw/handover/RUS-aggregating/order.vue +++ b/src/pages/raw/handover/RUS-aggregating/order.vue @@ -70,6 +70,7 @@ import { pick } from 'lodash/fp'; import http from '@/utils/request'; import { url } from '@/utils/url'; import { session } from '@/store/modules/session'; +import { subtraction } from '@/utils/subtraction'; @Component export default class AggregatingOrder extends BasePage { @@ -169,10 +170,10 @@ export default class AggregatingOrder extends BasePage { e.data.forEach((item, index) => { //debugger; console.log('xuanzedeindex', e.data); - console.log('hvmount', item.lineData.totalMoAmount - item.lineData.totalHvAmount); + //console.log('hvmount', item.lineData.totalMoAmount - item.lineData.totalHvAmount); this.model.setOrderListItemHvAmount({ index: e.data[index].index, - hvAmount: item.lineData.totalMoAmount - item.lineData.totalHvAmount, + hvAmount: subtraction(parseFloat(item.lineData.totalMoAmount), parseFloat(item.lineData.totalHvAmount)), }); }); this.model.orderList.forEach((item) => { @@ -242,7 +243,7 @@ export default class AggregatingOrder extends BasePage { return; } List.forEach((item: any) => { - if (parseFloat(item.totalMoAmount) - parseFloat(item.totalHvAmount) != parseFloat(item.hvAmount)) { + if (subtraction(parseFloat(item.totalMoAmount), parseFloat(item.totalHvAmount)) != parseFloat(item.hvAmount)) { isTrue = false; return; } diff --git a/src/pages/raw/handover/RUS-aggregating/summary.vue b/src/pages/raw/handover/RUS-aggregating/summary.vue index 6cca695..366a82b 100644 --- a/src/pages/raw/handover/RUS-aggregating/summary.vue +++ b/src/pages/raw/handover/RUS-aggregating/summary.vue @@ -70,6 +70,7 @@ import { pick } from 'lodash/fp'; import http from '@/utils/request'; import { url } from '@/utils/url'; import { session } from '@/store/modules/session'; +import { subtraction } from '@/utils/subtraction'; @Component export default class AggregatingSummary extends BasePage { @@ -153,10 +154,10 @@ export default class AggregatingSummary extends BasePage { e.data.forEach((item, index) => { //debugger; console.log('xuanzedeindex', e.data); - console.log('hvmount', item.lineData.totalMoAmount - item.lineData.totalHvAmount); + //console.log('hvmount', item.lineData.totalMoAmount - item.lineData.totalHvAmount); this.model.setAggregateListItemHvAmount({ index: e.data[index].index, - hvAmount: item.lineData.totalMoAmount - item.lineData.totalHvAmount, + hvAmount: subtraction(parseFloat(item.lineData.totalMoAmount), parseFloat(item.lineData.totalHvAmount)), }); }); this.model.aggregateList.forEach((item) => { @@ -278,7 +279,7 @@ export default class AggregatingSummary extends BasePage { //此处校验了请确保交接数量等于需求数量 //totalMoAmount:累计拣配数量 totalHvAmount:交接数量 hvAmount:本次交接数量 List.forEach((item: any) => { - if (parseFloat(item.totalMoAmount) - parseFloat(item.totalHvAmount) != parseFloat(item.hvAmount)) { + if (subtraction(parseFloat(item.totalMoAmount), parseFloat(item.totalHvAmount)) != parseFloat(item.hvAmount)) { isTrue = false; return; } diff --git a/src/utils/subtraction.ts b/src/utils/subtraction.ts new file mode 100644 index 0000000..d7ee4d1 --- /dev/null +++ b/src/utils/subtraction.ts @@ -0,0 +1,39 @@ +/* + * @Author: zhou lei + * @Date: 2023-02-22 19:08:18 + * @LastEditTime: 2023-02-22 19:19:54 + * @LastEditors: zhou lei + * @Description:自定义减法,解决浮点类型相减精度问题 + * @FilePath: \hgwms-factory-app\src\utils\subtraction.ts + * 联系方式:910592680@qq.com 18669792120 科海达信息技术有限公司 + */ +//自定义减法,解决浮点类型相减精度问题 +export function subtraction(arg1: number, arg2: number) { + let r1: number, r2: number; + try { + r1 = arg1.toString().split('.')[1].length; + } catch (e) { + r1 = 0; + } + try { + r2 = arg2.toString().split('.')[1].length; + } catch (e) { + r2 = 0; + } + const c = Math.abs(r1 - r2); + const m = Math.pow(10, Math.max(r1, r2)); + if (c > 0) { + const cm = Math.pow(10, c); + if (r1 > r2) { + arg1 = Number(arg1.toString().replace('.', '')); + arg2 = Number(arg2.toString().replace('.', '')) * cm; + } else { + arg1 = Number(arg1.toString().replace('.', '')) * cm; + arg2 = Number(arg2.toString().replace('.', '')); + } + } else { + arg1 = Number(arg1.toString().replace('.', '')); + arg2 = Number(arg2.toString().replace('.', '')); + } + return (arg1 - arg2) / m; +}