diff --git a/orion-ops-framework/orion-ops-framework-common/src/main/java/com/orion/ops/framework/common/constant/ErrorMessage.java b/orion-ops-framework/orion-ops-framework-common/src/main/java/com/orion/ops/framework/common/constant/ErrorMessage.java index 93e47648..e520dd30 100644 --- a/orion-ops-framework/orion-ops-framework-common/src/main/java/com/orion/ops/framework/common/constant/ErrorMessage.java +++ b/orion-ops-framework/orion-ops-framework-common/src/main/java/com/orion/ops/framework/common/constant/ErrorMessage.java @@ -79,4 +79,6 @@ public interface ErrorMessage { String PATH_NOT_NORMALIZE = "路径不合法"; + String OPERATE_ERROR = "操作失败"; + } diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/enums/InputTypeEnum.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/enums/InputTypeEnum.java index 7321fee9..d78fba78 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/enums/InputTypeEnum.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/enums/InputTypeEnum.java @@ -104,8 +104,8 @@ public enum InputTypeEnum { */ SFTP_REMOVE("rm", SftpRemoveHandler.class, - new String[]{"type", "sessionId", "paths"}, - SftpRemoveRequest.class), + new String[]{"type", "sessionId", "path"}, + SftpBaseRequest.class), /** * SFTP 截断文件 diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/enums/OutputTypeEnum.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/enums/OutputTypeEnum.java index 05522e4f..593afde4 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/enums/OutputTypeEnum.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/enums/OutputTypeEnum.java @@ -48,12 +48,12 @@ public enum OutputTypeEnum { /** * SFTP 创建文件夹 */ - SFTP_MKDIR("md", "${type}|${sessionId}|${result}|${msg}"), + SFTP_MKDIR("mk", "${type}|${sessionId}|${result}|${msg}"), /** * SFTP 创建文件 */ - SFTP_TOUCH("to", "${type}|${sessionId}${result}|${msg}"), + SFTP_TOUCH("to", "${type}|${sessionId}|${result}|${msg}"), /** * SFTP 移动文件 diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/handler/SftpRemoveHandler.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/handler/SftpRemoveHandler.java index 0c5169fe..17357bb1 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/handler/SftpRemoveHandler.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/handler/SftpRemoveHandler.java @@ -2,7 +2,7 @@ package com.orion.ops.module.asset.handler.host.terminal.handler; import com.orion.ops.framework.common.enums.BooleanBit; import com.orion.ops.module.asset.handler.host.terminal.enums.OutputTypeEnum; -import com.orion.ops.module.asset.handler.host.terminal.model.request.SftpRemoveRequest; +import com.orion.ops.module.asset.handler.host.terminal.model.request.SftpBaseRequest; import com.orion.ops.module.asset.handler.host.terminal.model.response.SftpBaseResponse; import com.orion.ops.module.asset.handler.host.terminal.session.ISftpSession; import lombok.extern.slf4j.Slf4j; @@ -18,14 +18,14 @@ import org.springframework.web.socket.WebSocketSession; */ @Slf4j @Component -public class SftpRemoveHandler extends AbstractTerminalHandler { +public class SftpRemoveHandler extends AbstractTerminalHandler { @Override - public void handle(WebSocketSession channel, SftpRemoveRequest payload) { + public void handle(WebSocketSession channel, SftpBaseRequest payload) { // 获取会话 ISftpSession session = terminalManager.getSession(channel.getId(), payload.getSessionId()); - String[] paths = payload.getPaths().split("\\|"); - log.info("SftpRemoveHandler-handle session: {}, paths: {}", payload.getSessionId(), paths); + String[] paths = payload.getPath().split("\\|"); + log.info("SftpRemoveHandler-handle session: {}, path: {}", payload.getSessionId(), paths); Exception ex = null; // 删除 try { @@ -40,7 +40,7 @@ public class SftpRemoveHandler extends AbstractTerminalHandler - * i|eff00a1|paths - * - * @author Jiahang Li - * @version 1.0.0 - * @since 2024/2/6 13:31 - */ -@Data -@SuperBuilder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@Schema(name = "SftpRemoveRequest", description = "sftp 删除文件 实体对象") -public class SftpRemoveRequest extends SftpBaseRequest { - - @Schema(description = "paths 多个用|分割") - private String paths; - -} diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/session/SftpSession.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/session/SftpSession.java index 930f5190..4148dbfd 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/session/SftpSession.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/handler/host/terminal/session/SftpSession.java @@ -17,6 +17,7 @@ import org.springframework.web.socket.WebSocketSession; import java.io.InputStream; import java.util.Arrays; +import java.util.Comparator; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -68,6 +69,7 @@ public class SftpSession extends TerminalSession implements ISftpSession { true); return files.stream() .map(SftpSession::fileMapping) + .sorted(Comparator.comparing(SftpFileVO::getName)) .collect(Collectors.toList()); } diff --git a/orion-ops-ui/components.d.ts b/orion-ops-ui/components.d.ts index 24f3a4c2..224b0d1c 100644 --- a/orion-ops-ui/components.d.ts +++ b/orion-ops-ui/components.d.ts @@ -5,11 +5,11 @@ // Read more: https://github.com/vuejs/core/pull/3399 import '@vue/runtime-core'; -export {} +export {}; declare module '@vue/runtime-core' { export interface GlobalComponents { - RouterLink: typeof import('vue-router')['RouterLink'] - RouterView: typeof import('vue-router')['RouterView'] + RouterLink: typeof import('vue-router')['RouterLink']; + RouterView: typeof import('vue-router')['RouterView']; } } diff --git a/orion-ops-ui/src/utils/dom.ts b/orion-ops-ui/src/utils/dom.ts new file mode 100644 index 00000000..08e81d3a --- /dev/null +++ b/orion-ops-ui/src/utils/dom.ts @@ -0,0 +1,9 @@ +import { nextTick } from 'vue'; + +// 设置 ref 自动聚焦 +export const setAutoFocus = (el: HTMLElement) => { + // 自动聚焦 + nextTick(() => { + el && el.focus(); + }); +}; diff --git a/orion-ops-ui/src/views/host/command-snippet/components/command-snippet-list-item.vue b/orion-ops-ui/src/views/host/command-snippet/components/command-snippet-list-item.vue index c9e71ccb..9a04180d 100644 --- a/orion-ops-ui/src/views/host/command-snippet/components/command-snippet-list-item.vue +++ b/orion-ops-ui/src/views/host/command-snippet/components/command-snippet-list-item.vue @@ -1,5 +1,5 @@