From a0a35be4065d75b80ba4a9a51da7031e03166766 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 21 一月 2026 17:47:45 +0800
Subject: [PATCH] 湟水峡 1.成品入库添加编辑功能

---
 src/views/salesManagement/salesLedger/index.vue |  122 +++++++++++++++++++++++++++-------------
 1 files changed, 83 insertions(+), 39 deletions(-)

diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index aedfb98..a1bed58 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -55,33 +55,11 @@
                   <el-tag v-if="scope.row.approveStatus === 4" type="danger">瀹℃牳澶辫触</el-tag>
                 </template>
               </el-table-column>
-              <el-table-column label="鍙戣揣杞︾墝" minWidth="100px" align="center">
-                <template #default="scope">
-                  <div>
-                    <el-tag type="success" v-if="scope.row.shippingCarNumber">{{ scope.row.shippingCarNumber }}</el-tag>
-                    <el-tag v-else type="info">鏈彂璐�</el-tag>
-                  </div>
-                </template>
-              </el-table-column>
-              <el-table-column label="鍙戣揣鏃ユ湡" minWidth="100px" align="center">
-                <template #default="scope">
-                  <div>
-                    <div v-if="scope.row.shippingDate">{{ scope.row.shippingDate }}</div>
-                    <el-tag v-else type="info">鏈彂璐�</el-tag>
-                  </div>
-                </template>
-              </el-table-column>
               <el-table-column label="鏁伴噺" prop="quantity" />
               <el-table-column label="绋庣巼(%)" prop="taxRate" />
               <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" />
               <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" />
               <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" />
-            <!--鎿嶄綔-->
-              <el-table-column Width="60px" label="鎿嶄綔" align="center">
-                <template #default="scope">
-                  <el-button :disabled="scope.row.approveStatus!==2 || scope.row.approveStatus!==5" link type="primary" size="small" @click="openDeliveryForm(scope.row)">鍙戣揣</el-button>
-                </template>
-              </el-table-column>
             </el-table>
           </template>
         </el-table-column>
@@ -95,12 +73,13 @@
         <el-table-column label="褰曞叆浜�" prop="entryPersonName" width="100" show-overflow-tooltip />
         <el-table-column label="褰曞叆鏃ユ湡" prop="entryDate" width="120" show-overflow-tooltip />
         <el-table-column label="绛捐鏃ユ湡" prop="executionDate" width="120" show-overflow-tooltip />
-        <el-table-column fixed="right" label="鎿嶄綔" min-width="100" align="center">
+        <el-table-column label="鍙戣揣杞︾墝" prop="shippingCarNumber" width="140" align="center" show-overflow-tooltip />
+        <el-table-column label="鍙戣揣鏃ユ湡" prop="shippingDate" width="140" align="center" show-overflow-tooltip />
+        <el-table-column fixed="right" label="鎿嶄綔" min-width="140" align="center">
           <template #default="scope">
             <el-button link type="primary" size="small" @click="openForm('edit', scope.row)">缂栬緫</el-button>
-<!--            <el-button link type="primary" size="small" @click="openForm('view', scope.row)">璇︽儏</el-button>-->
             <el-button link type="primary" size="small" @click="downLoadFile(scope.row)">闄勪欢</el-button>
-<!--            <el-button link type="primary" size="small" @click="openDeliveryForm(scope.row)">鍙戣揣</el-button>-->
+            <el-button link type="primary" size="small" @click="openDeliveryForm(scope.row)">鍙戣揣</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -447,6 +426,21 @@
 			<el-form :model="deliveryForm" label-width="120px" label-position="top" :rules="deliveryRules" ref="deliveryFormRef">
 				<el-row :gutter="30">
 					<el-col :span="24">
+						<el-form-item label="鍙戣揣绫诲瀷锛�" prop="shippingType">
+							<el-select
+								v-model="deliveryForm.shippingType"
+								placeholder="璇烽�夋嫨鍙戣揣绫诲瀷"
+								style="width: 100%"
+								@change="handleShippingTypeChange"
+							>
+								<el-option label="璐ц溅" value="truck" />
+								<el-option label="蹇��" value="express" />
+							</el-select>
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row :gutter="30">
+					<el-col :span="24">
 						<el-form-item label="鍙戣揣鏃ユ湡锛�" prop="shippingDate">
 							<el-date-picker
 								style="width: 100%"
@@ -461,11 +455,20 @@
 					</el-col>
 				</el-row>
 				<el-row :gutter="30">
-					<el-col :span="24">
+					<el-col :span="24" v-if="deliveryForm.shippingType === 'truck'">
 						<el-form-item label="鍙戣揣杞︾墝鍙凤細" prop="shippingCarNumber">
 							<el-input
 								v-model="deliveryForm.shippingCarNumber"
 								placeholder="璇疯緭鍏ュ彂璐ц溅鐗屽彿"
+								clearable
+							/>
+						</el-form-item>
+					</el-col>
+					<el-col :span="24" v-else>
+						<el-form-item label="蹇�掑叕鍙革細" prop="expressCompany">
+							<el-input
+								v-model="deliveryForm.expressCompany"
+								placeholder="璇疯緭鍏ュ揩閫掑叕鍙�"
 								clearable
 							/>
 						</el-form-item>
@@ -492,7 +495,7 @@
 import { UploadFilled } from "@element-plus/icons-vue";
 import useUserStore from "@/store/modules/user";
 import { userListNoPage } from "@/api/system/user.js";
-import FileListDialog from '@/components/Dialog/FileListDialog.vue';
+import FileList from '@/views/salesManagement/salesLedger/fileList.vue';
 import FormDialog from '@/components/Dialog/FormDialog.vue';
 import { getQuotationList } from "@/api/salesManagement/salesQuotation.js";
 import {
@@ -618,15 +621,23 @@
 const currentDeliveryRow = ref(null);
 const deliveryFormData = reactive({
   deliveryForm: {
+    shippingType: "truck", // truck: 璐ц溅, express: 蹇��
     shippingDate: "",
     shippingCarNumber: "",
+    expressCompany: "",
   },
   deliveryRules: {
+    shippingType: [
+      { required: true, message: "璇烽�夋嫨鍙戣揣绫诲瀷", trigger: "change" }
+    ],
     shippingDate: [
       { required: true, message: "璇烽�夋嫨鍙戣揣鏃ユ湡", trigger: "change" }
     ],
     shippingCarNumber: [
-      { required: true, message: "璇疯緭鍏ュ彂璐ц溅鐗屽彿", trigger: "blur" }
+      { validator: (_, value, callback) => validateShippingCarNumber(value, callback), trigger: "blur" }
+    ],
+    expressCompany: [
+      { validator: (_, value, callback) => validateExpressCompany(value, callback), trigger: "blur" }
     ],
   },
 });
@@ -1434,6 +1445,20 @@
   return total.toFixed(2);
 };
 
+// 鍙戣揣绫诲瀷鏍¢獙锛氳揣杞︽椂瑕佹眰杞︾墝锛屽揩閫掓椂瑕佹眰蹇�掑叕鍙�
+const validateShippingCarNumber = (value, callback) => {
+  if (deliveryForm.value.shippingType === "truck") {
+    if (!value) return callback(new Error("璇疯緭鍏ュ彂璐ц溅鐗屽彿"));
+  }
+  callback();
+};
+const validateExpressCompany = (value, callback) => {
+  if (deliveryForm.value.shippingType === "express") {
+    if (!value) return callback(new Error("璇疯緭鍏ュ揩閫掑叕鍙�"));
+  }
+  callback();
+};
+
 const mathNum = () => {
   console.log("productForm.value", productForm.value);
   if (!productForm.value.taxInclusiveUnitPrice) {
@@ -1622,16 +1647,24 @@
 
 // 鎵撳紑鍙戣揣寮规
 const openDeliveryForm = (row) => {
-  getProductInventory({ salesLedgerId: row.id, type:1 }).then((res) => {
-    currentDeliveryRow.value = row;
-    deliveryForm.value = {
-      shippingDate: getCurrentDate(),
-      shippingCarNumber: "",
-    };
-    deliveryFormVisible.value = true;
-  }).catch(err => {
-    ElMessage.error(err.msg);
-  });
+  // getProductInventory({ salesLedgerId: row.id, type:1 }).then((res) => {
+  //   currentDeliveryRow.value = row;
+  //   deliveryForm.value = {
+  //     shippingDate: getCurrentDate(),
+  //     shippingCarNumber: "",
+  //   };
+  //   deliveryFormVisible.value = true;
+  // }).catch(err => {
+  //   ElMessage.error(err.msg);
+  // });
+	currentDeliveryRow.value = row;
+  deliveryForm.value = {
+    shippingType: "truck",
+    shippingDate: getCurrentDate(),
+    shippingCarNumber: "",
+    expressCompany: "",
+  };
+	deliveryFormVisible.value = true;
 };
 
 // 鎻愪氦鍙戣揣琛ㄥ崟
@@ -1640,8 +1673,10 @@
     if (valid) {
       addShippingInfo({
         salesLedgerId: currentDeliveryRow.value.id,
+        shippingType: deliveryForm.value.shippingType,
         shippingDate: deliveryForm.value.shippingDate,
-        shippingCarNumber: deliveryForm.value.shippingCarNumber,
+        shippingCarNumber: deliveryForm.value.shippingType === "truck" ? deliveryForm.value.shippingCarNumber : "",
+        expressCompany: deliveryForm.value.shippingType === "express" ? deliveryForm.value.expressCompany : "",
       })
         .then(() => {
           proxy.$modal.msgSuccess("鍙戣揣鎴愬姛");
@@ -1662,6 +1697,15 @@
   currentDeliveryRow.value = null;
 };
 
+// 鍙戣揣绫诲瀷鍒囨崲鏃舵竻绌哄搴斿瓧娈�
+const handleShippingTypeChange = (val) => {
+  if (val === "truck") {
+    deliveryForm.value.expressCompany = "";
+  } else {
+    deliveryForm.value.shippingCarNumber = "";
+  }
+};
+
 onMounted(() => {
 	getList();
 });

--
Gitblit v1.9.3