From 05e63f745d89c9a16280428208c28a98258f9391 Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期五, 07 三月 2025 17:53:48 +0800 Subject: [PATCH] 选择列记忆 --- vite.config.ts | 2 +- src/components/chat/components/playBar/businessTablePreview/index.vue | 34 ++++++++++++++++++++++++++++++---- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/components/chat/components/playBar/businessTablePreview/index.vue b/src/components/chat/components/playBar/businessTablePreview/index.vue index 3e2dcc6..90de87e 100644 --- a/src/components/chat/components/playBar/businessTablePreview/index.vue +++ b/src/components/chat/components/playBar/businessTablePreview/index.vue @@ -15,7 +15,7 @@ </template> <div class="w100 h100"> <div class="h-full flex-column"> - <ColFilter class="flex-0 ml-auto mb-2" :column-list="tableCheckData" /> + <ColFilter class="flex-0 ml-auto mb-2" :column-list="tableCheckData" @change="colFilterChange" /> <el-table v-loading="tableLoading" ref="draggableTableRef" class="flex-auto" border :data="tableData" highlight-current-row> <el-table-column v-for="item in visibleTableColumns" @@ -38,6 +38,7 @@ // import TableSearch from './search/index.vue'; import type { Attach } from '../hook/useAttach'; import ColFilter from '/@/components/table/colFilter/ColFilter.vue'; +import { LocalPlus } from '/@/utils/storage'; const dialogIsShow = defineModel({ type: Boolean, }); @@ -58,7 +59,6 @@ const tableData = ref([]); const tableColumns = ref([]); - const tableCheckData = computed(() => { return tableColumns.value.map((item) => { return { @@ -73,7 +73,6 @@ }; }); }); - const visibleTableColumns = computed(() => { return tableColumns.value.filter((item) => item.isShow); }); @@ -106,16 +105,43 @@ () => dialogIsShow.value, (val) => { if (!val) return; - tableColumns.value = (props.data?.model?.columns || []).map((item) => { + const data = (props.data?.model?.columns || []).map((item) => { return { name: item, title: item, isShow: true, }; }); + + const finalData = getStoreCols(data); + tableColumns.value = finalData; tableData.value = parseRecordData(props.data?.model?.values || [], tableColumns.value); } ); + +//#region ====================== 閫夋嫨鍒楄蹇� ====================== +const colFilterChange = () => { + storeCols(tableColumns.value); +}; +const storeCols = (colList: any[]) => { + const key = colList.map((item) => item.label).join(','); + if (!key) return; + LocalPlus.set(`${key}-table-preview`, colList, 7); +}; +const getStoreCols = (colList: any[]) => { + if (colList.length === 0) return colList; + const key = colList.map((item) => item.label).join(','); + if (!key) return colList; + const storeValue = LocalPlus.get(`${key}-table-preview`); + + if (!storeValue) { + return colList; + } else { + return storeValue; + } +}; + +//#endregion </script> <style scoped lang="scss"> .set-permission { diff --git a/vite.config.ts b/vite.config.ts index 27dae42..1c82ca0 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -58,7 +58,7 @@ host: '0.0.0.0', port: env.VITE_PORT as unknown as number, open: JSON.parse(env.VITE_OPEN), - hmr: true, + hmr: false, proxy: { '/events': { target: 'http://localhost:3000', -- Gitblit v1.9.3