From f43b0467ba8f7cf979f72871a075fe48bd406e14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=AE=97=E6=B4=8B?= Date: Tue, 28 Mar 2023 12:21:24 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E7=94=9F=E6=88=90=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mayfly_go_web/src/views/ops/db/CreateTable.vue | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mayfly_go_web/src/views/ops/db/CreateTable.vue b/mayfly_go_web/src/views/ops/db/CreateTable.vue index c0566052..c2efc54d 100644 --- a/mayfly_go_web/src/views/ops/db/CreateTable.vue +++ b/mayfly_go_web/src/views/ops/db/CreateTable.vue @@ -311,10 +311,10 @@ const addDefaultRows = () => { { name: 'id', type: 'bigint', length: '20', value: '', notNull: true, pri: true, auto_increment: true, remark: '主键ID' }, { name: 'creator_id', type: 'bigint', length: '20', value: '', notNull: true, pri: false, auto_increment: false, remark: '创建人id' }, { name: 'creator', type: 'varchar', length: '100', value: '', notNull: true, pri: false, auto_increment: false, remark: '创建人姓名' }, - { name: 'creat_time', type: 'datetime', length: '', value: '', notNull: true, pri: false, auto_increment: false, remark: '创建时间' }, - { name: 'updater_id', type: 'bigint', length: '20', value: '', notNull: true, pri: false, auto_increment: false, remark: '修改人id' }, - { name: 'updater', type: 'varchar', length: '100', value: '', notNull: true, pri: false, auto_increment: false, remark: '修改人姓名' }, - { name: 'update_time', type: 'datetime', length: '', value: '', notNull: true, pri: false, auto_increment: false, remark: '修改时间' }, + { name: 'create_time', type: 'datetime', length: '', value: 'CURRENT_TIMESTAMP', notNull: true, pri: false, auto_increment: false, remark: '创建时间' }, + { name: 'updator_id', type: 'bigint', length: '20', value: '', notNull: true, pri: false, auto_increment: false, remark: '修改人id' }, + { name: 'updator', type: 'varchar', length: '100', value: '', notNull: true, pri: false, auto_increment: false, remark: '修改人姓名' }, + { name: 'update_time', type: 'datetime', length: '', value: 'CURRENT_TIMESTAMP', notNull: true, pri: false, auto_increment: false, remark: '修改时间' }, ); }; @@ -406,7 +406,8 @@ const genSql = () => { let val = cl.value ? (cl.value === 'CURRENT_TIMESTAMP' ? cl.value : '\'' + cl.value + '\'') : ''; let defVal = `${val ? ('DEFAULT ' + val) : ''}`; let length = cl.length ? `(${cl.length})` : ''; - return ` ${cl.name} ${cl.type}${length} ${cl.notNull ? 'NOT NULL' : 'NULL'} ${cl.auto_increment ? 'AUTO_INCREMENT' : ''} ${defVal} comment '${cl.remark || ''}' ` + let onUpdate = 'update_time' === cl.name ? ' ON UPDATE CURRENT_TIMESTAMP ' : '' + return ` ${cl.name} ${cl.type}${length} ${cl.notNull ? 'NOT NULL' : 'NULL'} ${cl.auto_increment ? 'AUTO_INCREMENT' : ''} ${defVal} ${onUpdate} comment '${cl.remark || ''}' ` } let data = state.tableData; @@ -416,7 +417,7 @@ const genSql = () => { let primary_key = ''; let fields: string[] = []; data.fields.res.forEach((item) => { - fields.push(genColumnBasicSql(item)); + item.name && fields.push(genColumnBasicSql(item)); if (item.pri) { primary_key += `${item.name},`; } From 2fefa43aea11fa4e96ae62920cfc8ea164112bb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=AE=97=E6=B4=8B?= Date: Tue, 28 Mar 2023 15:22:05 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E8=A1=A8=E6=A0=BC=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=88=B7=E6=96=B0=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mayfly_go_web/src/views/ops/component/TagTree.vue | 5 +++++ mayfly_go_web/src/views/ops/db/SqlExec.vue | 14 +++++++++++++- mayfly_go_web/src/views/ops/db/db.ts | 5 +++-- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/mayfly_go_web/src/views/ops/component/TagTree.vue b/mayfly_go_web/src/views/ops/component/TagTree.vue index 4094a2bb..42e9defa 100644 --- a/mayfly_go_web/src/views/ops/component/TagTree.vue +++ b/mayfly_go_web/src/views/ops/component/TagTree.vue @@ -19,6 +19,11 @@ {{ data.label }} + + + + + diff --git a/mayfly_go_web/src/views/ops/db/SqlExec.vue b/mayfly_go_web/src/views/ops/db/SqlExec.vue index 14774095..8d54228d 100644 --- a/mayfly_go_web/src/views/ops/db/SqlExec.vue +++ b/mayfly_go_web/src/views/ops/db/SqlExec.vue @@ -59,6 +59,11 @@ + @@ -125,6 +130,7 @@ const state = reactive({ nowDbInst: {} as DbInst, db: '', // 当前操作的数据库 activeName: '', + reloadStatus: false, tabs, dataTabsTableHeight: '600', editorHeight: '600', @@ -257,7 +263,8 @@ const nodeClick = async (data: any) => { const getTables = async (params: any) => { const { id, db } = params; - let tables = await DbInst.getInst(id).loadTables(db); + let tables = await DbInst.getInst(id).loadTables(db, state.reloadStatus); + state.reloadStatus=false return tables.map((x: any) => { return new TagTreeNode(`${id}.${db}.${x.tableName}`, x.tableName, NodeType.Table).withIsLeaf(true).withParams({ id, @@ -406,6 +413,11 @@ const getSqlMenuNodeKey = (dbId: number, db: string) => { return `${dbId}.${db}.sql-menu` } +const reloadTables = (nodeKey:string) => { + state.reloadStatus=true + tagTreeRef.value.reloadNode(nodeKey); +} + const registerSqlCompletionItemProvider = () => { // 参考 https://microsoft.github.io/monaco-editor/playground.html#extending-language-services-completion-provider-example self.completionItemProvider = self.completionItemProvider || monaco.languages.registerCompletionItemProvider('sql', { diff --git a/mayfly_go_web/src/views/ops/db/db.ts b/mayfly_go_web/src/views/ops/db/db.ts index 8be66b81..8aed7549 100644 --- a/mayfly_go_web/src/views/ops/db/db.ts +++ b/mayfly_go_web/src/views/ops/db/db.ts @@ -58,13 +58,14 @@ export class DbInst { /** * 加载数据库表信息 * @param dbName 数据库名 + * @param reload 是否重新请求接口获取数据 * @returns 表信息 */ - async loadTables(dbName: string) { + async loadTables(dbName: string, reload?: boolean) { const db = this.getDb(dbName); // 优先从 table map中获取 let tables = db.tables; - if (tables) { + if (!reload && tables) { return tables; } console.log(`load tables -> dbName: ${dbName}`);