From 50b6007b336a65b7deb6c77c9fdc608865067608 Mon Sep 17 00:00:00 2001
From: 张诺 <2864490065@qq.com>
Date: 星期五, 25 七月 2025 16:31:57 +0800
Subject: [PATCH] 昭德改善销售数量

---
 src/views/salesOutbound/components/formDia.vue |   70 +++++++++++++++++++++++++----------
 1 files changed, 50 insertions(+), 20 deletions(-)

diff --git a/src/views/salesOutbound/components/formDia.vue b/src/views/salesOutbound/components/formDia.vue
index 4d56345..48a9b44 100644
--- a/src/views/salesOutbound/components/formDia.vue
+++ b/src/views/salesOutbound/components/formDia.vue
@@ -37,9 +37,9 @@
               <el-select v-model="form.coalId" placeholder="璇烽�夋嫨鐓ょ" @change="setInfo" :disabled="operationType === 'view'">
                 <el-option
                     v-for="item in coalOptions"
-                    :key="item.id"
+                    :key="item.coalId"
                     :label="item.coal"
-                    :value="item.id"
+                    :value="item.coalId"
                 />
               </el-select>
             </el-form-item>
@@ -53,7 +53,7 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="搴撳瓨鏁伴噺" prop="inventoryQuantity">
-              <el-input v-model="form.inventoryQuantity" placeholder="璇疯緭鍏ラ攢鍞暟閲�" maxlength="30" type="number" :disabled="operationType === 'view'"/>
+              <el-input v-model="form.inventoryQuantity" placeholder="璇疯緭鍏ラ攢鍞暟閲�" maxlength="30" type="number" :disabled="true"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -81,32 +81,47 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="杩愯垂" prop="freight">
-              <el-input v-model="form.freight" placeholder="璇疯緭鍏ラ攢鍞�讳环(鍚◣)" maxlength="30" type="number" :disabled="operationType === 'view'"/>
+            <el-form-item label="閲囪喘杩愯垂" prop="purchasingFreight" @change="mathProfit">
+              <el-input v-model="form.purchasingFreight" placeholder="璇疯緭鍏�" maxlength="30" type="number" :disabled="operationType === 'view'"/>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
+					<el-col :span="12">
+						<el-form-item label="閿�鍞繍璐�" prop="salesFreight" @change="mathProfit">
+							<el-input v-model="form.salesFreight" placeholder="璇疯緭鍏�" maxlength="30" type="number" :disabled="operationType === 'view'"/>
+						</el-form-item>
+					</el-col>
           <el-col :span="12">
             <el-form-item label="璐攢鐓ょ◣鐜�(%)" prop="taxCoal">
-              <el-input v-model="form.taxCoal" placeholder="璇疯緭鍏ラ攢鍞�讳环(鍚◣)" maxlength="30" type="number" :disabled="operationType === 'view'"/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="杩愯緭绋庣巼(%)" prop="taxTrans">
-              <el-input v-model="form.taxTrans" placeholder="璇疯緭鍏ラ攢鍞�讳环(鍚◣)" maxlength="30" type="number" :disabled="operationType === 'view'"/>
+              <el-input v-model="form.taxCoal" placeholder="璇疯緭鍏�" maxlength="30" type="number" :disabled="operationType === 'view'"/>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
+					<el-col :span="12">
+						<el-form-item label="杩愯緭绋庣巼(%)" prop="taxTrans">
+							<el-input v-model="form.taxTrans" placeholder="璇疯緭鍏�" maxlength="30" type="number" :disabled="operationType === 'view'"/>
+						</el-form-item>
+					</el-col>
           <el-col :span="12">
             <el-form-item label="姣涘埄娑�" prop="grossProfit">
               <el-input v-model="form.grossProfit" placeholder="姣涘埄娑�" maxlength="30" type="number" :disabled="operationType === 'view'"/>
             </el-form-item>
           </el-col>
+        </el-row>
+        <el-row>
+					<el-col :span="12">
+						<el-form-item label="鍑�鍒╂鼎" prop="netProfit">
+							<el-input v-model="form.netProfit" placeholder="鍑�鍒╂鼎" maxlength="30" type="number" :disabled="operationType === 'view'"/>
+						</el-form-item>
+					</el-col>
           <el-col :span="12">
-            <el-form-item label="鍑�鍒╂鼎" prop="netProfit">
-              <el-input v-model="form.netProfit" placeholder="鍑�鍒╂鼎" maxlength="30" type="number" :disabled="operationType === 'view'"/>
+            <el-form-item label="娣诲姞鑷冲緟琛ュ簱" prop="isAdd">
+              <el-select v-model="form.isAdd" placeholder="璇烽�夋嫨鏄惁闇�瑕佸緟琛ュ簱" :disabled="operationType === 'view'">
+                <el-option label="鏄�" :value="true" />
+                <el-option label="鍚�" :value="false" />
+              </el-select>
             </el-form-item>
           </el-col>
         </el-row>
@@ -142,13 +157,15 @@
     saleQuantity: '',
     salePrice: '',
     totalAmount: '',
-    freight: '',
+    purchasingFreight: '',
     taxCoal: '',
     taxTrans: '',
     grossProfit: '',
     netProfit: '',
     inventoryQuantity: '',
     priceIncludingTax: '',
+		salesFreight: '',
+    isAdd: false
   },
   rules: {
     saleDate: [{ required: true, message: "璇烽�夋嫨鏃ユ湡", trigger: "change" },],
@@ -158,13 +175,14 @@
 		saleQuantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
 		salePrice: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
 		totalAmount: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
-		freight: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
+		purchasingFreight: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" },],
 		taxCoal: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
 		taxTrans: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
 		grossProfit: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
 		netProfit: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
 		inventoryQuantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
 		priceIncludingTax: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
+    isAdd: [{ required: true, message: "璇烽�夋嫨鏄惁娣诲姞鑷冲緟琛ュ簱", trigger: "change" },],
   }
 })
 
@@ -172,6 +190,11 @@
 
 // 鎵撳紑寮规
 const openDialog = async (type, row) => {
+  if(type === 'add'){
+    form.value = {}
+  }else{
+    form.value = {...row}
+  }
   operationType.value = type
   dialogVisitable.value = true
   form.value.saleDate = proxy.getCurrentDate()
@@ -185,13 +208,17 @@
     value: item.id,
     label: item.customerName,
   }));
+
   let res = await userStore.getInfo()
   form.value.registrantId = res.user.userId
   form.value.taxCoal = 13
   form.value.taxTrans = 9
-  form.value.freight = 20
+  form.value.purchasingFreight = 20
+  form.value.salesFreight = 0
+  form.value.isAdd = false
   if (type !== 'add') {
-    form.value = {...row}
+    form.value = {...row,
+    }
   }
 }
 // 澶嶅埗鐓ょ鐩稿叧淇℃伅
@@ -215,7 +242,8 @@
   const purchaseTons = form.value.inventoryQuantity;     // 搴撳瓨鏁伴噺
   const saleTons = form.value.saleQuantity;          // 閿�鍞暟閲�
   const purchasePricePerTon = form.value.priceIncludingTax; // 鍚◣鍗曚环
-  const transportPricePerTon = form.value.freight; // 杩愯垂
+  const transportPricePerTon = form.value.purchasingFreight; // 閲囪喘杩愯垂
+  const salesFreight = form.value.salesFreight; // 閿�鍞繍璐�
   const salePricePerTon = form.value.salePrice;   // 閿�鍞崟浠凤紙鍏�/鍚級
   const coalTaxRate = form.value.taxCoal / 100;      // 璐攢鐓ょ◣鐜囷紙13%锛�
   const transportTaxRate = form.value.taxTrans / 100; // 杩愯緭绋庣巼锛�9%锛�
@@ -230,13 +258,15 @@
   const D = C * transportTaxRate * purchaseTons;     // 杩愯垂杩涢」绋庨
   const E = salePricePerTon / (1 + coalTaxRate);     // 閿�鍞笉鍚◣鍗曚环
   const F = E * coalTaxRate * saleTons;              // 閿�椤圭◣棰�
+  const R = salesFreight / (1 + transportTaxRate);       // 閿�鍞叅杩愯垂涓嶅惈绋庡崟浠�
+  const S = R * transportTaxRate * saleTons;              // 閿�鍞叅杩愯垂杩涢」绋庨
 
 // 姣涘埄娑� = 閿�鍞敹鍏� - 鎴愭湰鎴愭湰锛堣喘鐓�+杩愯垂锛夌殑鎴愭湰閮ㄥ垎
-  const G = E * saleTons - A * saleTons - C * saleTons;
+  const G = E * saleTons - A * saleTons - C * saleTons - R * saleTons;
   form.value.grossProfit = G.toFixed(2);
 
 // 搴旂即绾冲鍊肩◣ = 閿�椤圭◣ - 鍙姷鎵h繘椤圭◣锛堟寜閿�鍞噺姣斾緥璁$畻锛�
-  const H = F - (A * coalTaxRate * saleTons) - (C * transportTaxRate * saleTons);
+  const H = F - (A * coalTaxRate * saleTons) - (C * transportTaxRate * saleTons) - (R * transportTaxRate * saleTons);
 
 // 澧炲�肩◣闄勫姞绋�
   const K = H * surchargeRate;

--
Gitblit v1.9.3