From 28ab794b30dfe35d02cb66602299a7f5e4ef9603 Mon Sep 17 00:00:00 2001 From: "34047007@qq.com" <34047007@qq.com> Date: Fri, 7 Aug 2026 22:43:38 +0800 Subject: [PATCH] =?UTF-8?q?checkpoint:=20=E5=88=97=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=8C=81=E4=B9=85=E5=8C=96=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E2=80=94=E2=80=94=E4=BF=9D=E5=AD=98=20watch=20=E5=8A=A0=20deep?= =?UTF-8?q?=20=E7=9B=91=E5=90=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 表头组件勾选列是原地改对象(col.checked/visible),浅 watch 只在数组引用替换时触发, 漏掉勾选 → localStorage 无数据 → 刷新即恢复默认。改 deep:true 覆盖全部原地修改来源。 --- frontend/web/src/hooks/core/useTableColumns.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/web/src/hooks/core/useTableColumns.ts b/frontend/web/src/hooks/core/useTableColumns.ts index 952b66f..394800b 100644 --- a/frontend/web/src/hooks/core/useTableColumns.ts +++ b/frontend/web/src/hooks/core/useTableColumns.ts @@ -194,10 +194,10 @@ export function useTableColumns( columnChecks.value = newChecks; }); - // 列设置变化时自动持久化(所有变更均替换整个数组引用,无需 deep) + // 列设置变化时自动持久化(需 deep:表头组件勾选列是原地改对象,浅 watch 只在数组引用替换时触发,会漏掉勾选) watch([dynamicColumns, columnChecks], () => { saveColumnSettings(); - }); + }, { deep: true }); // 当前显示列(基于 columnChecks 的 checked 或 visible) const columns = computed(() => {