From 6b9dd0a1b0c259a02c086f7834467e1fa2c2a5ea Mon Sep 17 00:00:00 2001 From: 张诺 <zhang_12370@163.com> Date: 星期五, 30 五月 2025 17:58:54 +0800 Subject: [PATCH] 调整基础信息供应商模块,客户信息模块并新增联动查询省市区联动,修改table表格方法 --- src/components/Table/ETable.vue | 43 +++++++++++++++++++++++++++++++++++++++---- 1 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/components/Table/ETable.vue b/src/components/Table/ETable.vue index f835e2d..7d30361 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 @@ -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], @@ -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