From 790d644c34230018e43ee92e490f6ccc0e39c107 Mon Sep 17 00:00:00 2001 From: "meilin.huang" <954537473@qq.com> Date: Wed, 6 Dec 2023 13:17:50 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=BB=88=E7=AB=AF=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mayfly_go_web/package.json | 10 +- .../src/components/terminal/TerminalBody.vue | 5 +- .../src/views/ops/machine/MachineRec.vue | 14 +- .../src/views/ops/tag/TagTreeList.vue | 26 +++- mayfly_go_web/yarn.lock | 130 ++++-------------- server/internal/db/api/db.go | 2 +- .../internal/machine/mcm/terminal_session.go | 2 +- 7 files changed, 63 insertions(+), 126 deletions(-) diff --git a/mayfly_go_web/package.json b/mayfly_go_web/package.json index 3002d9b3..4f85471c 100644 --- a/mayfly_go_web/package.json +++ b/mayfly_go_web/package.json @@ -45,16 +45,16 @@ "@types/sortablejs": "^1.15.3", "@typescript-eslint/eslint-plugin": "^6.7.4", "@typescript-eslint/parser": "^6.7.4", - "@vitejs/plugin-vue": "^4.4.0", - "@vue/compiler-sfc": "^3.3.4", + "@vitejs/plugin-vue": "^4.5.1", + "@vue/compiler-sfc": "^3.3.10", "dotenv": "^16.3.1", "eslint": "^8.35.0", - "eslint-plugin-vue": "^9.17.0", - "prettier": "^3.0.3", + "eslint-plugin-vue": "^9.19.2", + "prettier": "^3.1.0", "sass": "^1.69.0", "typescript": "^5.3.2", "vite": "^5.0.5", - "vue-eslint-parser": "^9.3.1" + "vue-eslint-parser": "^9.3.2" }, "browserslist": [ "> 1%", diff --git a/mayfly_go_web/src/components/terminal/TerminalBody.vue b/mayfly_go_web/src/components/terminal/TerminalBody.vue index 1cbdfd2e..a660e543 100644 --- a/mayfly_go_web/src/components/terminal/TerminalBody.vue +++ b/mayfly_go_web/src/components/terminal/TerminalBody.vue @@ -144,8 +144,6 @@ const onConnected = () => { state.status = TerminalStatus.Connected; - // resize - sendResize(term.cols, term.rows); // 注册窗口大小监听器 window.addEventListener('resize', debounce(fitTerminal, 400)); @@ -180,7 +178,8 @@ const clear = () => { function initSocket() { if (props.socketUrl) { - socket = new WebSocket(props.socketUrl); + let socketUrl = `${props.socketUrl}&rows=${term.rows}&cols=${term.cols}`; + socket = new WebSocket(socketUrl); } // 监听socket连接 diff --git a/mayfly_go_web/src/views/ops/machine/MachineRec.vue b/mayfly_go_web/src/views/ops/machine/MachineRec.vue index 40c1cc64..2177e8f0 100644 --- a/mayfly_go_web/src/views/ops/machine/MachineRec.vue +++ b/mayfly_go_web/src/views/ops/machine/MachineRec.vue @@ -114,6 +114,10 @@ const playRec = async (rec: any) => { autoPlay: true, speed: 1.0, idleTimeLimit: 2, + // fit: false, + // terminalFontSize: 'small', + // cols: 100, + // rows: 33, }); }); } finally { @@ -141,15 +145,5 @@ const handleClose = () => { .el-overlay .el-overlay-dialog .el-dialog .el-dialog__body { padding: 0px !important; } - - #rc-player { - .ap-terminal { - font-size: 14px !important; - } - - .ap-player { - height: 550px !important; - } - } } diff --git a/mayfly_go_web/src/views/ops/tag/TagTreeList.vue b/mayfly_go_web/src/views/ops/tag/TagTreeList.vue index 5e72bfa8..a564de94 100644 --- a/mayfly_go_web/src/views/ops/tag/TagTreeList.vue +++ b/mayfly_go_web/src/views/ops/tag/TagTreeList.vue @@ -91,7 +91,9 @@ @@ -110,6 +112,7 @@ import { Contextmenu, ContextmenuItem } from '@/components/contextmenu/index'; import { TagResourceTypeEnum } from '../../../common/commonEnum'; import EnumValue from '@/common/Enum'; import { useRouter } from 'vue-router'; +import { hasPerm } from '@/components/auth/auth'; interface Tree { id: number; @@ -267,15 +270,32 @@ const showRelateResource = async (data: any) => { const exist = resourceMap.get(resourceType); if (exist) { exist.count = exist.count + 1; - } else { - resourceMap.set(resourceType, { resourceType, count: 1, tagPath: tagResource.tagPath }); + continue; } + + // 相关管理页面基础权限 + let showAuthCode = ''; + if (resourceType == TagResourceTypeEnum.Machine.value) { + showAuthCode = 'machine'; + } + if (resourceType == TagResourceTypeEnum.Db.value) { + showAuthCode = 'db'; + } + if (resourceType == TagResourceTypeEnum.Redis.value) { + showAuthCode = 'redis:manage'; + } + if (resourceType == TagResourceTypeEnum.Mongo.value) { + showAuthCode = 'mongo:manage:base'; + } + resourceMap.set(resourceType, { resourceType, showAuthCode, count: 1, tagPath: tagResource.tagPath }); } + state.resourceDialog.data = Array.from(resourceMap.values()); state.resourceDialog.visible = true; }; const showResources = (resourceType: any, tagPath: string) => { + hasPerm; state.resourceDialog.visible = false; setTimeout(() => { let toPath = ''; diff --git a/mayfly_go_web/yarn.lock b/mayfly_go_web/yarn.lock index d122250d..d15469c7 100644 --- a/mayfly_go_web/yarn.lock +++ b/mayfly_go_web/yarn.lock @@ -2,11 +2,6 @@ # yarn lockfile v1 -"@babel/parser@^7.20.15", "@babel/parser@^7.21.3": - version "7.21.8" - resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.21.8.tgz#642af7d0333eab9c0ad70b14ac5e76dbde7bfdf8" - integrity sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA== - "@babel/parser@^7.23.5": version "7.23.5" resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" @@ -207,7 +202,7 @@ resolved "https://registry.npmmirror.com/@humanwhocodes/object-schema/download/@humanwhocodes/object-schema-1.2.1.tgz" integrity sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U= -"@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.15": +"@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== @@ -435,10 +430,10 @@ "@typescript-eslint/types" "6.7.4" eslint-visitor-keys "^3.4.1" -"@vitejs/plugin-vue@^4.4.0": - version "4.4.0" - resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz#8ae96573236cdb12de6850a6d929b5537ec85390" - integrity sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg== +"@vitejs/plugin-vue@^4.5.1": + version "4.5.1" + resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.5.1.tgz#84815bfeb46928c03a9ed765e4a8425c22345e15" + integrity sha512-DaUzYFr+2UGDG7VSSdShKa9sIWYBa1LL8KC0MNOf2H5LjcTPjob0x8LbkqXWmAtbANJCkpiQTj66UVcQkN2s3g== "@vue/compiler-core@3.3.10": version "3.3.10" @@ -450,16 +445,6 @@ estree-walker "^2.0.2" source-map-js "^1.0.2" -"@vue/compiler-core@3.3.4": - version "3.3.4" - resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz#7fbf591c1c19e1acd28ffd284526e98b4f581128" - integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g== - dependencies: - "@babel/parser" "^7.21.3" - "@vue/shared" "3.3.4" - estree-walker "^2.0.2" - source-map-js "^1.0.2" - "@vue/compiler-dom@3.3.10": version "3.3.10" resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.10.tgz#183811252be6aff4ac923f783124bb1590301907" @@ -468,15 +453,7 @@ "@vue/compiler-core" "3.3.10" "@vue/shared" "3.3.10" -"@vue/compiler-dom@3.3.4": - version "3.3.4" - resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz#f56e09b5f4d7dc350f981784de9713d823341151" - integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w== - dependencies: - "@vue/compiler-core" "3.3.4" - "@vue/shared" "3.3.4" - -"@vue/compiler-sfc@3.3.10": +"@vue/compiler-sfc@3.3.10", "@vue/compiler-sfc@^3.3.10": version "3.3.10" resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.10.tgz#8eb97d42f276089ec58fd0565ef3a813bceeaa87" integrity sha512-xpcTe7Rw7QefOTRFFTlcfzozccvjM40dT45JtrE3onGm/jBLZ0JhpKu3jkV7rbDFLeeagR/5RlJ2Y9SvyS0lAg== @@ -492,22 +469,6 @@ postcss "^8.4.32" source-map-js "^1.0.2" -"@vue/compiler-sfc@^3.3.4": - version "3.3.4" - resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz#b19d942c71938893535b46226d602720593001df" - integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ== - dependencies: - "@babel/parser" "^7.20.15" - "@vue/compiler-core" "3.3.4" - "@vue/compiler-dom" "3.3.4" - "@vue/compiler-ssr" "3.3.4" - "@vue/reactivity-transform" "3.3.4" - "@vue/shared" "3.3.4" - estree-walker "^2.0.2" - magic-string "^0.30.0" - postcss "^8.1.10" - source-map-js "^1.0.2" - "@vue/compiler-ssr@3.3.10": version "3.3.10" resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.10.tgz#5a1b14a358cb3960a4edbce0ade90548e452fcaa" @@ -516,14 +477,6 @@ "@vue/compiler-dom" "3.3.10" "@vue/shared" "3.3.10" -"@vue/compiler-ssr@3.3.4": - version "3.3.4" - resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz#9d1379abffa4f2b0cd844174ceec4a9721138777" - integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ== - dependencies: - "@vue/compiler-dom" "3.3.4" - "@vue/shared" "3.3.4" - "@vue/devtools-api@^6.5.0": version "6.5.0" resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz#98b99425edee70b4c992692628fa1ea2c1e57d07" @@ -540,17 +493,6 @@ estree-walker "^2.0.2" magic-string "^0.30.5" -"@vue/reactivity-transform@3.3.4": - version "3.3.4" - resolved "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz#52908476e34d6a65c6c21cd2722d41ed8ae51929" - integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw== - dependencies: - "@babel/parser" "^7.20.15" - "@vue/compiler-core" "3.3.4" - "@vue/shared" "3.3.4" - estree-walker "^2.0.2" - magic-string "^0.30.0" - "@vue/reactivity@3.3.10": version "3.3.10" resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.10.tgz#78fe3da319276d9e6d0f072037532928c472a287" @@ -588,11 +530,6 @@ resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.10.tgz#1583a8d85a957d8b819078c465d2a11db7914b2f" integrity sha512-2y3Y2J1a3RhFa0WisHvACJR2ncvWiVHcP8t0Inxo+NKz+8RKO4ZV8eZgCxRgQoA6ITfV12L4E6POOL9HOU5nqw== -"@vue/shared@3.3.4": - version "3.3.4" - resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780" - integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ== - "@vueuse/core@^9.1.0": version "9.2.0" resolved "https://registry.npmmirror.com/@vueuse/core/-/core-9.2.0.tgz" @@ -960,10 +897,10 @@ escape-string-regexp@^4.0.0: resolved "https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-4.0.0.tgz" integrity sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ= -eslint-plugin-vue@^9.17.0: - version "9.17.0" - resolved "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.17.0.tgz#4501547373f246547083482838b4c8f4b28e5932" - integrity sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ== +eslint-plugin-vue@^9.19.2: + version "9.19.2" + resolved "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.19.2.tgz#7ab83a001a1ac8bccae013c5b9cb5d2c644fb376" + integrity sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" natural-compare "^1.4.0" @@ -1426,13 +1363,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -magic-string@^0.30.0: - version "0.30.0" - resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.0.tgz#fd58a4748c5c4547338a424e90fa5dd17f4de529" - integrity sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ== - dependencies: - "@jridgewell/sourcemap-codec" "^1.4.13" - magic-string@^0.30.5: version "0.30.5" resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" @@ -1518,11 +1448,6 @@ ms@2.1.2: resolved "https://registry.npmmirror.com/ms/download/ms-2.1.2.tgz" integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= -nanoid@^3.1.30: - version "3.1.30" - resolved "https://registry.npmmirror.com/nanoid/download/nanoid-3.1.30.tgz" - integrity sha1-Y/k8xUjSoRPcXfvGO/oJ4rm2Q2I= - nanoid@^3.3.7: version "3.3.7" resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" @@ -1656,15 +1581,6 @@ postcss-selector-parser@^6.0.13: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss@^8.1.10: - version "8.4.5" - resolved "https://registry.npmmirror.com/postcss/download/postcss-8.4.5.tgz" - integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg== - dependencies: - nanoid "^3.1.30" - picocolors "^1.0.0" - source-map-js "^1.0.1" - postcss@^8.4.32: version "8.4.32" resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" @@ -1679,10 +1595,10 @@ prelude-ls@^1.2.1: resolved "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.2.1.tgz" integrity sha1-3rxkidem5rDnYRiIzsiAM30xY5Y= -prettier@^3.0.3: - version "3.0.3" - resolved "https://registry.npmmirror.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" - integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== +prettier@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e" + integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw== proxy-from-env@^1.1.0: version "1.1.0" @@ -1849,11 +1765,6 @@ sortablejs@^1.15.0: resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-js@^1.0.1: - version "1.0.1" - resolved "https://registry.npmmirror.com/source-map-js/download/source-map-js-1.0.1.tgz?cache=0&sync_timestamp=1636400753943&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsource-map-js%2Fdownload%2Fsource-map-js-1.0.1.tgz" - integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== - sql-formatter@^14.0.0: version "14.0.0" resolved "https://registry.npmmirror.com/sql-formatter/-/sql-formatter-14.0.0.tgz#07a1714c49d7d280ff2f6f09c64eebfba82b7053" @@ -1977,6 +1888,19 @@ vue-eslint-parser@^9.3.1: lodash "^4.17.21" semver "^7.3.6" +vue-eslint-parser@^9.3.2: + version "9.3.2" + resolved "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz#6f9638e55703f1c77875a19026347548d93fd499" + integrity sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg== + dependencies: + debug "^4.3.4" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^7.3.6" + vue-router@^4.2.5: version "4.2.5" resolved "https://registry.npmmirror.com/vue-router/-/vue-router-4.2.5.tgz#b9e3e08f1bd9ea363fdd173032620bc50cf0e98a" diff --git a/server/internal/db/api/db.go b/server/internal/db/api/db.go index ff301612..d6aa4467 100644 --- a/server/internal/db/api/db.go +++ b/server/internal/db/api/db.go @@ -95,7 +95,7 @@ func (d *Db) ExecSql(rc *req.Ctx) { // 去除前后空格及换行符 sql := stringx.TrimSpaceAndBr(string(sqlBytes)) - rc.ReqParam = fmt.Sprintf("%s\n-> %s", dbConn.Info.GetLogDesc(), form.Sql) + rc.ReqParam = fmt.Sprintf("%s\n-> %s", dbConn.Info.GetLogDesc(), sql) biz.NotEmpty(form.Sql, "sql不能为空") execReq := &application.DbSqlExecReq{ diff --git a/server/internal/machine/mcm/terminal_session.go b/server/internal/machine/mcm/terminal_session.go index 3ad41b6f..d4c25d58 100644 --- a/server/internal/machine/mcm/terminal_session.go +++ b/server/internal/machine/mcm/terminal_session.go @@ -43,7 +43,7 @@ func NewTerminalSession(sessionId string, ws *websocket.Conn, cli *Cli, rows, co } if recorder != nil { - recorder.WriteHeader(rows-5, cols) + recorder.WriteHeader(rows-3, cols) } ctx, cancel := context.WithCancel(context.Background())