chenjiaxin 2 месяцев назад
Родитель
Сommit
446bd4a4a0

+ 32 - 28
src/views/oms/refund/components/createRefundDialog.vue

@@ -494,7 +494,7 @@
                 :label="$t('label.originalQuantity')"
                 width="80"
                 align="center"
-                prop="oldQuantity"
+                prop="quantity"
               ></el-table-column>
 
               <el-table-column
@@ -547,12 +547,12 @@
               >
                 <template slot-scope="scope">
                   <div v-if="multipleSelection.indexOf(scope.row) == -1">
-                    <div>{{ scope.row | quantityFilter }}</div>
+                    <div>{{ scope.row.newQuantity }}</div>
                   </div>
                   <div v-else>
                     <!-- <tableEdit :row.sync="scope.row"></tableEdit> -->
                     <el-input-number
-                      v-model="scope.row.quantity"
+                      v-model="scope.row.newQuantity"
                       @change="changeQuantity(scope.row)"
                       size="mini"
                       :min="0"
@@ -810,6 +810,8 @@ import {
 import { BigNumber } from "bignumber.js";
 import tableEdit from "./tableEdit";
 import i18n from "@/lang";
+import data2blob from "@/components/ImageCropper/utils/data2blob";
+import { dataURItoBlob } from "dropzone";
 
 export default {
   name: "createRefundDialog",
@@ -823,12 +825,6 @@ export default {
   filters: {
     statusFilter(key) {
       return statusKeyValue[key];
-    },
-    quantityFilter(row) {
-      if (row.refundQuantity > 0) {
-        return dcmSub(row.oldQuantity, row.refundQuantity);
-      }
-      return row.oldQuantity;
     }
   },
   data() {
@@ -862,7 +858,7 @@ export default {
         warehouseCode: "",
         annexPath: "",
         items: [],
-        oldQuantity: 0,
+        quantity: 0,
         refundTaxAble: "0", //是否退税
         refundTaxAmount: 0.0, //退税金额
         refundTotalAmount: 0.0, //总计退款金额 = 商品退款金额 + 退运费金额 + 退税金额 。 实际执行时,refundAmount=商品退款金额 + 退税金额;退运费金额单独计算
@@ -924,7 +920,7 @@ export default {
       this.addRefundForm.warehouseCode = "";
       this.addRefundForm.annexPath = "";
       this.addRefundForm.items = [];
-      this.addRefundForm.oldQuantity = 0.0;
+      this.addRefundForm.quantity = 0.0;
       this.addRefundForm.refundTaxAble = "0"; //是否退税
       this.addRefundForm.refundTaxAmount = 0.0; //退税金额
       this.addRefundForm.refundTotalAmount = 0.0;
@@ -976,9 +972,17 @@ export default {
                 if (this.tableOrderDeatils[ind].refundFlag == "0") {
                   this.tableOrderDeatils[ind].refundQuantity = 0;
                 }
-                this.tableOrderDeatils[
-                  ind
-                ].oldQuantity = this.tableOrderDeatils[ind].quantity;
+                // 可用退款件数
+                if (this.tableOrderDeatils[ind].refundQuantity > 0) {
+                  this.tableOrderDeatils[ind].newQuantity = dcmSub(
+                    this.tableOrderDeatils[ind].quantity,
+                    this.tableOrderDeatils[ind].refundQuantity
+                  );
+                } else {
+                  this.tableOrderDeatils[
+                    ind
+                  ].newQuantity = this.tableOrderDeatils[ind].quantity;
+                }
               }
 
               //退商品金额计算
@@ -1045,17 +1049,17 @@ export default {
     },
     // 重新计算退款的金额
     reCalReturn() {
-      const data = this.multipleSelection;
+      let data = this.multipleSelection.map(item => {
+        return {
+          soOrderId: item.ordersId,
+          orderItemId: item.orderitemId,
+          ormOrderItemId: item.ormOrderItemId,
+          quantity: item.newQuantity
+        };
+      });
       const formData = {
         ormOrderId: this.queryOrmorder,
-        promotionRefundDetails: data.map(item => {
-          return {
-            soOrderId: item.ordersId,
-            orderItemId: item.orderitemId,
-            ormOrderItemId: item.ormOrderItemId,
-            quantity: item.quantity
-          };
-        })
+        promotionRefundDetails: data
       };
       this.listLoading = true;
       checkSubmitRefund(formData)
@@ -1187,16 +1191,16 @@ export default {
     },
     checkSelectable(row) {
       // 虚拟商品不可选
-      // if (row.skuCode === "108C4G1V000BXS") return false;
+      if (row.skuCode === "BXGYPD250300") return false;
       if (row.refundQuantity > 0) {
-        var refcount = dcmSub(row.oldQuantity, row.refundQuantity);
+        var refcount = dcmSub(row.quantity, row.refundQuantity);
         //发生退款
         if (refcount <= 0 && this.queryRefundType != "1") {
           return false; //不可选择
         }
         row["maxq"] = refcount;
       } else {
-        row["maxq"] = row.oldQuantity;
+        row["maxq"] = row.quantity;
       }
 
       // if( row.status == "delivery" && (row.exchangePurchaseFlag == 1)){
@@ -1378,7 +1382,7 @@ export default {
             }
             var newobj = {
               productName: obj.productName,
-              quantity: obj.quantity,
+              quantity: obj.newQuantity,
               ormOrderItemId: obj.ormOrderItemId,
               orderitemId: obj.orderitemId,
               skuCode: obj.skuCode,
@@ -1518,7 +1522,7 @@ export default {
         this.addRefundForm.warehouseCode = "";
         this.addRefundForm.annexPath = "";
         this.addRefundForm.items = [];
-        this.addRefundForm.oldQuantity = 0.0;
+        this.addRefundForm.quantity = 0.0;
         this.addRefundForm.refundTaxAble = "0"; //是否退税
         this.addRefundForm.refundTaxAmount = 0.0; //退税金额
         this.addRefundForm.refundTotalAmount = 0.0;

+ 2 - 2
src/views/oms/refund/components/createRefundDialogOld.vue

@@ -910,12 +910,12 @@ export default {
     returnAmount(row) {
       const { originalOrderAmount, CurrentOrderAmount } = row;
       const val = originalOrderAmount - CurrentOrderAmount;
-      return val > 0 ? val : 0;
+      return val > 0 ? val.toFixed(2) : 0;
     },
     needPayMoney(row) {
       const { originalOrderAmount, CurrentOrderAmount } = row;
       const val = originalOrderAmount - CurrentOrderAmount;
-      return val < 0 ? Math.abs(val) : 0;
+      return val < 0 ? Math.abs(val).toFixed(2) : 0;
     }
   },
   methods: {

+ 10 - 8
src/views/oms/refund/refundDetail.vue

@@ -488,7 +488,7 @@
       >
         <el-descriptions-item
           :label="$t('multipleDiscountInfo.OriginalDiscount')"
-          >{{ discountInfo.originTip }}</el-descriptions-item
+          >{{ discountInfo.originalOrderTitle }}</el-descriptions-item
         >
         <el-descriptions-item
           :label="$t('multipleDiscountInfo.OriginalMoneny')"
@@ -496,11 +496,11 @@
         >
         <el-descriptions-item
           :label="$t('multipleDiscountInfo.afterReturnDiscount')"
-          >{{ discountInfo.currentTip }}</el-descriptions-item
+          >{{ discountInfo.currentOrderTitle }}</el-descriptions-item
         >
         <el-descriptions-item
           :label="$t('multipleDiscountInfo.afterReturnMoney')"
-          >{{ discountInfo.CurrentOrderAmount }}</el-descriptions-item
+          >{{ discountInfo.currentOrderAmount }}</el-descriptions-item
         >
         <el-descriptions-item :label="$t('multipleDiscountInfo.returnMoney')">
           {{ returnAmount > 0 ? returnAmount : 0 }}</el-descriptions-item
@@ -659,7 +659,7 @@ export default {
       isShopifyLabel: false,
       activeName: "orderItemList",
       afterSaleStatusSuccess: global.afterSaleStatusSuccess,
-      discountInfo: [],
+      discountInfo: {},
       refundInfo: {},
       orderItemInfo: {},
       addressInfo: {},
@@ -884,7 +884,12 @@ export default {
       };
       getRefundDiscount(query).then(res => {
         if (res.code === 200) {
-          this.discountInfo = res.data.orderPreviewVO || {};
+          this.discountInfo = res.data || {};
+          // 计算需要
+          const { originalOrderAmount, currentOrderAmount } = res.data;
+          this.returnAmount = (
+            originalOrderAmount - currentOrderAmount
+          ).toFixed(2);
         }
       });
     },
@@ -896,9 +901,6 @@ export default {
             this.refundInfo = res.data;
             this.orderItemInfo = res.data.items;
             this.logs = res.data.logItems;
-            // 计算需要
-            const { originalOrderAmount, CurrentOrderAmount } = res.data;
-            this.returnAmount = originalOrderAmount - CurrentOrderAmount;
 
             //获取收退货仓库列表
             this.getShippingLabelAmount(this.refundInfo, "");