From 4814793546ff4db25f6ae7644b51d8eff9b7bf9e Mon Sep 17 00:00:00 2001 From: "meilin.huang" <954537473@qq.com> Date: Fri, 31 May 2024 12:12:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E8=A1=A8=E6=95=B0=E6=8D=AE=E6=A8=AA=E5=90=91=E6=BB=9A?= =?UTF-8?q?=E5=8A=A8=E5=90=8E=E5=88=87=E6=8D=A2tab=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E8=A1=A8=E5=A4=B4=E9=94=99=E4=BD=8D&=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=B1=85=E4=B8=AD=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mayfly_go_web/package.json | 6 ++--- mayfly_go_web/src/common/config.ts | 2 +- mayfly_go_web/src/views/ops/db/SqlExec.vue | 22 ++++++++++++++---- mayfly_go_web/src/views/ops/db/api.ts | 5 +++- .../db/component/sqleditor/DbSqlEditor.vue | 15 +++++++++++- .../ops/db/component/table/ColumnFormItem.vue | 8 +++++++ .../ops/db/component/table/DbTableData.vue | 21 +++++++++++++---- .../ops/db/component/table/DbTableDataOp.vue | 23 ++++++++++++++++++- mayfly_go_web/src/views/ops/db/db.ts | 11 ++++++--- .../src/views/ops/db/dialect/index.ts | 4 ++-- .../src/views/ops/machine/MachineOp.vue | 19 ++++++++++----- server/go.mod | 2 +- server/internal/db/application/db.go | 2 +- .../tag/application/resouce_auth_cert.go | 8 ++++++- server/pkg/config/app.go | 2 +- 15 files changed, 118 insertions(+), 32 deletions(-) diff --git a/mayfly_go_web/package.json b/mayfly_go_web/package.json index 9315d4db..6e12e1be 100644 --- a/mayfly_go_web/package.json +++ b/mayfly_go_web/package.json @@ -10,7 +10,7 @@ }, "dependencies": { "@element-plus/icons-vue": "^2.3.1", - "@vueuse/core": "^10.9.0", + "@vueuse/core": "^10.10.0", "asciinema-player": "^3.7.1", "axios": "^1.6.2", "clipboard": "^2.0.11", @@ -22,8 +22,8 @@ "jsencrypt": "^3.3.2", "lodash": "^4.17.21", "mitt": "^3.0.1", - "monaco-editor": "^0.48.0", - "monaco-sql-languages": "^0.11.0", + "monaco-editor": "^0.49.0", + "monaco-sql-languages": "^0.12.0", "monaco-themes": "^0.4.4", "nprogress": "^0.2.0", "pinia": "^2.1.7", diff --git a/mayfly_go_web/src/common/config.ts b/mayfly_go_web/src/common/config.ts index cbc65ec5..be6d93a1 100644 --- a/mayfly_go_web/src/common/config.ts +++ b/mayfly_go_web/src/common/config.ts @@ -15,7 +15,7 @@ const config = { baseWsUrl: `${(window as any).globalConfig.BaseWsUrl || `${location.protocol == 'https:' ? 'wss:' : 'ws:'}//${getBaseApiUrl()}`}/api`, // 系统版本 - version: 'v1.8.6', + version: 'v1.8.7', }; export default config; diff --git a/mayfly_go_web/src/views/ops/db/SqlExec.vue b/mayfly_go_web/src/views/ops/db/SqlExec.vue index cf3d4f5d..59b76794 100644 --- a/mayfly_go_web/src/views/ops/db/SqlExec.vue +++ b/mayfly_go_web/src/views/ops/db/SqlExec.vue @@ -177,6 +177,7 @@ :db-name="dt.db" :table-name="dt.params.table" :table-height="state.dataTabsTableHeight" + :ref="(el: any) => (dt.componentRef = el)" > @@ -579,7 +581,7 @@ const loadTableData = async (db: any, dbName: string, tableName: string) => { } changeDb(db, dbName); - const key = `${db.id}:\`${dbName}\`.${tableName}`; + const key = `tableData:${db.id}.${dbName}.${tableName}`; let tab = state.tabs.get(key); state.activeName = key; // 如果存在该表tab,则直接返回 @@ -614,7 +616,7 @@ const addQueryTab = async (db: any, dbName: string, sqlName: string = '') => { // 存在sql模板名,则该模板名只允许一个tab if (sqlName) { label = `查询-${sqlName}`; - key = `查询:${dbId}:${dbName}.${sqlName}`; + key = `query:${dbId}.${dbName}.${sqlName}`; } else { let count = 1; state.tabs.forEach((v) => { @@ -623,7 +625,7 @@ const addQueryTab = async (db: any, dbName: string, sqlName: string = '') => { } }); label = `新查询-${count}`; - key = `新查询${count}:${dbId}:${dbName}`; + key = `query:${count}.${dbId}.${dbName}`; } state.activeName = key; let tab = state.tabs.get(key); @@ -660,7 +662,7 @@ const addTablesOpTab = async (db: any) => { changeDb(db, dbName); const dbId = db.id; - let key = `表操作:${dbId}:${dbName}.tablesOp`; + let key = `tablesOp:${dbId}.${dbName}`; state.activeName = key; let tab = state.tabs.get(key); @@ -691,15 +693,22 @@ const onRemoveTab = (targetName: string) => { if (tabName !== targetName) { continue; } + + state.tabs.delete(targetName); + if (activeName != targetName) { + break; + } + + // 如果删除的tab是当前激活的tab,则切换到前一个或后一个tab const nextTab = tabNames[i + 1] || tabNames[i - 1]; if (nextTab) { activeName = nextTab; } else { activeName = ''; } - state.tabs.delete(targetName); state.activeName = activeName; onTabChange(); + break; } }; @@ -719,6 +728,9 @@ const onTabChange = () => { registerDbCompletionItemProvider(nowTab.dbId, nowTab.db, nowTab.params.dbs, nowDbInst.value.type); } + // 激活当前tab(需要调用DbTableData组件的active,否则表头与数据会出现错位,暂不知为啥,先这样处理) + nowTab?.componentRef?.active(); + if (dbConfig.value.locationTreeNode) { locationNowTreeNode(nowTab); } diff --git a/mayfly_go_web/src/views/ops/db/api.ts b/mayfly_go_web/src/views/ops/db/api.ts index 4cc485ff..0b98c4a1 100644 --- a/mayfly_go_web/src/views/ops/db/api.ts +++ b/mayfly_go_web/src/views/ops/db/api.ts @@ -23,7 +23,10 @@ export const dbApi = { if (process.env.NODE_ENV === 'development') { console.log(param.sql); } - param.sql = Base64.encode(param.sql); + // 非base64编码sql,则进行base64编码(refreshToken时,会重复调用该方法,故简单判断下) + if (!Base64.isValid(param.sql)) { + param.sql = Base64.encode(param.sql); + } } return param; }), diff --git a/mayfly_go_web/src/views/ops/db/component/sqleditor/DbSqlEditor.vue b/mayfly_go_web/src/views/ops/db/component/sqleditor/DbSqlEditor.vue index 56c8ea67..54dff656 100644 --- a/mayfly_go_web/src/views/ops/db/component/sqleditor/DbSqlEditor.vue +++ b/mayfly_go_web/src/views/ops/db/component/sqleditor/DbSqlEditor.vue @@ -52,7 +52,7 @@
- +