From 2c9fbc6f1a3ccd1418efa9c348ec12faf1ab3258 Mon Sep 17 00:00:00 2001
From: zhang_12370 <z2864490065@outlook.com>
Date: 星期三, 23 七月 2025 16:33:06 +0800
Subject: [PATCH] 1、完善表格逻辑 2、完善配煤计算器 3、完善设备管理 4、完善采购管理

---
 src/components/Table/ETable.vue |   44 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 42 insertions(+), 2 deletions(-)

diff --git a/src/components/Table/ETable.vue b/src/components/Table/ETable.vue
index 1f8fdfb..3921d6b 100644
--- a/src/components/Table/ETable.vue
+++ b/src/components/Table/ETable.vue
@@ -35,6 +35,22 @@
     <el-table-column v-if="showOperations" :label="operationsLabel" :width="operationsWidth" :show-overflow-tooltip="false" fixed="right" align="center">
       <template #default="scope">
         <slot name="operations" :row="scope.row">
+          <!-- 鑷畾涔夋寜閽� - 鏀惧湪榛樿鎸夐挳涔嬪墠 -->
+          <el-button 
+            v-for="button in customButtons" 
+            :key="button.name"
+            v-show="!button.show || button.show(scope.row)"
+            :link="button.link !== false"
+            :type="button.type || 'primary'" 
+            :size="button.size || 'small'"
+            :icon="button.icon"
+            :disabled="button.disabled && button.disabled(scope.row)"
+            @click="handleCustomClick(button.name, scope.row)"
+          >
+            {{ button.label }}
+          </el-button>
+          
+          <!-- 榛樿鎿嶄綔鎸夐挳 -->
           <el-button v-if="operations.includes('edit')" link type="primary" size="small"
             @click="handleEdit(scope.row)">缂栬緫</el-button>
           <el-button v-if="operations.includes('viewRow')" link type="primary" size="small"
@@ -126,7 +142,25 @@
   operations: {
     type: Array,
     default: () => ['edit', 'delete', 'export']
-  },  // 鍒犻櫎纭淇℃伅
+  },
+  // 鑷畾涔夋寜閽厤缃�
+  customButtons: {
+    type: Array,
+    default: () => []
+    // 绀轰緥閰嶇疆锛�
+    // [
+    //   {
+    //     name: 'return',      // 鎸夐挳鏍囪瘑
+    //     label: '褰掕繕',       // 鎸夐挳鏄剧ず鏂囨湰
+    //     type: 'success',     // 鎸夐挳绫诲瀷
+    //     size: 'small',       // 鎸夐挳澶у皬
+    //     icon: '',            // 鍥炬爣(鍙��)
+    //     show: (row) => true, // 鏄剧ず鏉′欢鍑芥暟(鍙��)
+    //     disabled: (row) => false, // 绂佺敤鏉′欢鍑芥暟(鍙��)
+    //   }
+    // ]
+  },
+  // 鍒犻櫎纭淇℃伅
   deleteConfirmText: {
     type: String,
     default: '纭鍒犻櫎璇ヨ褰曪紵'
@@ -163,7 +197,7 @@
 };
 
 // 澶勭悊閫夋嫨鍙樺寲銆佺紪杈戙�佸垹闄ゅ拰瀵煎嚭鎿嶄綔
-const emit = defineEmits(['selection-change', 'edit', 'delete', 'export', 'viewRow', 'viewFile'])
+const emit = defineEmits(['selection-change', 'edit', 'delete', 'export', 'viewRow', 'viewFile', 'custom-click'])
 const handleSelectionChange = (selection) => {
   emit('selection-change', selection)
 }
@@ -176,6 +210,12 @@
 const handleViewFile = (row) => {
   emit('viewFile', row)
 }
+
+// 澶勭悊鑷畾涔夋寜閽偣鍑�
+const handleCustomClick = (buttonName, row) => {
+  emit('custom-click', { buttonName, row })
+}
+
 const handleDelete = (row) => {
   ElMessageBox.confirm(
     props.deleteConfirmText,

--
Gitblit v1.9.3