From aaf943ada13005f2b22d01e3d7080b8740d9aa96 Mon Sep 17 00:00:00 2001
From: zhang_12370 <z2864490065@outlook.com>
Date: 星期二, 15 七月 2025 15:09:49 +0800
Subject: [PATCH] 添加待入库功能及优化配煤计算器

---
 src/views/salesOutbound/components/formDia.vue |   64 ++++++++++++++++++-------------
 1 files changed, 37 insertions(+), 27 deletions(-)

diff --git a/src/views/salesOutbound/components/formDia.vue b/src/views/salesOutbound/components/formDia.vue
index 8b24c5a..9797549 100644
--- a/src/views/salesOutbound/components/formDia.vue
+++ b/src/views/salesOutbound/components/formDia.vue
@@ -7,6 +7,7 @@
           <el-col :span="12">
             <el-form-item label="閿�鍞棩鏈�" prop="saleDate">
               <el-date-picker
+                  :disabled="operationType === 'view'"
                   v-model="form.saleDate"
                   type="date"
                   value-format="YYYY-MM-DD"
@@ -19,7 +20,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="瀹㈡埛" prop="customerId">
-              <el-select v-model="form.customerId" placeholder="璇烽�夋嫨瀹㈡埛">
+              <el-select v-model="form.customerId" placeholder="璇烽�夋嫨瀹㈡埛" :disabled="operationType === 'view'">
                 <el-option
                     v-for="item in customerOptions"
                     :key="item.value"
@@ -33,79 +34,79 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="鐓ょ" prop="coalId">
-              <el-select v-model="form.coalId" placeholder="璇烽�夋嫨鐓ょ" @change="setInfo">
+              <el-select v-model="form.coalId" placeholder="璇烽�夋嫨鐓ょ" @change="setInfo" :disabled="operationType === 'view'">
                 <el-option
                     v-for="item in coalOptions"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value"
+                    :key="item.coalId"
+                    :label="item.coal"
+                    :value="item.coalId"
                 />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="鍗曚綅" prop="unit">
-              <el-input v-model="form.unit" placeholder="璇疯緭鍏ュ崟浣�" maxlength="30" />
+              <el-input v-model="form.unit" placeholder="璇疯緭鍏ュ崟浣�" maxlength="30" :disabled="operationType === 'view'"/>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="搴撳瓨鏁伴噺" prop="inventoryQuantity">
-              <el-input v-model="form.inventoryQuantity" placeholder="璇疯緭鍏ラ攢鍞暟閲�" maxlength="30" type="number" />
+              <el-input v-model="form.inventoryQuantity" placeholder="璇疯緭鍏ラ攢鍞暟閲�" maxlength="30" type="number" :disabled="operationType === 'view'"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="鍗曚环(鍚◣)" prop="priceIncludingTax">
-              <el-input v-model="form.priceIncludingTax" placeholder="璇疯緭鍏ラ攢鍞崟浠�(鍚◣)" maxlength="30" type="number" />
+            <el-form-item label="鍗曚环(鍚◣)" prop="priceIncludingTax" @change="mathProfit">
+              <el-input v-model="form.priceIncludingTax" 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="saleQuantity">
-              <el-input v-model="form.saleQuantity" placeholder="璇疯緭鍏ラ攢鍞暟閲�" maxlength="30" type="number" />
+            <el-form-item label="閿�鍞暟閲�" prop="saleQuantity" @change="mathProfit">
+              <el-input v-model="form.saleQuantity" placeholder="璇疯緭鍏ラ攢鍞暟閲�" maxlength="30" type="number" :disabled="operationType === 'view'"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="閿�鍞崟浠�(鍚◣)" prop="salePrice" @change="mathProfit">
-              <el-input v-model="form.salePrice" placeholder="璇疯緭鍏ラ攢鍞崟浠�(鍚◣)" maxlength="30" type="number" />
+              <el-input v-model="form.salePrice" 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="totalAmount">
-              <el-input v-model="form.totalAmount" placeholder="璇疯緭鍏ラ攢鍞�讳环(鍚◣)" maxlength="30" type="number" />
+              <el-input v-model="form.totalAmount" placeholder="璇疯緭鍏ラ攢鍞�讳环(鍚◣)" maxlength="30" type="number" :disabled="operationType === 'view'"/>
             </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" />
+              <el-input v-model="form.freight" 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="taxCoal">
-              <el-input v-model="form.taxCoal" placeholder="璇疯緭鍏ラ攢鍞�讳环(鍚◣)" maxlength="30" type="number" />
+              <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" />
+              <el-input v-model="form.taxTrans" 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="grossProfit">
-              <el-input v-model="form.grossProfit" placeholder="姣涘埄娑�" maxlength="30" type="number" />
+              <el-input v-model="form.grossProfit" 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" />
+              <el-input v-model="form.netProfit" placeholder="鍑�鍒╂鼎" maxlength="30" type="number" :disabled="operationType === 'view'"/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -122,9 +123,8 @@
 
 <script setup>
 import {reactive, ref} from "vue";
-import {addOrEditSalesRecord, customerList, officialList} from "../../../api/salesOutbound/index.js";
+import {addOrEditSalesRecord, customerList, officialList} from "@/api/salesOutbound/index.js";
 import useUserStore from '@/store/modules/user'
-import {getCoalInfoList, getSupplyList} from "@/api/procureMent/index.js";
 
 const { proxy } = getCurrentInstance()
 const emit = defineEmits()
@@ -152,6 +152,19 @@
   },
   rules: {
     saleDate: [{ required: true, message: "璇烽�夋嫨鏃ユ湡", trigger: "change" },],
+		customerId: [{ required: true, message: "璇烽�夋嫨瀹㈡埛", trigger: "change" },],
+		coalId: [{ required: true, message: "璇烽�夋嫨鐓ょ", trigger: "change" },],
+		unit: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
+		saleQuantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
+		salePrice: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
+		totalAmount: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
+		freight: [{ required: true, 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" },],
   }
 })
 
@@ -159,28 +172,25 @@
 
 // 鎵撳紑寮规
 const openDialog = async (type, row) => {
+  operationType.value = type
   dialogVisitable.value = true
   form.value.saleDate = proxy.getCurrentDate()
   const [supplyRes, coalRes] = await Promise.all([
     customerList(),
-    getCoalInfoList(),
+    officialList(),
   ]);
   let supplyData = supplyRes.data;
-  let coalData = coalRes.data;
+  coalOptions.value = coalRes.data;
   customerOptions.value = supplyData.map((item) => ({
     value: item.id,
     label: item.customerName,
   }));
-  coalOptions.value = coalData.map((item) => ({
-    value: item.id,
-    label: item.coal,
-  }))
   let res = await userStore.getInfo()
   form.value.registrantId = res.user.userId
   form.value.taxCoal = 13
   form.value.taxTrans = 9
   form.value.freight = 20
-  if (type === 'edit') {
+  if (type !== 'add') {
     form.value = {...row}
   }
 }

--
Gitblit v1.9.3