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);