diff --git a/maku-generator-core/src/main/java/net/maku/generator/controller/DataSourceController.java b/maku-generator-core/src/main/java/net/maku/generator/controller/DataSourceController.java index 095cd99372817d993cbd7c8bd6d63fc066df57ce..ba77a984d36afbad64a9d24808aa39f195bd9b74 100644 --- a/maku-generator-core/src/main/java/net/maku/generator/controller/DataSourceController.java +++ b/maku-generator-core/src/main/java/net/maku/generator/controller/DataSourceController.java @@ -103,4 +103,19 @@ public class DataSourceController { return Result.error("数据源配置错误,请检查数据源配置!"); } } + + @GetMapping("table/list/{id}/{tableName}") + public Result tableList(@PathVariable("id")Long id, @PathVariable("tableName")String tableName) { + try { + // 获取数据源 + GenDataSource datasource = datasourceService.get(id); + // 根据数据源,获取全部数据表 + TableEntity tableEntity = GenUtils.getTable(datasource,tableName); + + return Result.ok(tableEntity); + } catch (Exception e) { + log.error(e.getMessage(), e); + return Result.error("数据源配置错误,请检查数据源配置!"); + } + } } \ No newline at end of file diff --git a/maku-generator-ui/src/api/datasource.ts b/maku-generator-ui/src/api/datasource.ts index b9186050118628c5e113c9fad30a44c14fc15a6c..f67206ce9ebcd47e7f53bcf0fc889d95eb1a9c09 100644 --- a/maku-generator-ui/src/api/datasource.ts +++ b/maku-generator-ui/src/api/datasource.ts @@ -23,3 +23,7 @@ export const useDataSourceSubmitApi = (dataForm: any) => { export const useDataSourceTableListApi = (id: string) => { return service.get('/gen/datasource/table/list/' + id) } + +export const useDataSourceTableApi = (id: string, tableName: string) => { + return service.get(`/gen/datasource/table/list/${id}/${tableName}`) +} diff --git a/maku-generator-ui/src/views/generator/import.vue b/maku-generator-ui/src/views/generator/import.vue index a27ed8118344b3db2280bc51ba2b446b398e308a..111e0b0fca585ee07effed112e489575714e8b7a 100644 --- a/maku-generator-ui/src/views/generator/import.vue +++ b/maku-generator-ui/src/views/generator/import.vue @@ -2,11 +2,16 @@ - + + + + + 查询 + @@ -26,6 +31,9 @@ import { ElMessage } from 'element-plus/es' import { useDataSourceListApi } from '@/api/datasource' import { useTableImportSubmitApi } from '@/api/table' import { useDataSourceTableListApi } from '@/api/datasource' +import { useDataSourceTableApi } from '@/api/datasource' +import { IHooksOptions } from '@/hooks/interface' +import { useCrud } from '@/hooks' const emit = defineEmits(['refreshDataList']) @@ -43,6 +51,14 @@ const dataForm = reactive({ } }) +const state: IHooksOptions = reactive({ + dataListUrl: '/gen/table/page', + deleteUrl: '/gen/table', + queryForm: { + tableName: '' + } +}) + // 多选 const selectionChangeHandle = (selections: any[]) => { dataForm.tableNameListSelections = selections.map((item: any) => item['tableName']) @@ -75,6 +91,28 @@ const getTableList = () => { }) } +// 根据表名查询(支持空表名时查询全表) +const getDataList = () => { + // 如果未选择数据源 + if (!dataForm.datasourceId) { + ElMessage.warning('请先选择数据源') + return + } + + // 根据表名是否为空,决定调用哪个接口 + if (state.queryForm.tableName) { + // 有表名时调用带表名的接口 + useDataSourceTableApi(dataForm.datasourceId, state.queryForm.tableName).then(res => { + dataForm.tableList = res.data + }) + } else { + // 表名为空时调用全量接口 + useDataSourceTableListApi(dataForm.datasourceId).then(res => { + dataForm.tableList = res.data + }) + } +} + // 表单提交 const submitHandle = () => { const tableNameList = dataForm.tableNameListSelections ? dataForm.tableNameListSelections : []