From c9e78ad7be4006bfd62e728b249e68a7366d2e38 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 21 一月 2026 17:27:18 +0800
Subject: [PATCH] 湟水峡 1.生产报工单价默认值修改 2.车辆管理页面开发和联调 3.生产管理模块修改 4.发货前端页面开发

---
 src/views/salesManagement/salesLedger/index.vue |   69 +++++++++++++++++++++++++++++++++-
 1 files changed, 66 insertions(+), 3 deletions(-)

diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index 637d528..a1bed58 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -426,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%"
@@ -440,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>
@@ -597,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" }
     ],
   },
 });
@@ -1413,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) {
@@ -1612,6 +1658,12 @@
   //   ElMessage.error(err.msg);
   // });
 	currentDeliveryRow.value = row;
+  deliveryForm.value = {
+    shippingType: "truck",
+    shippingDate: getCurrentDate(),
+    shippingCarNumber: "",
+    expressCompany: "",
+  };
 	deliveryFormVisible.value = true;
 };
 
@@ -1621,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("鍙戣揣鎴愬姛");
@@ -1643,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