From 8cea9dc977e9f98e604b88d4af9be176fafa58c1 Mon Sep 17 00:00:00 2001 From: lijiahang Date: Mon, 5 Aug 2024 09:11:54 +0800 Subject: [PATCH] =?UTF-8?q?:zap:=20=E4=BC=98=E5=8C=96=E7=BB=88=E7=AB=AF?= =?UTF-8?q?=E4=BB=A3=E7=A0=81.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +- docs/README.md | 4 +- .../framework/common/entity/PageRequest.java | 2 +- ...rion-vue-views-components-card-list.vue.vm | 2 +- .../AssetWebSocketConfiguration.java | 10 +++- .../controller/HostTerminalController.java | 7 +++ .../cache/HostTerminalCacheKeyDefine.java | 9 +++ .../asset/entity/domain/CommandSnippetDO.java | 4 -- .../TerminalAccessInterceptor.java | 6 +- .../TerminalTransferInterceptor.java | 56 +++++++++++++++++++ .../asset/service/HostTerminalService.java | 16 ++++++ .../service/impl/HostTerminalServiceImpl.java | 28 ++++++++++ .../resources/mapper/CommandSnippetMapper.xml | 3 +- .../controller/SystemMessageController.java | 3 +- .../message/SystemMessageQueryRequest.java | 12 ++-- .../impl/SystemMessageServiceImpl.java | 2 +- orion-visor-ui/src/api/asset/host-terminal.ts | 7 +++ orion-visor-ui/src/api/system/message.ts | 4 +- orion-visor-ui/src/assets/style/global.less | 24 +++++++- .../components/system/message-box/index.vue | 1 + .../host-list/components/host-form-modal.vue | 2 +- .../asset/host-list/components/host-table.vue | 21 ++++++- .../host/terminal/handler/sftp-session.ts | 12 +++- .../terminal/handler/sftp-transfer-manager.ts | 8 +-- sql/init-2-schema-tables.sql | 1 - 25 files changed, 205 insertions(+), 43 deletions(-) create mode 100644 orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/interceptor/TerminalTransferInterceptor.java diff --git a/README.md b/README.md index ca325231..eee75a30 100644 --- a/README.md +++ b/README.md @@ -19,12 +19,12 @@ - star + star - fork + fork - star + star - fork + fork - + @@ -239,7 +255,7 @@ import { reactive, ref, onMounted } from 'vue'; import { deleteHost, batchDeleteHost, getHostPage, updateHostStatus } from '@/api/asset/host'; import { Message, Modal } from '@arco-design/web-vue'; - import { tagColor, hostTypeKey, hostStatusKey } from '../types/const'; + import { tagColor, hostTypeKey, hostStatusKey, hostType } from '../types/const'; import { useTablePagination, useRowSelection } from '@/hooks/table'; import { useDictStore } from '@/store'; import { copy } from '@/hooks/copy'; @@ -247,6 +263,7 @@ import useLoading from '@/hooks/loading'; import columns from '../types/table.columns'; import { GrantKey, GrantRouteName } from '@/views/asset/grant/types/const'; + import { openNewRoute } from '@/router'; import TagMultiSelector from '@/components/meta/tag/multi-selector/index.vue'; const emits = defineEmits(['openCopy', 'openAdd', 'openUpdate', 'openUpdateConfig', 'openHostGroup']); diff --git a/orion-visor-ui/src/views/host/terminal/handler/sftp-session.ts b/orion-visor-ui/src/views/host/terminal/handler/sftp-session.ts index c5c3f9fb..811b7c67 100644 --- a/orion-visor-ui/src/views/host/terminal/handler/sftp-session.ts +++ b/orion-visor-ui/src/views/host/terminal/handler/sftp-session.ts @@ -85,15 +85,21 @@ export default class SftpSession extends BaseSession implements ISftpSession { display: 'flex', flexDirection: 'column', maxHeight: '40vh', - overflowY: 'auto' + overflowY: 'auto', } }, paths.map(s => { - return h('span', { style: { marginTop: '4px' } }, s); + return h('span', { + style: { + marginTop: '4px', + wordBreak: 'break-all', + } + }, s); })); // 提示 Modal.confirm({ - title: '确定后将立即删除这些文件且无法恢复!', + title: `确定后将立即删除这 ${paths.length} 个文件且无法恢复!`, + width: 426, modalStyle: { padding: '24px 32px' }, bodyStyle: { marginTop: '-14px' }, okButtonProps: { status: 'danger' }, diff --git a/orion-visor-ui/src/views/host/terminal/handler/sftp-transfer-manager.ts b/orion-visor-ui/src/views/host/terminal/handler/sftp-transfer-manager.ts index 8888f49f..8a23e3dd 100644 --- a/orion-visor-ui/src/views/host/terminal/handler/sftp-transfer-manager.ts +++ b/orion-visor-ui/src/views/host/terminal/handler/sftp-transfer-manager.ts @@ -1,7 +1,7 @@ import type { ISftpTransferHandler, ISftpTransferManager, SftpFile, SftpTransferItem, TransferOperatorResponse } from '../types/define'; import { sessionCloseMsg, TransferReceiver, TransferStatus, TransferType } from '../types/const'; import { Message } from '@arco-design/web-vue'; -import { getTerminalAccessToken, openHostTransferChannel } from '@/api/asset/host-terminal'; +import { getTerminalTransferToken, openHostTransferChannel } from '@/api/asset/host-terminal'; import { nextId } from '@/utils'; import SftpTransferUploader from './sftp-transfer-uploader'; import SftpTransferDownloader from './sftp-transfer-downloader'; @@ -105,11 +105,11 @@ export default class SftpTransferManager implements ISftpTransferManager { // 打开会话 private async openClient() { this.run = true; - // 获取 access - const { data: accessToken } = await getTerminalAccessToken(); + // 获取 transferToken + const { data: transferToken } = await getTerminalTransferToken(); // 打开会话 try { - this.client = await openHostTransferChannel(accessToken); + this.client = await openHostTransferChannel(transferToken); } catch (e) { // 打开失败将传输列表置为失效 Message.error('会话打开失败'); diff --git a/sql/init-2-schema-tables.sql b/sql/init-2-schema-tables.sql index a2b1226a..043b47b0 100644 --- a/sql/init-2-schema-tables.sql +++ b/sql/init-2-schema-tables.sql @@ -30,7 +30,6 @@ CREATE TABLE `command_snippet` `user_id` bigint(0) NULL DEFAULT NULL COMMENT '用户id', `group_id` bigint(0) NULL DEFAULT NULL COMMENT '分组id', `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称', - `prefix` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '触发前缀', `command` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '代码片段', `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间',