From 37436ffec6f763d6d298d6f42d1ff946f27c71be Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期二, 03 六月 2025 13:53:47 +0800 Subject: [PATCH] 表格不要删除按钮,统一用上面的 --- src/components/Table/ETable.vue | 59 +++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 47 insertions(+), 12 deletions(-) diff --git a/src/components/Table/ETable.vue b/src/components/Table/ETable.vue index f835e2d..1574660 100644 --- a/src/components/Table/ETable.vue +++ b/src/components/Table/ETable.vue @@ -7,13 +7,20 @@ :show-selection="showSelection" :max-height="maxHeight" @selection-change="handleSelectionChange" + @row-click="handleRowClick" + @row-dblclick="handleRowDblClick" + @cell-click="handleCellClick" + :max-width="maxWidth" + @export="handleExport" > <el-table-column v-if="showSelection" type="selection" width="55" align="center" /> - <el-table-column v-if="showIndex" label="搴忓彿" type="index" width="60" align="center" /> + <el-table-column v-if="showIndex" label="搴忓彿" type="index" width="60" align="center" /> <template v-for="col in columns" :key="col.prop"> <el-table-column v-bind="col" - :show-overflow-tooltip="col.showOverflowTooltip !== false" + :show-overflow-tooltip="shouldShowTooltip(col, tableData)" + :formatter="(row, column, cellValue) => cellValue == null || cellValue === '' ? '--' : cellValue" + align="center" > <template v-if="col.slot" #default> <slot></slot> @@ -21,7 +28,7 @@ </el-table-column> </template> <!-- 鎿嶄綔鍒� --> - <el-table-column v-if="showOperations" :label="operationsLabel" :width="operationsWidth" fixed="right"> + <el-table-column v-if="showOperations" :label="operationsLabel" :width="operationsWidth" fixed="right" align="center"> <template #default="scope"> <slot name="operations" :row="scope.row"> <el-button @@ -31,13 +38,13 @@ size="small" @click="handleEdit(scope.row)" >缂栬緫</el-button> - <el-button - v-if="operations.includes('delete')" - link - type="danger" - size="small" - @click="handleDelete(scope.row)" - >鍒犻櫎</el-button> +<!-- <el-button--> +<!-- v-if="operations.includes('delete')"--> +<!-- link--> +<!-- type="danger"--> +<!-- size="small"--> +<!-- @click="handleDelete(scope.row)"--> +<!-- >鍒犻櫎</el-button>--> </slot> </template> </el-table-column> @@ -47,8 +54,28 @@ <script setup> import { defineEmits } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' - const props = defineProps({ + // 鏈�澶у搴� + maxWidth: { + type: [String, Number], + default: 'auto' + }, + handleCellClick: { + type: Function, + default: () => {} + }, + handleRowClick: { + type: Function, + default: () => {} + }, + handleExport: { + type: Function, + default: () => {} + }, + handleRowDblClick: { + type: Function, + default: () => {} + }, // 楂樺害 maxHeight: { type: [String, Number], @@ -97,7 +124,7 @@ // 鎿嶄綔鍒楀搴� operationsWidth: { type: [String, Number], - default: 160 + default: 100 }, // 鏄剧ず鍝簺鎿嶄綔鎸夐挳 operations: { @@ -110,6 +137,14 @@ default: '纭鍒犻櫎璇ヨ褰曪紵' } }) + // 妫�鏌ュ垪鏄惁闇�瑕佹樉绀簍ooltip + const shouldShowTooltip = (col, data) => { + // 濡傛灉娌℃湁prop锛岀洿鎺ヨ繑鍥瀎alse + if (!col.prop) return false; + // 妫�鏌ヨ鍒楀湪鎵�鏈夋暟鎹腑鏄惁鏈夐潪绌哄�� + return data.some(row => row[col.prop] != null && row[col.prop] !== ''); +}; +// 澶勭悊閫夋嫨鍙樺寲銆佺紪杈戙�佸垹闄ゅ拰瀵煎嚭鎿嶄綔 const emit = defineEmits(['selection-change', 'edit', 'delete', 'export']) const handleSelectionChange = (selection) => { emit('selection-change', selection) -- Gitblit v1.9.3