From 37026f326990bd7f1eb68cb20e2eea224ffdd5df Mon Sep 17 00:00:00 2001 From: "meilin.huang" <954537473@qq.com> Date: Thu, 2 Nov 2023 12:46:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=95=B0=E6=8D=AE=E5=BA=93=E8=A1=A8?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=98=BE=E7=A4=BA=E8=A1=A8size&=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E5=B0=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mayfly_go_web/src/common/utils/format.ts | 23 ++--- .../src/components/monaco/MonacoEditor.vue | 1 - .../src/views/ops/component/TagTree.vue | 2 + mayfly_go_web/src/views/ops/db/DbList.vue | 2 +- mayfly_go_web/src/views/ops/db/SqlExec.vue | 89 +++++++++++-------- mayfly_go_web/src/views/ops/db/api.ts | 3 +- .../src/views/ops/db/component/tab/Query.vue | 2 +- .../views/ops/db/component/tab/TableData.vue | 10 +-- mayfly_go_web/src/views/ops/db/db.ts | 2 +- .../src/views/ops/machine/MachineList.vue | 2 +- .../src/views/ops/redis/KeyDetail.vue | 4 +- .../src/views/ops/redis/KeyHeader.vue | 7 +- .../src/views/ops/redis/KeyValueList.vue | 16 ++-- mayfly_go_web/src/views/ops/redis/api.ts | 1 + server/go.mod | 2 +- server/internal/db/api/db.go | 60 ++++++------- server/internal/db/dbm/meta.go | 6 +- server/internal/db/dbm/metasql/mysql_meta.sql | 15 +--- server/internal/db/dbm/metasql/pgsql_meta.sql | 45 ++++------ server/internal/db/dbm/mysql_meta.go | 28 ++---- server/internal/db/dbm/pgsql_meta.go | 28 ++---- server/internal/db/router/db.go | 8 +- server/internal/machine/api/machine_script.go | 3 +- server/internal/redis/api/key.go | 5 ++ server/internal/redis/router/redis.go | 2 + server/pkg/utils/stringx/template.go | 10 +-- 26 files changed, 163 insertions(+), 213 deletions(-) diff --git a/mayfly_go_web/src/common/utils/format.ts b/mayfly_go_web/src/common/utils/format.ts index 2cdbab3d..52e9d542 100644 --- a/mayfly_go_web/src/common/utils/format.ts +++ b/mayfly_go_web/src/common/utils/format.ts @@ -3,21 +3,16 @@ * @param size byte size * @returns */ -export function formatByteSize(size: any) { - const value = Number(size); - if (size && !isNaN(value)) { - const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB', 'BB']; - let index = 0; - let k = value; - if (value >= 1024) { - while (k > 1024) { - k = k / 1024; - index++; - } - } - return `${k.toFixed(2)}${units[index]}`; +export function formatByteSize(size: number, fixed = 2) { + if (size === 0) { + return '0B'; } - return '-'; + + const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; + const base = 1024; + const exponent = Math.floor(Math.log(size) / Math.log(base)); + + return parseFloat((size / Math.pow(base, exponent)).toFixed(fixed)) + units[exponent]; } /** diff --git a/mayfly_go_web/src/components/monaco/MonacoEditor.vue b/mayfly_go_web/src/components/monaco/MonacoEditor.vue index 4292612d..7cdf8398 100644 --- a/mayfly_go_web/src/components/monaco/MonacoEditor.vue +++ b/mayfly_go_web/src/components/monaco/MonacoEditor.vue @@ -169,7 +169,6 @@ self.MonacoEnvironment = { }; const state = reactive({ - editorHeight: '500px', languageMode: 'shell', }); diff --git a/mayfly_go_web/src/views/ops/component/TagTree.vue b/mayfly_go_web/src/views/ops/component/TagTree.vue index c7e77e81..e489a8d9 100644 --- a/mayfly_go_web/src/views/ops/component/TagTree.vue +++ b/mayfly_go_web/src/views/ops/component/TagTree.vue @@ -30,6 +30,8 @@ {{ data.label }} + + diff --git a/mayfly_go_web/src/views/ops/db/DbList.vue b/mayfly_go_web/src/views/ops/db/DbList.vue index aaac24e5..28c92316 100644 --- a/mayfly_go_web/src/views/ops/db/DbList.vue +++ b/mayfly_go_web/src/views/ops/db/DbList.vue @@ -201,7 +201,7 @@ const columns = ref([ TableColumn.new('tagPath', '标签路径').isSlot().setAddWidth(20), TableColumn.new('instanceName', '实例名'), TableColumn.new('type', '类型'), - TableColumn.new('host', 'ip:port').isSlot().setAddWidth(20), + TableColumn.new('host', 'ip:port').isSlot().setAddWidth(40), TableColumn.new('username', 'username'), TableColumn.new('name', '名称'), TableColumn.new('database', '数据库').isSlot().setMinWidth(70), diff --git a/mayfly_go_web/src/views/ops/db/SqlExec.vue b/mayfly_go_web/src/views/ops/db/SqlExec.vue index 84fb29db..e41f870b 100644 --- a/mayfly_go_web/src/views/ops/db/SqlExec.vue +++ b/mayfly_go_web/src/views/ops/db/SqlExec.vue @@ -1,5 +1,5 @@ + + + @@ -110,7 +117,7 @@ diff --git a/mayfly_go_web/src/views/ops/db/api.ts b/mayfly_go_web/src/views/ops/db/api.ts index 2dff2432..aa62e3b9 100644 --- a/mayfly_go_web/src/views/ops/db/api.ts +++ b/mayfly_go_web/src/views/ops/db/api.ts @@ -10,7 +10,6 @@ export const dbApi = { tableInfos: Api.newGet('/dbs/{id}/t-infos'), tableIndex: Api.newGet('/dbs/{id}/t-index'), tableDdl: Api.newGet('/dbs/{id}/t-create-ddl'), - tableMetadata: Api.newGet('/dbs/{id}/t-metadata'), columnMetadata: Api.newGet('/dbs/{id}/c-metadata'), // 获取表即列提示 hintTables: Api.newGet('/dbs/{id}/hint-tables'), @@ -27,7 +26,7 @@ export const dbApi = { // 获取权限列表 instances: Api.newGet('/instances'), - getInstance: Api.newGet("/instances/{instanceId}"), + getInstance: Api.newGet('/instances/{instanceId}'), getAllDatabase: Api.newGet('/instances/{instanceId}/databases'), saveInstance: Api.newPost('/instances'), getInstancePwd: Api.newGet('/instances/{id}/pwd'), diff --git a/mayfly_go_web/src/views/ops/db/component/tab/Query.vue b/mayfly_go_web/src/views/ops/db/component/tab/Query.vue index 3f1c23b6..e3c0db22 100644 --- a/mayfly_go_web/src/views/ops/db/component/tab/Query.vue +++ b/mayfly_go_web/src/views/ops/db/component/tab/Query.vue @@ -44,7 +44,7 @@ - +
diff --git a/mayfly_go_web/src/views/ops/db/component/tab/TableData.vue b/mayfly_go_web/src/views/ops/db/component/tab/TableData.vue index e52f6971..967af4d0 100644 --- a/mayfly_go_web/src/views/ops/db/component/tab/TableData.vue +++ b/mayfly_go_web/src/views/ops/db/component/tab/TableData.vue @@ -33,26 +33,26 @@ - + - + gi - + 导出 - + 提交 - + 取消 diff --git a/mayfly_go_web/src/views/ops/db/db.ts b/mayfly_go_web/src/views/ops/db/db.ts index b8ab603f..be672436 100644 --- a/mayfly_go_web/src/views/ops/db/db.ts +++ b/mayfly_go_web/src/views/ops/db/db.ts @@ -88,7 +88,7 @@ export class DbInst { db.columnsMap?.clear(); db.tableHints = null; console.log(`load tables -> dbName: ${dbName}`); - tables = await dbApi.tableMetadata.request({ id: this.id, db: dbName }); + tables = await dbApi.tableInfos.request({ id: this.id, db: dbName }); db.tables = tables; return tables; } diff --git a/mayfly_go_web/src/views/ops/machine/MachineList.vue b/mayfly_go_web/src/views/ops/machine/MachineList.vue index 1bf94caf..085c4475 100644 --- a/mayfly_go_web/src/views/ops/machine/MachineList.vue +++ b/mayfly_go_web/src/views/ops/machine/MachineList.vue @@ -195,7 +195,7 @@ const queryConfig = [TableQuery.slot('tagPath', '标签', 'tagPathSelect'), Tabl const columns = ref([ TableColumn.new('tagPath', '标签路径').isSlot().setAddWidth(20), TableColumn.new('name', '名称'), - TableColumn.new('ipPort', 'ip:port').isSlot().setAddWidth(45), + TableColumn.new('ipPort', 'ip:port').isSlot().setAddWidth(50), TableColumn.new('username', '用户名'), TableColumn.new('status', '状态').isSlot().setMinWidth(85), TableColumn.new('remark', '备注'), diff --git a/mayfly_go_web/src/views/ops/redis/KeyDetail.vue b/mayfly_go_web/src/views/ops/redis/KeyDetail.vue index d1af0ac8..580c1db7 100644 --- a/mayfly_go_web/src/views/ops/redis/KeyDetail.vue +++ b/mayfly_go_web/src/views/ops/redis/KeyDetail.vue @@ -20,7 +20,7 @@