From ffd645c6668baff484912535043621b80610eb01 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Tue, 8 Apr 2025 17:37:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/views/infra/codegen/data.ts | 15 +- .../src/views/infra/codegen/index.vue | 20 +- .../infra/codegen/modules/import-table.vue | 179 ++++++++++-------- 3 files changed, 121 insertions(+), 93 deletions(-) diff --git a/apps/web-antd/src/views/infra/codegen/data.ts b/apps/web-antd/src/views/infra/codegen/data.ts index 7161281f1..3dc1f76a6 100644 --- a/apps/web-antd/src/views/infra/codegen/data.ts +++ b/apps/web-antd/src/views/infra/codegen/data.ts @@ -3,7 +3,6 @@ import type { OnActionClickFn, VxeTableGridOptions } from '#/adapter/vxe-table'; import type { InfraCodegenApi } from '#/api/infra/codegen'; import type { InfraDataSourceConfigApi } from '#/api/infra/data-source-config'; -import { getDataSourceConfigList } from '#/api/infra/data-source-config'; import { getRangePickerDefaultProps } from '#/utils/date'; import { useAccess } from '@vben/access'; @@ -11,18 +10,22 @@ import { useAccess } from '@vben/access'; const { hasAccessByCodes } = useAccess(); /** 导入数据库表的表单 */ -export function useImportTableFormSchema(): VbenFormSchema[] { +export function useImportTableFormSchema( + dataSourceConfigList: InfraDataSourceConfigApi.InfraDataSourceConfig[], +): VbenFormSchema[] { return [ { fieldName: 'dataSourceConfigId', label: '数据源', - component: 'ApiSelect', + component: 'Select', componentProps: { - api: async () => await getDataSourceConfigList(), - labelField: 'name', - valueField: 'id', + options: dataSourceConfigList.map((item) => ({ + label: item.name, + value: item.id, + })), placeholder: '请选择数据源', }, + defaultValue: dataSourceConfigList[0]?.id, rules: 'required', }, { diff --git a/apps/web-antd/src/views/infra/codegen/index.vue b/apps/web-antd/src/views/infra/codegen/index.vue index 44d8d74aa..636267aff 100644 --- a/apps/web-antd/src/views/infra/codegen/index.vue +++ b/apps/web-antd/src/views/infra/codegen/index.vue @@ -4,7 +4,7 @@ import type { InfraCodegenApi } from '#/api/infra/codegen'; import type { InfraDataSourceConfigApi } from '#/api/infra/data-source-config'; import { DocAlert } from '#/components/doc-alert'; -// import ImportTable from './modules/import-table.vue'; +import ImportTable from './modules/import-table.vue'; import PreviewCode from './modules/preview-code.vue'; import { Page, useVbenModal } from '@vben/common-ui'; import { Plus } from '@vben/icons'; @@ -23,11 +23,10 @@ import { useRouter } from 'vue-router'; const router = useRouter(); const dataSourceConfigList = ref([]); -// const [ImportModal, importModalApi] = useVbenModal({ -// connectedComponent: ImportTable, -// destroyOnClose: true, -// }); -// +const [ImportModal, importModalApi] = useVbenModal({ + connectedComponent: ImportTable, + destroyOnClose: true, +}); const [PreviewModal, previewModalApi] = useVbenModal({ connectedComponent: PreviewCode, @@ -41,7 +40,7 @@ function onRefresh() { /** 导入表格 */ function onImport() { - // importModalApi.open(); + importModalApi.open(); } /** 预览代码 */ @@ -176,6 +175,9 @@ const [Grid, gridApi] = useVbenVxeGrid({ async function initDataSourceConfig() { try { dataSourceConfigList.value = await getDataSourceConfigList(); + gridApi.setState({ + gridOptions: { columns: useGridColumns(onActionClick, dataSourceConfigList.value) }, + }); } catch (error) { console.error('获取数据源配置失败', error); } @@ -191,13 +193,13 @@ initDataSourceConfig(); - + 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 a8075b17f..37e421708 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 @@ -1,118 +1,141 @@