From b19b9a0af8f796120f7478a2b94ecc6690eb5b3c Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 07 九月 2026 12:13:53 +0800
Subject: [PATCH] feat: 销售发货新增自送选择

---
 src/views/salesManagement/deliveryLedger/index.vue |   42 +++++++++++++++++++--
 src/views/salesManagement/salesLedger/index.vue    |   58 ++++++++++++++++++++++++++---
 2 files changed, 90 insertions(+), 10 deletions(-)

diff --git a/src/views/salesManagement/deliveryLedger/index.vue b/src/views/salesManagement/deliveryLedger/index.vue
index 07cf066..d840b4b 100644
--- a/src/views/salesManagement/deliveryLedger/index.vue
+++ b/src/views/salesManagement/deliveryLedger/index.vue
@@ -92,6 +92,23 @@
           show-overflow-tooltip
         />
         <el-table-column
+          label="鍙戣揣绫诲瀷"
+          align="center"
+          width="100"
+        >
+          <template #default="scope">
+            <el-tag v-if="scope.row.type"
+                    :type="getShippingTypeTag(scope.row.type)"
+                    size="small">
+              {{ scope.row.type }}
+            </el-tag>
+            <el-tag v-else
+                    type="info"
+                    size="small">-
+            </el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column
           label="鍙戣揣杞︾墝鍙�"
           prop="shippingCarNumber"
           show-overflow-tooltip
@@ -182,6 +199,7 @@
               >
                 <el-option label="璐ц溅" value="璐ц溅" />
                 <el-option label="蹇��" value="蹇��" />
+                <el-option label="鑷��" value="鑷��" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -201,8 +219,8 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row :gutter="30">
-          <el-col :span="24" v-if="form.type === '璐ц溅'">
+        <el-row :gutter="30" v-if="form.type === '璐ц溅'">
+          <el-col :span="24">
             <el-form-item label="鍙戣揣杞︾墝鍙凤細" prop="shippingCarNumber">
               <el-input
                 v-model="form.shippingCarNumber"
@@ -211,7 +229,9 @@
               />
             </el-form-item>
           </el-col>
-          <el-col :span="24" v-else>
+        </el-row>
+        <el-row :gutter="30" v-else-if="form.type === '蹇��'">
+          <el-col :span="24">
             <el-form-item label="蹇�掑叕鍙革細" prop="expressCompany">
               <el-input
                 v-model="form.expressCompany"
@@ -385,7 +405,7 @@
     customerName: "",
     specificationModel: "",
     productName: "",
-    type: "璐ц溅", // 璐ц溅, 蹇��
+    type: "璐ц溅", // 璐ц溅, 蹇��, 鑷��
     shippingDate: "",
     shippingCarNumber: "",
     expressCompany: "",
@@ -772,11 +792,25 @@
   if (val === "璐ц溅") {
     form.value.expressCompany = "";
     form.value.expressNumber = "";
+  } else if (val === "蹇��") {
+    form.value.shippingCarNumber = "";
   } else {
     form.value.shippingCarNumber = "";
+    form.value.expressCompany = "";
+    form.value.expressNumber = "";
   }
 };
 
+// 鍙戣揣绫诲瀷鏍囩棰滆壊
+const getShippingTypeTag = (type) => {
+  const typeTagMap = {
+    璐ц溅: "warning",
+    蹇��: "primary",
+    鑷��: "success",
+  };
+  return typeTagMap[type] || "info";
+};
+
 // 鑾峰彇瀹℃牳鐘舵�佹枃鏈�
 const getApprovalStatusText = (status) => {
   if (status === null || status === undefined || status === "") {
diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index 8dab3ca..5328607 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -133,6 +133,21 @@
                   </el-tag>
                 </template>
               </el-table-column>
+              <el-table-column label="鍙戣揣绫诲瀷"
+                               width="100"
+                               align="center">
+                <template #default="scope">
+                  <el-tag v-if="getShippingTypeText(scope.row)"
+                          :type="getShippingTypeTag(scope.row)"
+                          size="small">
+                    {{ getShippingTypeText(scope.row) }}
+                  </el-tag>
+                  <el-tag v-else
+                          type="info"
+                          size="small">-
+                  </el-tag>
+                </template>
+              </el-table-column>
               <el-table-column label="蹇�掑叕鍙�"
                                prop="expressCompany"
                                show-overflow-tooltip />
@@ -941,6 +956,8 @@
                            value="璐ц溅" />
                 <el-option label="蹇��"
                            value="蹇��" />
+                <el-option label="鑷��"
+                           value="鑷��" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -957,9 +974,9 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row :gutter="30">
-          <el-col :span="24"
-                  v-if="deliveryForm.type === '璐ц溅'">
+        <el-row :gutter="30"
+                v-if="deliveryForm.type === '璐ц溅'">
+          <el-col :span="24">
             <el-form-item label="鍙戣揣杞︾墝鍙凤細"
                           prop="shippingCarNumber">
               <el-input v-model="deliveryForm.shippingCarNumber"
@@ -967,8 +984,10 @@
                         clearable />
             </el-form-item>
           </el-col>
-          <el-col :span="24"
-                  v-else>
+        </el-row>
+        <el-row :gutter="30"
+                v-else-if="deliveryForm.type === '蹇��'">
+          <el-col :span="24">
             <el-form-item label="蹇�掑叕鍙革細"
                           prop="expressCompany">
               <el-input v-model="deliveryForm.expressCompany"
@@ -1358,7 +1377,7 @@
       shippingCarNumber: "",
       expressCompany: "",
       expressNumber: "",
-      type: "璐ц溅", // 璐ц溅, 蹇��
+      type: "璐ц溅", // 璐ц溅, 蹇��, 鑷��
     },
     deliveryRules: {
       shippingCarNumber: [
@@ -2443,6 +2462,29 @@
   };
 
   /**
+   * 鑾峰彇鍙戣揣绫诲瀷鏂囨湰锛堣揣杞�/蹇��/鑷�侊級
+   * 瀛愯〃琛屾湭杩斿洖鍙戣揣绫诲瀷瀛楁锛屼緷鎹簰鏂ョ殑鍙戣揣淇℃伅鎺ㄦ柇锛�
+   * 鏈夎溅鐗屼负璐ц溅锛屾湁蹇�掑叕鍙�/鍗曞彿涓哄揩閫掞紝宸插彂璐т絾涓よ�呯殕鏃犱负鑷��
+   */
+  const getShippingTypeText = row => {
+    if (!row) return "";
+    if (row.shippingCarNumber) return "璐ц溅";
+    if (row.expressCompany || row.expressNumber) return "蹇��";
+    if (row.shippingDate) return "鑷��";
+    return "";
+  };
+
+  const getShippingTypeTag = row => {
+    const type = getShippingTypeText(row);
+    const typeTagMap = {
+      璐ц溅: "warning",
+      蹇��: "primary",
+      鑷��: "success",
+    };
+    return typeTagMap[type] || "info";
+  };
+
+  /**
    * 鍒ゆ柇鏄惁鍙互鍙戣揣
    * 鍙湁鍦ㄤ骇鍝佺姸鎬佹槸鍏呰冻锛屽彂璐х姸鎬佹槸寰呭彂璐у拰瀹℃牳鎷掔粷鐨勬椂鍊欐墠鍙互鍙戣揣
    * @param row 琛屾暟鎹�
@@ -2624,8 +2666,12 @@
     if (val === "璐ц溅") {
       deliveryForm.value.expressCompany = "";
       deliveryForm.value.expressNumber = "";
+    } else if (val === "蹇��") {
+      deliveryForm.value.shippingCarNumber = "";
     } else {
       deliveryForm.value.shippingCarNumber = "";
+      deliveryForm.value.expressCompany = "";
+      deliveryForm.value.expressNumber = "";
     }
   };
 

--
Gitblit v1.9.3