From de544ce8cfa5c95ae38bed31404df3650b2022aa Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 09 六月 2026 13:36:11 +0800
Subject: [PATCH] feat(salesLedger): 添加批量操作按钮的禁用逻辑

---
 src/views/salesManagement/salesLedger/index.vue |   56 +++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 47 insertions(+), 9 deletions(-)

diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index 48d1a76..18d58e3 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -105,15 +105,19 @@
                                        @confirm="handleProcessFlowSelectConfirm" />
         <el-space wrap>
           <el-button type="primary"
-                     @click="handleAudit">瀹℃牳</el-button>
+                     @click="handleAudit"
+                     :disabled="isBatchButtonDisabled('audit')">瀹℃牳</el-button>
           <el-button type="primary"
-                     @click="handleReverseAudit">鍙嶅</el-button>
+                     @click="handleReverseAudit"
+                     :disabled="isBatchButtonDisabled('reverseAudit')">鍙嶅</el-button>
           <el-button type="primary"
-                     @click="handleSalesStock">鍏ュ簱</el-button>
+                     @click="handleSalesStock"
+                     :disabled="isBatchButtonDisabled('stock')">鍏ュ簱</el-button>
           <el-button type="primary"
                      @click="openForm('add')">鏂板鍙拌处</el-button>
           <el-button type="primary"
-                     @click="handleBulkDelivery">鍙戣揣</el-button>
+                     @click="handleBulkDelivery"
+                     :disabled="isBatchButtonDisabled('delivery')">鍙戣揣</el-button>
           <el-button type="primary"
                      plain
                      @click="handleImport">瀵煎叆</el-button>
@@ -131,13 +135,16 @@
               </el-dropdown-menu>
             </template>
           </el-dropdown>
-          <el-button @click="handleOut">瀵煎嚭</el-button>
+          <el-button @click="handleOut"
+                     :disabled="isBatchButtonDisabled('export')">瀵煎嚭</el-button>
           <el-button type="danger"
                      plain
-                     @click="handleDelete">鍒犻櫎</el-button>
+                     @click="handleDelete"
+                     :disabled="isBatchButtonDisabled('delete')">鍒犻櫎</el-button>
           <el-dropdown @command="handlePrintCommand">
             <el-button type="primary"
-                       plain>
+                       plain
+                       :disabled="isBatchButtonDisabled('print')">
               鎵撳嵃鍗曟嵁<el-icon class="el-icon--right">
                 <ArrowDown />
               </el-icon>
@@ -152,7 +159,8 @@
           </el-dropdown>
           <el-button type="primary"
                      plain
-                     @click="handlePrintLabel">鎵撳嵃鏍囩</el-button>
+                     @click="handlePrintLabel"
+                     :disabled="isBatchButtonDisabled('print')">鎵撳嵃鏍囩</el-button>
         </el-space>
       </div>
       <el-table :data="tableData"
@@ -445,7 +453,7 @@
             <el-button link
                        type="primary"
                        @click="openForm('edit', scope.row)"
-                       :disabled="!scope.row.isEdit">缂栬緫</el-button>
+                       :disabled="Number(scope.row.reviewStatus) === 1">缂栬緫</el-button>
             <el-button link
                        type="primary"
                        @click="openProcessFlowSelect(scope.row)"
@@ -2985,6 +2993,36 @@
     handleQuery();
   };
 
+  /** 鎵归噺鎸夐挳绂佺敤鍒ゆ柇锛氭牴鎹�変腑琛岀殑瀹℃牳鐘舵�佹帶鍒舵寜閽彲鐢ㄦ��
+   *  鏈鏍�(0)锛氬彧鑳藉鏍搞�佸垹闄ゃ�佺紪杈�
+   *  宸插鏍�(1)锛氬彲浠ュ弽瀹°�佸叆搴撱�佸彂璐с�佸鍑恒�佹墦鍗般�佸伐鑹鸿矾绾�
+   *  鏈�変腑浠讳綍琛屾椂鎵�鏈夋壒閲忔寜閽鐢�
+   */
+  const isBatchButtonDisabled = (action) => {
+    if (selectedRows.value.length === 0) return true;
+    const statuses = selectedRows.value.map(r => Number(r.reviewStatus));
+    const allUnreviewed = statuses.every(s => s === 0);
+    const allReviewed = statuses.every(s => s === 1);
+    switch (action) {
+      case 'audit':
+        return !allUnreviewed;
+      case 'reverseAudit':
+        return !allReviewed;
+      case 'stock':
+        return !allReviewed;
+      case 'delivery':
+        return !allReviewed;
+      case 'export':
+        return !allReviewed;
+      case 'delete':
+        return !allUnreviewed;
+      case 'print':
+        return !allReviewed;
+      default:
+        return false;
+    }
+  };
+
   // 鏌ヨ鍒楄〃
   /** 鎼滅储鎸夐挳鎿嶄綔 */
   const handleQuery = () => {

--
Gitblit v1.9.3