From 9e3d75ae65257b163a65cc9bcf5308d02a994500 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 18 Jan 2026 16:20:43 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E3=80=90infra=E3=80=91=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=94=9F=E6=88=90=EF=BC=9A=E5=85=A8=E9=80=89=E4=B8=8D?= =?UTF-8?q?=E7=94=9F=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../infra/codegen/modules/import-table.vue | 27 +++++++++++++------ .../infra/codegen/modules/import-table.vue | 27 +++++++++++++------ .../infra/codegen/modules/import-table.vue | 27 +++++++++++++------ .../infra/codegen/modules/import-table.vue | 27 +++++++++++++------ 4 files changed, 76 insertions(+), 32 deletions(-) diff --git a/apps/web-antd/src/views/infra/codegen/modules/import-table.vue b/apps/web-antd/src/views/infra/codegen/modules/import-table.vue index 38a78bae2..d7040011f 100644 --- a/apps/web-antd/src/views/infra/codegen/modules/import-table.vue +++ b/apps/web-antd/src/views/infra/codegen/modules/import-table.vue @@ -26,8 +26,17 @@ const formData = reactive({ tableNames: [], // 已选择的表列表 }); +/** 处理选择变化 */ +function handleCheckboxChange({ + records, +}: { + records: InfraCodegenApi.DatabaseTable[]; +}) { + formData.tableNames = records.map((item) => item.name); +} + /** 表格实例 */ -const [Grid] = useVbenVxeGrid({ +const [Grid, gridApi] = useVbenVxeGrid({ formOptions: { schema: useImportTableFormSchema(), submitOnChange: true, @@ -67,13 +76,8 @@ const [Grid] = useVbenVxeGrid({ }, } as VxeTableGridOptions, gridEvents: { - checkboxChange: ({ - records, - }: { - records: InfraCodegenApi.DatabaseTable[]; - }) => { - formData.tableNames = records.map((item) => item.name); - }, + checkboxChange: handleCheckboxChange, + checkboxAll: handleCheckboxChange, }, }); @@ -81,6 +85,13 @@ const [Grid] = useVbenVxeGrid({ const [Modal, modalApi] = useVbenModal({ title: '导入表', class: 'w-1/2', + async onOpenChange(isOpen: boolean) { + if (!isOpen) { + // 关闭时清空选择状态 + formData.tableNames = []; + await gridApi.grid?.clearCheckboxRow(); + } + }, async onConfirm() { modalApi.lock(); // 1.1 获取表单值 diff --git a/apps/web-ele/src/views/infra/codegen/modules/import-table.vue b/apps/web-ele/src/views/infra/codegen/modules/import-table.vue index 2225c932f..89a6cb444 100644 --- a/apps/web-ele/src/views/infra/codegen/modules/import-table.vue +++ b/apps/web-ele/src/views/infra/codegen/modules/import-table.vue @@ -26,8 +26,17 @@ const formData = reactive({ tableNames: [], // 已选择的表列表 }); +/** 处理选择变化 */ +function handleCheckboxChange({ + records, +}: { + records: InfraCodegenApi.DatabaseTable[]; +}) { + formData.tableNames = records.map((item) => item.name); +} + /** 表格实例 */ -const [Grid] = useVbenVxeGrid({ +const [Grid, gridApi] = useVbenVxeGrid({ formOptions: { schema: useImportTableFormSchema(), submitOnChange: true, @@ -67,13 +76,8 @@ const [Grid] = useVbenVxeGrid({ }, } as VxeTableGridOptions, gridEvents: { - checkboxChange: ({ - records, - }: { - records: InfraCodegenApi.DatabaseTable[]; - }) => { - formData.tableNames = records.map((item) => item.name); - }, + checkboxChange: handleCheckboxChange, + checkboxAll: handleCheckboxChange, }, }); @@ -81,6 +85,13 @@ const [Grid] = useVbenVxeGrid({ const [Modal, modalApi] = useVbenModal({ title: '导入表', class: 'w-1/2', + async onOpenChange(isOpen: boolean) { + if (!isOpen) { + // 关闭时清空选择状态 + formData.tableNames = []; + await gridApi.grid?.clearCheckboxRow(); + } + }, async onConfirm() { modalApi.lock(); // 1.1 获取表单值 diff --git a/apps/web-naive/src/views/infra/codegen/modules/import-table.vue b/apps/web-naive/src/views/infra/codegen/modules/import-table.vue index 1898bad7e..8000595b4 100644 --- a/apps/web-naive/src/views/infra/codegen/modules/import-table.vue +++ b/apps/web-naive/src/views/infra/codegen/modules/import-table.vue @@ -25,8 +25,17 @@ const formData = reactive({ tableNames: [], // 已选择的表列表 }); +/** 处理选择变化 */ +function handleCheckboxChange({ + records, +}: { + records: InfraCodegenApi.DatabaseTable[]; +}) { + formData.tableNames = records.map((item) => item.name); +} + /** 表格实例 */ -const [Grid] = useVbenVxeGrid({ +const [Grid, gridApi] = useVbenVxeGrid({ formOptions: { schema: useImportTableFormSchema(), submitOnChange: true, @@ -66,13 +75,8 @@ const [Grid] = useVbenVxeGrid({ }, } as VxeTableGridOptions, gridEvents: { - checkboxChange: ({ - records, - }: { - records: InfraCodegenApi.DatabaseTable[]; - }) => { - formData.tableNames = records.map((item) => item.name); - }, + checkboxChange: handleCheckboxChange, + checkboxAll: handleCheckboxChange, }, }); @@ -80,6 +84,13 @@ const [Grid] = useVbenVxeGrid({ const [Modal, modalApi] = useVbenModal({ title: '导入表', class: 'w-1/2', + async onOpenChange(isOpen: boolean) { + if (!isOpen) { + // 关闭时清空选择状态 + formData.tableNames = []; + await gridApi.grid?.clearCheckboxRow(); + } + }, async onConfirm() { modalApi.lock(); // 1.1 获取表单值 diff --git a/apps/web-tdesign/src/views/infra/codegen/modules/import-table.vue b/apps/web-tdesign/src/views/infra/codegen/modules/import-table.vue index 4e7bad180..95ca6174e 100644 --- a/apps/web-tdesign/src/views/infra/codegen/modules/import-table.vue +++ b/apps/web-tdesign/src/views/infra/codegen/modules/import-table.vue @@ -25,8 +25,17 @@ const formData = reactive({ tableNames: [], // 已选择的表列表 }); +/** 处理选择变化 */ +function handleCheckboxChange({ + records, +}: { + records: InfraCodegenApi.DatabaseTable[]; +}) { + formData.tableNames = records.map((item) => item.name); +} + /** 表格实例 */ -const [Grid] = useVbenVxeGrid({ +const [Grid, gridApi] = useVbenVxeGrid({ formOptions: { schema: useImportTableFormSchema(), submitOnChange: true, @@ -66,13 +75,8 @@ const [Grid] = useVbenVxeGrid({ }, } as VxeTableGridOptions, gridEvents: { - checkboxChange: ({ - records, - }: { - records: InfraCodegenApi.DatabaseTable[]; - }) => { - formData.tableNames = records.map((item) => item.name); - }, + checkboxChange: handleCheckboxChange, + checkboxAll: handleCheckboxChange, }, }); @@ -80,6 +84,13 @@ const [Grid] = useVbenVxeGrid({ const [Modal, modalApi] = useVbenModal({ title: '导入表', class: 'w-1/2', + async onOpenChange(isOpen: boolean) { + if (!isOpen) { + // 关闭时清空选择状态 + formData.tableNames = []; + await gridApi.grid?.clearCheckboxRow(); + } + }, async onConfirm() { modalApi.lock(); // 1.1 获取表单值