Преглед изворни кода

🐞 fix(【drp-消耗单明细】): spd服务费合计、合计金额 统计规则修改

消耗单详情页界面编辑可以批量编辑,编辑服务费率和单价会同步计算表头合计金额和服务费合计,表体小计和服务费,由于表体的小计和服务费已进行四舍五入,这时表头直接将表体的数据加起来会造成数据偏差,前端需要修改计算逻辑: 表体: 小计 = 数量 * 单价,四舍五入保留两位小数 服务费 = 服务费率 * 小计 / 100,四舍五入保留两位小数 表头: 服务费合计 = sum(服务费率 * 小计 / 100),四舍五入保留两位小数 合计金额 = sum(数量 * 单价),四舍五入保留两位小数

20240604125
002390 пре 1 година
родитељ
комит
dc5243e337
1 измењених фајлова са 26 додато и 22 уклоњено
  1. 26 22
      src/views/expend/expendMxDetail.vue

+ 26 - 22
src/views/expend/expendMxDetail.vue

@@ -461,7 +461,7 @@ export default {
   },
   created() {
     if (this.pageStu == "check") {
-      console.log("数据", this.row);
+      // console.log("数据", this.row);
       this.getDetails(this.row);
     } else if (this.pageStu == "edit") {
       this.getDetails(this.row);
@@ -470,26 +470,35 @@ export default {
   },
   computed: {
     // 一个计算属性的 getter
-    publishedBooksMessage() {
-      // `this` 指向当前组件实例
-      // var s = 0
-      this.basicForm.serviceFee = 0;
-      this.basicForm.itemList.forEach((item) => {
-        this.basicForm.serviceFee += Number(item.serviceFee);
-      });
-      return this.basicForm.serviceFee;
+    publishedBooksMessage: {
+      get() {
+        this.basicForm.serviceFee = this.basicForm.itemList.reduce(
+          (sum, item) => {
+            return (sum += this.getToFixed(item.ratio * 0.01 * item.amount));
+          },
+          0
+        );
+        return this.basicForm.serviceFee;
+      },
+      set() {},
     },
-    publishedBooksMessage2() {
-      // `this` 指向当前组件实例
-      // var s = 0
-      this.basicForm.totalAmount = 0;
-      this.basicForm.itemList.forEach((item) => {
-        this.basicForm.totalAmount += Number(item.amount);
-      });
-      return this.basicForm.totalAmount;
+    publishedBooksMessage2: {
+      get() {
+        this.basicForm.totalAmount = this.basicForm.itemList.reduce(
+          (sum, item) => {
+            return (sum += this.getToFixed(item.qty * item.price));
+          },
+          0
+        );
+        return this.basicForm.totalAmount;
+      },
+      set() {},
     },
   },
   methods: {
+    getToFixed(prop, val = 2) {
+      return Number(prop.toFixed(val));
+    },
     getDetails(row) {
       Mxdetail(row.id).then((res) => {
         if (res.code === 200) {
@@ -521,8 +530,6 @@ export default {
       //   return item.id
       // })
       this.ids = selection;
-      // console.log('选中数组1', selection)
-      console.log("选中数组", this.ids);
     },
     editLine() {
       if (this.ids.length <= 0) {
@@ -556,7 +563,6 @@ export default {
       } catch (error) {}
     },
     confirm() {
-      console.log(this.ids);
       console.log("修改值", this.dialogForm);
       this.ids.forEach((item) => {
         item[this.dialogForm.region] = this.dialogForm.info;
@@ -588,8 +594,6 @@ export default {
         });
     },
     changeFei(index, row) {
-      console.log(index);
-      console.log(row);
       row.amount = row.qty * row.price;
       row.serviceFee = (row.ratio * 0.01 * row.amount).toFixed(2);
       // this.basicForm.serviceFee = this.basicForm.itemList.map(item => {