Jelajahi Sumber

fix: indent计价逻辑修正.

peter 3 minggu lalu
induk
melakukan
433d9a5d90

+ 65 - 14
src/pages/indent-manage/indent/components/calcPrice/index.vue

@@ -1084,6 +1084,7 @@ let reGenerateFormAfterMidwayTypeChange = () => {
 let generateStep3Form = (withOldData = false) => {
   const labelList = ['快递', '空+派', '海运', 'DTD', 'LCL散货']
   const result: any[] = []
+  const oldData = productInfo.value.save_cal
   formList.value.forEach((i: any) => {
     for (let n = 0; n < 5; n++) {
       if (i[`${n}_${i.number}`] === 'on') {
@@ -1107,7 +1108,7 @@ let generateStep3Form = (withOldData = false) => {
             .chain(i[`midway_price_${n}`])
             .add(i[`city_price_${n}`])
             .done()
-
+          // 用demo默认值是重新计算的数据. 如果是初始化时需要用保存到数据库的数据覆盖掉这个.
           temp.total_cost = mathjs
             .chain(i.product_cost)
             .add(i.extend_cost)
@@ -1118,9 +1119,21 @@ let generateStep3Form = (withOldData = false) => {
                 .divide(setting.value.rate_rmb_aud)
                 .done(),
             )
-            .add(step3FormDemo.value.tax_fee)
-            .add(step3FormDemo.value.gatt_tax_fee)
-            .add(step3FormDemo.value.review_cost)
+            .add(
+              withOldData
+                ? oldData[`cal_quote_${n}_${i.number}`].tax_fee
+                : step3FormDemo.value.tax_fee,
+            )
+            .add(
+              withOldData
+                ? oldData[`cal_quote_${n}_${i.number}`].gatt_tax_fee
+                : step3FormDemo.value.gatt_tax_fee,
+            )
+            .add(
+              withOldData
+                ? oldData[`cal_quote_${n}_${i.number}`].review_cost
+                : step3FormDemo.value.review_cost,
+            )
             .done()
         } else if (n === 3) {
           temp.local_freight_cost = 0
@@ -1140,9 +1153,21 @@ let generateStep3Form = (withOldData = false) => {
                 .divide(setting.value.rate_rmb_aud)
                 .done(),
             )
-            .add(step3FormDemo.value.tax_fee)
-            .add(step3FormDemo.value.gatt_tax_fee)
-            .add(step3FormDemo.value.review_cost)
+            .add(
+              withOldData
+                ? oldData[`cal_quote_${n}_${i.number}`].tax_fee
+                : step3FormDemo.value.tax_fee,
+            )
+            .add(
+              withOldData
+                ? oldData[`cal_quote_${n}_${i.number}`].gatt_tax_fee
+                : step3FormDemo.value.gatt_tax_fee,
+            )
+            .add(
+              withOldData
+                ? oldData[`cal_quote_${n}_${i.number}`].review_cost
+                : step3FormDemo.value.review_cost,
+            )
             .done()
 
           temp[`cn_price_${n}`] = 0 // 国内运费. 后两种配送方式默认是0
@@ -1165,9 +1190,21 @@ let generateStep3Form = (withOldData = false) => {
                 .divide(setting.value.rate_rmb_aud)
                 .done(),
             )
-            .add(step3FormDemo.value.tax_fee)
-            .add(step3FormDemo.value.gatt_tax_fee)
-            .add(step3FormDemo.value.review_cost)
+            .add(
+              withOldData
+                ? oldData[`cal_quote_${n}_${i.number}`].tax_fee
+                : step3FormDemo.value.tax_fee,
+            )
+            .add(
+              withOldData
+                ? oldData[`cal_quote_${n}_${i.number}`].gatt_tax_fee
+                : step3FormDemo.value.gatt_tax_fee,
+            )
+            .add(
+              withOldData
+                ? oldData[`cal_quote_${n}_${i.number}`].review_cost
+                : step3FormDemo.value.review_cost,
+            )
             .done()
 
           temp[`cn_price_${n}`] = 0 // 国内运费. 后两种配送方式默认是0
@@ -1176,7 +1213,11 @@ let generateStep3Form = (withOldData = false) => {
         temp.profit = savePrecision(
           // 利润率是整数, 除100算出百分数.
           mathjs
-            .chain(step3FormDemo.value.profit_margin)
+            .chain(
+              withOldData
+                ? oldData[`cal_quote_${n}_${i.number}`].profit_margin
+                : step3FormDemo.value.profit_margin,
+            )
             .divide(100)
             .multiply(temp.total_cost)
             .done(),
@@ -1186,7 +1227,11 @@ let generateStep3Form = (withOldData = false) => {
             .chain(temp.total_cost)
             .multiply(
               mathjs
-                .chain(step3FormDemo.value.profit_margin)
+                .chain(
+                  withOldData
+                    ? oldData[`cal_quote_${n}_${i.number}`].profit_margin
+                    : step3FormDemo.value.profit_margin,
+                )
                 .add(100)
                 .divide(100)
                 .done(),
@@ -1200,7 +1245,11 @@ let generateStep3Form = (withOldData = false) => {
                 mathjs
                   .chain(temp.sold_price)
                   .subtract(temp.add_freight_cost)
-                  .subtract(step3FormDemo.value.setup_cost)
+                  .subtract(
+                    withOldData
+                      ? oldData[`cal_quote_${n}_${i.number}`].setup_cost
+                      : step3FormDemo.value.setup_cost,
+                  )
                   .divide(i.number)
                   .multiply(100)
                   .done(),
@@ -1214,7 +1263,8 @@ let generateStep3Form = (withOldData = false) => {
         exportForm.value[`cycle_name_${n}_${i.number}`] = 'weeks'
 
         if (withOldData === true) {
-          const oldData = productInfo.value.save_cal
+          console.log('witholdata true')
+          console.log(oldData, 'oldData')
           if (oldData[`cal_quote_${n}_${i.number}`]) {
             const cloneData = cloneDeep(oldData[`cal_quote_${n}_${i.number}`])
             cloneData.freight_cost = cloneData.freight
@@ -1227,6 +1277,7 @@ let generateStep3Form = (withOldData = false) => {
             oldData[`cycle_name_${n}_${i.number}`] || 'weeks'
         }
 
+        console.log(temp, 'temp')
         result.push(temp)
       }
     }

+ 2 - 2
src/pages/indent-manage/indent/list.vue

@@ -997,14 +997,14 @@ watch(dialogChangeOrderVisible, () => {
 const auditUser = ref('')
 const getCurrentAuditUser = () => {
   userAPI.getAuditUser().then((res: any) => {
-    console.log(res, 'res')
+    // console.log(res, 'res')
     if (
       res.code === 1 &&
       Array.isArray(res.result.data) &&
       res.result.data.length
     ) {
       const temp = res.result.data.filter((i: any) => i.type === 2)
-      console.log(temp, 'temp')
+      // console.log(temp, 'temp')
       if (temp.length) auditUser.value = temp[0].email
     }
   })