diff --git a/index.html b/index.html index 5a2f9ff..3ed9156 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ - + %VITE_APP_TITLE% diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..17f9dd1 Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/favicon.png b/public/favicon.png deleted file mode 100644 index a9395aa..0000000 Binary files a/public/favicon.png and /dev/null differ diff --git a/src/api/server/request.ts b/src/api/server/request.ts index a04f37b..2477525 100644 --- a/src/api/server/request.ts +++ b/src/api/server/request.ts @@ -34,12 +34,12 @@ service.interceptors.response.use( if (response.config.responseType === 'blob' || response.config.responseType === 'arraybuffer') { return response; } - // const { code, data, msg } = response.data; - // if (code === ResultEnum.SUCCESS) { - // return data; - // } if (response.status === 200) { + const { code, message } = response.data; + if (code !== 200) { + (window as any).$message.error(message); + } return response.data; } diff --git a/src/api/sqlParser.ts b/src/api/sqlParser.ts new file mode 100644 index 0000000..50d3b5c --- /dev/null +++ b/src/api/sqlParser.ts @@ -0,0 +1,19 @@ +import request from '@/api/server/request'; +import type { BaseResult } from '@/types/request'; + +/* 当前数据库信息 */ +export const fetchTableInfo = (params: any) => { + return request>({ + url: '/sqlParser/tableInfo', + method: 'POST', + params, + }); +}; +/* 当前数据库信息 */ +export const fetchColumnMetaData = (params: any) => { + return request>({ + url: '/sqlParser/columnMetaData', + method: 'POST', + params, + }); +}; diff --git a/src/api/table.ts b/src/api/table.ts index 64e2a6e..3ed103b 100644 --- a/src/api/table.ts +++ b/src/api/table.ts @@ -3,17 +3,17 @@ import type { BaseResult } from '@/types/request'; /* 当前数据库信息 */ export const getDatabaseInfoMetaData = () => { - return request({ url: '/table/databaseInfoMetaData', method: 'GET' }); + return request>({ url: '/table/databaseInfoMetaData', method: 'GET' }); }; /* 当前配置的数据库 */ export const getCurrentDatabaseName = () => { - return request({ url: '/table/currentDatabaseName', method: 'GET' }); + return request>({ url: '/table/currentDatabaseName', method: 'GET' }); }; /* 所有的数据库 */ export const getDatabaseList = () => { - return request({ url: '/table/databaseList', method: 'GET' }); + return request>({ url: '/table/databaseList', method: 'GET' }); }; /* 数据库所有的表 */ diff --git a/src/assets/images/bg/bg.png b/src/assets/images/bg/bg.png deleted file mode 100644 index 39dffc5..0000000 Binary files a/src/assets/images/bg/bg.png and /dev/null differ diff --git a/src/assets/vue.svg b/src/assets/vue.svg deleted file mode 100644 index 770e9d3..0000000 --- a/src/assets/vue.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/store/modules/table.ts b/src/store/modules/table.ts index a55f3da..0c7dd50 100644 --- a/src/store/modules/table.ts +++ b/src/store/modules/table.ts @@ -35,7 +35,6 @@ export const useTableStore = defineStore('tableStore', { const result = await getDatabaseList(); if (result.code !== 200) { - (window as any).$message.error(result.message); this.tableListLoading = false; return; } @@ -59,10 +58,6 @@ export const useTableStore = defineStore('tableStore', { const data = { dbName: this.currentDatabaseName }; const result = await getDatabaseTableList(data); - if (result.code !== 200) { - (window as any).$message.error(result.message); - } - this.tableList = result.data; }, @@ -70,7 +65,6 @@ export const useTableStore = defineStore('tableStore', { async getTableMetaData(tableName: string) { const result = await getTableMetaData({ tableName }); if (result.code !== 200) { - (window as any).$message.error(result.message); return {}; } @@ -81,7 +75,6 @@ export const useTableStore = defineStore('tableStore', { async getTableColumnInfo(tableName: string) { const result = await getTableColumnInfo({ tableName }); if (result.code !== 200) { - (window as any).$message.error(result.message); return {}; } diff --git a/src/store/modules/vms.ts b/src/store/modules/vms.ts index 6afd4d6..219c58b 100644 --- a/src/store/modules/vms.ts +++ b/src/store/modules/vms.ts @@ -42,9 +42,6 @@ export const useVmsStore = defineStore('vmsStore', { async generator(data: any) { const result = await generator(data); // 需要确保已经在 setup 中执行了 window.$message = message - if (result.code !== 200) { - (window as any).$message.error(result.message); - } this.generators = result.data.map((i: any) => ({ ...i, path: i.path.replace('.vm', '') })); (window as any).$message.success(`生成成功,共 ${this.generators.length} 数据`); @@ -55,7 +52,6 @@ export const useVmsStore = defineStore('vmsStore', { const result = await getVmsResourcePathList(); // 需要确保已经在 setup 中执行了 window.$message = message if (result.code !== 200) { - (window as any).$message.error(result.message); return {}; } diff --git a/src/views/generator-code/column-field/index.vue b/src/views/generator-code/column-field/index.vue index 36fd2ba..e846cc3 100644 --- a/src/views/generator-code/column-field/index.vue +++ b/src/views/generator-code/column-field/index.vue @@ -12,10 +12,16 @@ const tableStore = useTableStore(); // 数据库中当前表的列信息 const datalist = ref([]); +const loading = ref(false); + /* 数据库列信息 */ const getColumnInfo = async () => { + loading.value = true; + const tableName: any = route.query.tableName; datalist.value = await tableStore.getTableColumnInfo(tableName); + + loading.value = false; }; onMounted(() => { @@ -25,5 +31,5 @@ onMounted(() => { diff --git a/src/views/generator-code/connect-info/index.vue b/src/views/generator-code/connect-info/index.vue new file mode 100644 index 0000000..d133d13 --- /dev/null +++ b/src/views/generator-code/connect-info/index.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/src/views/generator-code/generator/components/generator-form.vue b/src/views/generator-code/generator/components/generator-form.vue index c65858d..f018a9f 100644 --- a/src/views/generator-code/generator/components/generator-form.vue +++ b/src/views/generator-code/generator/components/generator-form.vue @@ -16,6 +16,7 @@ import { onMounted, ref } from 'vue'; import { computed } from 'vue-demi'; import { useRoute } from 'vue-router'; +import { fetchTableInfo } from '@/api/sqlParser'; import { downloadByZip } from '@/api/vms'; import SelectButtonGroup from '@/components/select-button-group.vue'; import { useVmsStore } from '@/store/modules/vms'; @@ -40,6 +41,9 @@ const hasDownloadZip = computed( () => !(formOption.value.generatorWeb.length > 0 || formOption.value.generatorServer.length > 0) ); +// 解析 Sql 语句 +const sql = ref(); + /* 提交表单 */ const onSubmit = (e: MouseEvent) => { e.preventDefault(); @@ -83,6 +87,17 @@ const downloadZipFile = async () => { downloadBlob(result); }; +/* 解析 SQL 语句信息 */ +const sqlParser = async () => { + const params = { sql: sql.value }; + const { data } = await fetchTableInfo(params); + + // 设置要生成的sql表中的内容 + formValue.value.comment = data.comment; + formValue.value.tableName = data.tableName; + formValueInit(data.tableName); +}; + onMounted(() => { // 初始化表名称 const tableName: any = route.query.tableName; @@ -94,6 +109,26 @@ onMounted(() => {