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 | 68 ++++++++++++++++++++++++++------- 1 files changed, 53 insertions(+), 15 deletions(-) diff --git a/src/components/Table/ETable.vue b/src/components/Table/ETable.vue index ca9c483..3921d6b 100644 --- a/src/components/Table/ETable.vue +++ b/src/components/Table/ETable.vue @@ -2,7 +2,7 @@ v-loading="loading" :data="tableData" :border="border" - :show-selection="showSelection" + :show-selection="showSelection" :max-height="maxHeight" :header-cell-style="{ background: '#EBEEF5', color: '#3D3D3D' }" @selection-change="handleSelectionChange" @@ -15,10 +15,10 @@ :show-overflow-tooltip="showOverflowTooltip" ref="tableRef" :row-key="rowKey" - style="width: 100%" + style="width: 100%;" > - <el-table-column v-if="showSelection" type="selection" width="55" align="center" /> - <el-table-column v-if="showIndex" label="搴忓彿" width="60" align="center" fixed="left"> + <el-table-column v-if="showSelection" type="selection" width="55" align="center" :show-overflow-tooltip="false" /> + <el-table-column v-if="showIndex" label="搴忓彿" width="60" align="center" fixed="left" :show-overflow-tooltip="false"> <template #default="scope"> {{ getRowIndex(scope.$index) }} </template> @@ -32,20 +32,31 @@ </el-table-column> </template> <!-- 鎿嶄綔鍒� --> - <el-table-column v-if="showOperations" :label="operationsLabel" :width="operationsWidth" fixed="right" align="center"> + <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" + @click="handleView(scope.row)">鏌ョ湅</el-button> <el-button v-if="operations.includes('viewFile')" link type="primary" size="small" - @click="handleView(scope.row)">鏌ョ湅闄勪欢</el-button> - <!-- <el-button--> - <!-- v-if="operations.includes('delete')"--> - <!-- link--> - <!-- type="danger"--> - <!-- size="small"--> - <!-- @click="handleDelete(scope.row)"--> - <!-- >鍒犻櫎</el-button>--> + @click="handleViewFile(scope.row)">鏌ョ湅闄勪欢</el-button> </slot> </template> </el-table-column> @@ -131,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: '纭鍒犻櫎璇ヨ褰曪紵' @@ -168,7 +197,7 @@ }; // 澶勭悊閫夋嫨鍙樺寲銆佺紪杈戙�佸垹闄ゅ拰瀵煎嚭鎿嶄綔 -const emit = defineEmits(['selection-change', 'edit', 'delete', 'export']) +const emit = defineEmits(['selection-change', 'edit', 'delete', 'export', 'viewRow', 'viewFile', 'custom-click']) const handleSelectionChange = (selection) => { emit('selection-change', selection) } @@ -176,8 +205,17 @@ emit('edit', row) } const handleView = (row) => { + emit('viewRow', row) +} +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