From 6321de7cac6c259e67f5d0d2d4a4682f091e18fb Mon Sep 17 00:00:00 2001 From: Solution_Lin <3218088317@qq.com> Date: Fri, 19 Apr 2024 00:57:27 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis/index.ts | 2 + src/apis/tool/generator.ts | 38 ++++ src/apis/tool/index.ts | 1 + src/apis/tool/type.ts | 49 ++++ src/views/tool/generator/GenConfigDrawer.vue | 224 +++++++++++++++++++ src/views/tool/generator/GenPreviewModal.vue | 58 +++++ src/views/tool/generator/index.vue | 127 +++++++++++ 7 files changed, 499 insertions(+) create mode 100644 src/apis/tool/generator.ts create mode 100644 src/apis/tool/index.ts create mode 100644 src/apis/tool/type.ts create mode 100644 src/views/tool/generator/GenConfigDrawer.vue create mode 100644 src/views/tool/generator/GenPreviewModal.vue create mode 100644 src/views/tool/generator/index.vue diff --git a/src/apis/index.ts b/src/apis/index.ts index bcb56ce..a230e55 100644 --- a/src/apis/index.ts +++ b/src/apis/index.ts @@ -3,9 +3,11 @@ export * from './auth' export * from './common' export * from './monitor' export * from './system' +export * from './tool' export * from './area/type' export * from './auth/type' export * from './common/type' export * from './monitor/type' export * from './system/type' +export * from './tool/type' diff --git a/src/apis/tool/generator.ts b/src/apis/tool/generator.ts new file mode 100644 index 0000000..4508d90 --- /dev/null +++ b/src/apis/tool/generator.ts @@ -0,0 +1,38 @@ +import http from '@/utils/http' +import type * as Tool from './type' + +const BASE_URL = '/generator' + +/** @desc 查询代码生成列表 */ +export function listGenerator(query: Tool.TablePageQuery) { + return http.get>(`${BASE_URL}/table`, query) +} + +/** @desc 查询字段配置列表 */ +export function listFieldConfig(tableName: string, requireSync: boolean) { + return http.get(`${BASE_URL}/field/${tableName}?requireSync=${requireSync}`) +} + +/** @desc 查询生成配置信息 */ +export function getGenConfig(tableName: string) { + return http.get(`${BASE_URL}/config/${tableName}`) +} + +/** @desc 保存配置信息 */ +export function saveGenConfig(tableName: string, req: Tool.GeneratorConfigResp) { + return http.post(`${BASE_URL}/config/${tableName}`, req) +} + +/** @desc 生成预览 */ +export function genPreview(tableName: string) { + return http.get(`${BASE_URL}/preview/${tableName}`) +} + +/** @desc 生成代码 */ +export function generate(tableNames: Array) { + return http.requestNative({ + url: `${BASE_URL}/${tableNames}`, + method: 'post', + responseType: 'blob' + }) +} diff --git a/src/apis/tool/index.ts b/src/apis/tool/index.ts new file mode 100644 index 0000000..3845dca --- /dev/null +++ b/src/apis/tool/index.ts @@ -0,0 +1 @@ +export * from './generator' diff --git a/src/apis/tool/type.ts b/src/apis/tool/type.ts new file mode 100644 index 0000000..1ba075f --- /dev/null +++ b/src/apis/tool/type.ts @@ -0,0 +1,49 @@ +/** 工具代码生成类型 */ +export interface TableResp { + tableName: string + comment?: string + engine: string + charset: string + createTime?: string + isConfiged: boolean + disabled: boolean +} +export interface TableQuery { + tableName?: string +} +export interface TablePageQuery extends PageQuery, TableQuery {} +export interface FieldConfigResp { + tableName: string + columnName: string + columnType: string + fieldName: string + fieldType: string + fieldSort: number + comment: string + isRequired: boolean + showInList: boolean + showInForm: boolean + showInQuery: boolean + formType: string + queryType: string + createTime?: string +} +export interface GenConfigResp { + tableName: string + moduleName: string + packageName: string + businessName: string + author: string + tablePrefix: string + isOverride: boolean + createTime?: string + updateTime?: string +} +export interface GeneratorConfigResp { + genConfig: GenConfigResp + fieldConfigs: FieldConfigResp[] +} +export interface GeneratePreviewResp { + fileName: string + content: string +} diff --git a/src/views/tool/generator/GenConfigDrawer.vue b/src/views/tool/generator/GenConfigDrawer.vue new file mode 100644 index 0000000..ff901b6 --- /dev/null +++ b/src/views/tool/generator/GenConfigDrawer.vue @@ -0,0 +1,224 @@ + + + + + diff --git a/src/views/tool/generator/GenPreviewModal.vue b/src/views/tool/generator/GenPreviewModal.vue new file mode 100644 index 0000000..3b4749c --- /dev/null +++ b/src/views/tool/generator/GenPreviewModal.vue @@ -0,0 +1,58 @@ + + + diff --git a/src/views/tool/generator/index.vue b/src/views/tool/generator/index.vue new file mode 100644 index 0000000..2bc7209 --- /dev/null +++ b/src/views/tool/generator/index.vue @@ -0,0 +1,127 @@ + + + + +