From a8ebfcbec49fb628fa2fa1a66bc1950125bc0786 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期一, 18 五月 2026 14:51:14 +0800
Subject: [PATCH] 优化设备保养表单:新增保养人选择器,确保保养人必填,加载保养人列表

---
 src/pages/sales/salesAccount/index.vue |   80 +++++++++++++++++++++++----------------
 1 files changed, 47 insertions(+), 33 deletions(-)

diff --git a/src/pages/sales/salesAccount/index.vue b/src/pages/sales/salesAccount/index.vue
index 250447d..2e1b083 100644
--- a/src/pages/sales/salesAccount/index.vue
+++ b/src/pages/sales/salesAccount/index.vue
@@ -27,7 +27,7 @@
       <view v-for="(item, index) in ledgerList"
             :key="index">
         <view class="ledger-item"
-              @click="handleInfo('edit', item)">
+              @click="openOut(item)">
           <view class="item-header">
             <view class="item-left">
               <view class="document-icon">
@@ -67,6 +67,13 @@
               <text class="detail-label">绛捐鏃ユ湡</text>
               <text class="detail-value">{{ item.executionDate }}</text>
             </view>
+            <view class="detail-row">
+              <text class="detail-label">鍙戣揣鐘舵��</text>
+              <u-tag size="mini"
+                     :type="getLedgerShippingTagType(item)">{{
+                getLedgerShippingLabel(item)
+              }}</u-tag>
+            </view>
             <up-divider></up-divider>
             <view class="detail-info">
               <view class="detail-row">
@@ -81,18 +88,33 @@
             <up-divider></up-divider>
             <view class="detail-buttons">
               <u-button class="detail-button"
-                      size="small"
-                      type="primary"
-                      @click="openOut(item)">
-              鍙戣揣鐘舵��
-            </u-button>
-            <u-button class="detail-button"
-                      size="small"
-                      type="error"
-                      plain
-                      @click.stop="handleDelete(item)">
-              鍒犻櫎
-            </u-button>
+                        size="small"
+                        type="primary"
+                        plain
+                        :disabled="!canLedgerShip(item)"
+                        @click.stop="handleShip(item)">
+                鍙戣揣
+              </u-button>
+              <!-- <u-button class="detail-button"
+                        size="small"
+                        type="primary"
+                        @click.stop="handleInfo('edit', item)">
+                缂栬緫
+              </u-button>
+              <u-button class="detail-button"
+                        size="small"
+                        type="primary"
+                        plain
+                        @click.stop="openOut(item)">
+                鍙戣揣鐘舵��
+              </u-button> -->
+              <!-- <u-button class="detail-button"
+                        size="small"
+                        type="error"
+                        plain
+                        @click.stop="handleDelete(item)">
+                鍒犻櫎
+              </u-button> -->
             </view>
           </view>
         </view>
@@ -103,23 +125,26 @@
       <text>鏆傛棤閿�鍞彴璐︽暟鎹�</text>
     </view>
     <!-- 娴姩鎿嶄綔鎸夐挳 -->
-    <view class="fab-button"
+    <!-- <view class="fab-button"
           @click="handleInfo('add')">
       <up-icon name="plus"
                size="24"
                color="#ffffff"></up-icon>
-    </view>
+    </view> -->
   </view>
 </template>
 
 <script setup>
   import { ref } from "vue";
   import { onShow } from "@dcloudio/uni-app";
+  import { ledgerListPage, delLedger, productList } from "@/api/salesManagement/salesLedger";
   import {
-    ledgerListPage,
-    delLedger,
-    productList,
-  } from "@/api/salesManagement/salesLedger";
+    hasShippedProducts,
+    getLedgerShippingLabel,
+    getLedgerShippingTagType,
+    canLedgerShip,
+    executeSalesLedgerShip,
+  } from "@/utils/salesLedgerShip";
   import useUserStore from "@/store/modules/user";
   import PageHeader from "@/components/PageHeader.vue";
   const userStore = useUserStore();
@@ -139,19 +164,7 @@
   // 閿�鍞彴璐︽暟鎹�
   const ledgerList = ref([]);
 
-  // 鍒ゆ柇鏄惁瀛樺湪宸插彂璐�/鍙戣揣瀹屾垚鐨勪骇鍝�
-  const hasShippedProducts = products => {
-    if (!products || products.length === 0) return false;
-    return products.some(p => {
-      const statusStr = (p.shippingStatus ?? "").toString();
-      // 鍖呭惈鈥滃彂璐р�濇垨鏈夊彂璐ф棩鏈�/杞︾墝鍙疯涓哄凡鍙戣揣
-      return (
-        statusStr.includes("鍙戣揣") ||
-        !!p.shippingDate ||
-        !!p.shippingCarNumber
-      );
-    });
-  };
+  const handleShip = item => executeSalesLedgerShip(item);
 
   // 杩斿洖涓婁竴椤�
   const goBack = () => {
@@ -198,7 +211,7 @@
 
     if (hasShippedProducts(products)) {
       uni.showToast({
-        title: "宸插彂璐�/鍙戣揣瀹屾垚鐨勯攢鍞鍗曚笉鑳藉垹闄�",
+        title: "宸插彂璐с�侀儴鍒嗗彂璐ф垨宸叉湁鍙戣揣璁板綍鐨勯攢鍞鍗曚笉鑳藉垹闄�",
         icon: "none",
       });
       return;
@@ -234,6 +247,7 @@
     try {
       // 璁剧疆鎿嶄綔绫诲瀷
       uni.setStorageSync("operationType", type);
+      uni.removeStorageSync("editData");
 
       // 濡傛灉鏄煡鐪嬫垨缂栬緫鎿嶄綔
       if (type !== "add") {

--
Gitblit v1.9.3