From 51e88cdf7d83b4e560dd001b77864a4831dcb0e5 Mon Sep 17 00:00:00 2001 From: cshaptx4869 <994774638@qq.com> Date: Sat, 8 Jun 2024 11:12:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(PageContent):=20:sparkles:=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E9=80=89=E4=B8=AD=E6=95=B0=E6=8D=AE=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/PageContent/index.vue | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/components/PageContent/index.vue b/src/components/PageContent/index.vue index ab751da7..8db642bb 100644 --- a/src/components/PageContent/index.vue +++ b/src/components/PageContent/index.vue @@ -111,6 +111,7 @@ v-loading="loading" v-bind="contentConfig.table" :data="pageData" + :row-key="pk" @selection-change="handleSelectionChange" @filter-change="handleFilterChange" > @@ -332,6 +333,11 @@ label="当前数据 (当前页的数据)" :value="ExportsOriginEnum.CURRENT" /> + { prop?: string; width?: string | number; align?: "left" | "center" | "right"; + columnKey?: string; + reserveSelection?: boolean; // 列是否显示 show?: boolean; // 模板 @@ -537,6 +545,14 @@ const cols = ref( ) { col.columnKey = col.prop; } + if ( + col.type === "selection" && + col.reserveSelection === undefined && + col["reserve-selection"] === undefined + ) { + // 配合表格row-key实现跨页多选 + col.reserveSelection = true; + } return col; }) ); @@ -569,7 +585,9 @@ const request = props.contentConfig.request ?? { }; // 行选中 +const selectionData = ref([]); function handleSelectionChange(selection: any[]) { + selectionData.value = selection; removeIds.value = selection.map((item) => item[pk]); } // 刷新 @@ -608,6 +626,7 @@ cols.value.forEach((item) => { }); const enum ExportsOriginEnum { CURRENT = "current", + SELECTED = "selected", REMOTE = "remote", } const exportsModalVisible = ref(false); @@ -669,6 +688,9 @@ function handleExports() { } else { ElMessage.error("未配置exportsAction"); } + } else if (exportsFormData.origin === ExportsOriginEnum.SELECTED) { + worksheet.addRows(selectionData.value); + downloadXlsx(workbook, filename); } else { worksheet.addRows(pageData.value); downloadXlsx(workbook, filename);