From dd973a46fcc1db0c23a83570ab2a5b9250091596 Mon Sep 17 00:00:00 2001 From: lijiahangmax Date: Fri, 13 Dec 2024 01:05:01 +0800 Subject: [PATCH] =?UTF-8?q?:hammer:=20=E5=91=BD=E4=BB=A4=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E7=94=A8=E6=88=B7.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../asset/controller/ExecJobController.java | 12 +-- .../define/operator/ExecJobOperatorType.java | 6 +- ...java => ExecJobUpdateExecUserRequest.java} | 6 +- .../module/asset/service/ExecJobService.java | 16 +-- .../service/impl/ExecCommandServiceImpl.java | 1 + .../service/impl/ExecJobServiceImpl.java | 54 +++++----- orion-visor-ui/src/api/exec/exec-job.ts | 30 +++--- .../src/components/exec/log/const.ts | 10 +- .../src/components/exec/log/panel/index.vue | 14 +-- .../components/exec/log/panel/log-item.vue | 4 +- .../src/router/routes/modules/exec.ts | 89 +++++++++------ .../src/router/routes/modules/job.ts | 36 ------- .../exec-command-host-log-table.vue | 6 +- .../components/exec-command-log-table.vue | 8 +- .../components/exec-job-host-log-table.vue | 6 +- .../components/exec-job-log-table.vue | 31 +++++- .../exec/exec-job-log/types/table.columns.ts | 7 ++ .../exec-job/components/exec-job-table.vue | 27 +++-- .../components/exec-user-update-modal.vue | 101 ++++++++++++++++++ .../src/views/exec/exec-job/index.vue | 5 + .../exec/exec-job/types/table.columns.ts | 8 ++ 21 files changed, 315 insertions(+), 162 deletions(-) rename orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/{ExecJobSetExecUserRequest.java => ExecJobUpdateExecUserRequest.java} (83%) delete mode 100644 orion-visor-ui/src/router/routes/modules/job.ts create mode 100644 orion-visor-ui/src/views/exec/exec-job/components/exec-user-update-modal.vue diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/controller/ExecJobController.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/controller/ExecJobController.java index 64f6a0a6..1c5713ec 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/controller/ExecJobController.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/controller/ExecJobController.java @@ -108,12 +108,12 @@ public class ExecJobController { } @DemoDisableApi - @OperatorLog(ExecJobOperatorType.SET_EXEC_USER) - @PutMapping("/set-exec-user") - @Operation(summary = "设置计划任务执行用户") - @PreAuthorize("@ss.hasPermission('exec:exec-job:set-exec-user')") - public Integer setExecJobExecUser(@Validated @RequestBody ExecJobSetExecUserRequest request) { - return execJobService.setExecJobExecUser(request); + @OperatorLog(ExecJobOperatorType.UPDATE_EXEC_USER) + @PutMapping("/update-exec-user") + @Operation(summary = "修改计划任务执行用户") + @PreAuthorize("@ss.hasPermission('asset:exec-job:update-exec-user')") + public Integer updateExecJobExecUser(@Validated @RequestBody ExecJobUpdateExecUserRequest request) { + return execJobService.updateExecJobExecUser(request); } @DemoDisableApi diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecJobOperatorType.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecJobOperatorType.java index 7fc94943..013ac7c1 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecJobOperatorType.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecJobOperatorType.java @@ -28,7 +28,7 @@ import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRi * @version 1.0.3 * @since 2024-3-28 12:03 */ -@Module("exec:exec-job") +@Module("asset:exec-job") public class ExecJobOperatorType extends InitializingOperatorTypes { public static final String CREATE = "exec-job:create"; @@ -39,7 +39,7 @@ public class ExecJobOperatorType extends InitializingOperatorTypes { public static final String TRIGGER = "exec-job:trigger"; - public static final String SET_EXEC_USER = "exec-job:set-exec-user"; + public static final String UPDATE_EXEC_USER = "exec-job:update-exec-user"; public static final String DELETE = "exec-job:delete"; @@ -54,7 +54,7 @@ public class ExecJobOperatorType extends InitializingOperatorTypes { new OperatorType(M, UPDATE, "更新计划任务 ${before}"), new OperatorType(M, UPDATE_STATUS, "${statusName} 计划任务 ${name}"), new OperatorType(M, TRIGGER, "手动触发计划任务 ${name}"), - new OperatorType(M, SET_EXEC_USER, "修改计划任务 ${name} 执行用户为 ${username}"), + new OperatorType(M, UPDATE_EXEC_USER, "修改计划任务 ${name} 执行用户为 ${username}"), new OperatorType(H, DELETE, "删除计划任务 ${name}"), new OperatorType(H, IMPORT, "导入计划任务 ${count} 条"), new OperatorType(H, EXPORT, "导出计划任务 ${count} 条"), diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/ExecJobSetExecUserRequest.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/ExecJobUpdateExecUserRequest.java similarity index 83% rename from orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/ExecJobSetExecUserRequest.java rename to orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/ExecJobUpdateExecUserRequest.java index e1d96477..94525168 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/ExecJobSetExecUserRequest.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/ExecJobUpdateExecUserRequest.java @@ -22,7 +22,7 @@ import org.dromara.visor.framework.common.entity.PageRequest; import javax.validation.constraints.NotNull; /** - * 设置计划任务执行用户 查询请求对象 + * 修改计划任务执行用户 查询请求对象 * * @author Jiahang Li * @version 1.0.3 @@ -33,8 +33,8 @@ import javax.validation.constraints.NotNull; @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode(callSuper = true) -@Schema(name = "ExecJobSetExecUserRequest", description = "设置计划任务执行用户 查询请求对象") -public class ExecJobSetExecUserRequest extends PageRequest { +@Schema(name = "ExecJobUpdateExecUserRequest", description = "修改计划任务执行用户 查询请求对象") +public class ExecJobUpdateExecUserRequest extends PageRequest { @NotNull @Schema(description = "id") diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/ExecJobService.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/ExecJobService.java index 9ee6eebe..b3876e13 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/ExecJobService.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/ExecJobService.java @@ -55,6 +55,14 @@ public interface ExecJobService { */ Integer updateExecJobStatus(ExecJobUpdateStatusRequest request); + /** + * 修改执行用户 + * + * @param request request + * @return effect + */ + Integer updateExecJobExecUser(ExecJobUpdateExecUserRequest request); + /** * 查询计划任务 * @@ -78,14 +86,6 @@ public interface ExecJobService { */ DataGrid getExecJobPage(ExecJobQueryRequest request); - /** - * 设置执行用户 - * - * @param request request - * @return effect - */ - Integer setExecJobExecUser(ExecJobSetExecUserRequest request); - /** * 获取下一个执行序列 * diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/ExecCommandServiceImpl.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/ExecCommandServiceImpl.java index 611802cf..f8f080e4 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/ExecCommandServiceImpl.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/ExecCommandServiceImpl.java @@ -141,6 +141,7 @@ public class ExecCommandServiceImpl implements ExecCommandService { .username(request.getUsername()) .source(request.getSource()) .sourceId(request.getSourceId()) + .execMode(request.getExecMode()) .execSeq(request.getExecSeq()) .description(Strings.ifBlank(request.getDescription(), () -> { if (command.length() < DESC_OMIT + Const.OMIT.length()) { diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/ExecJobServiceImpl.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/ExecJobServiceImpl.java index 457dedf8..2aed0f06 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/ExecJobServiceImpl.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/ExecJobServiceImpl.java @@ -97,6 +97,7 @@ public class ExecJobServiceImpl implements ExecJobService { @Transactional(rollbackFor = Exception.class) public Long createExecJob(ExecJobCreateRequest request) { log.info("ExecJobService-createExecJob request: {}", JSON.toJSONString(request)); + LoginUser loginUser = SecurityUtils.getLoginUser(); // 验证表达式是否正确 Cron.of(request.getExpression()); Valid.valid(ScriptExecEnum::of, request.getScriptExec()); @@ -108,6 +109,10 @@ public class ExecJobServiceImpl implements ExecJobService { this.checkHostPermission(request.getHostIdList()); // 插入任务 record.setStatus(ExecJobStatusEnum.DISABLED.getStatus()); + if (loginUser != null) { + record.setExecUserId(loginUser.getId()); + record.setExecUsername(loginUser.getUsername()); + } int effect = execJobDAO.insert(record); Long id = record.getId(); // 设置任务主机 @@ -170,6 +175,31 @@ public class ExecJobServiceImpl implements ExecJobService { return effect; } + @Override + @Transactional(rollbackFor = Exception.class) + public Integer updateExecJobExecUser(ExecJobUpdateExecUserRequest request) { + Long id = request.getId(); + Long userId = request.getUserId(); + log.info("ExecJobService-updateExecJobExecUser id: {}, userId: {}", id, userId); + // 查询任务 + ExecJobDO job = execJobDAO.selectById(id); + Valid.notNull(job, ErrorMessage.DATA_ABSENT); + // 查询用户 + String username = systemUserApi.getUsernameById(userId); + Valid.notNull(username, ErrorMessage.USER_ABSENT); + // 修改任务 + ExecJobDO update = new ExecJobDO(); + update.setId(id); + update.setExecUserId(userId); + update.setExecUsername(username); + int effect = execJobDAO.updateById(update); + // 设置日志参数 + OperatorLogs.add(OperatorLogs.NAME, job.getName()); + OperatorLogs.add(OperatorLogs.USERNAME, username); + log.info("ExecJobService-setExecJobExecUser effect: {}", effect); + return effect; + } + @Override public ExecJobVO getExecJobById(Long id) { // 查询任务 @@ -239,30 +269,6 @@ public class ExecJobServiceImpl implements ExecJobService { return dataGrid; } - @Override - public Integer setExecJobExecUser(ExecJobSetExecUserRequest request) { - Long id = request.getId(); - Long userId = request.getUserId(); - log.info("ExecJobService-setExecJobExecUser id: {}, userId: {}", id, userId); - // 查询任务 - ExecJobDO job = execJobDAO.selectById(id); - Valid.notNull(job, ErrorMessage.DATA_ABSENT); - // 查询用户 - String username = systemUserApi.getUsernameById(userId); - Valid.notNull(username, ErrorMessage.USER_ABSENT); - // 修改任务 - ExecJobDO update = new ExecJobDO(); - update.setId(id); - update.setExecUserId(userId); - update.setExecUsername(username); - int effect = execJobDAO.updateById(update); - // 设置日志参数 - OperatorLogs.add(OperatorLogs.NAME, job.getName()); - OperatorLogs.add(OperatorLogs.USERNAME, username); - log.info("ExecJobService-setExecJobExecUser effect: {}", effect); - return effect; - } - @Override public Integer getNextExecSeq(Long id) { // 自增 diff --git a/orion-visor-ui/src/api/exec/exec-job.ts b/orion-visor-ui/src/api/exec/exec-job.ts index 8149ad7c..8012285e 100644 --- a/orion-visor-ui/src/api/exec/exec-job.ts +++ b/orion-visor-ui/src/api/exec/exec-job.ts @@ -32,6 +32,14 @@ export interface ExecJobUpdateStatusRequest { status: number; } +/** + * 更新计划任务执行用户 + */ +export interface ExecJobUpdateExecUserRequest { + id?: number; + userId?: number; +} + /** * 计划任务查询请求 */ @@ -66,14 +74,6 @@ export interface ExecJobQueryResponse extends TableData { hostList: Array; } -/** - * 设置计划任务执行用户 - */ -export interface ExecJobSetExecUserRequest { - id: number; - userId: number; -} - /** * 创建计划任务 */ @@ -95,6 +95,13 @@ export function updateExecJobStatus(request: ExecJobUpdateStatusRequest) { return axios.put('/asset/exec-job/update-status', request); } +/** + * 更新计划任务执行用户 + */ +export function updateExecJobExecUser(request: ExecJobUpdateExecUserRequest) { + return axios.put('/asset/exec-job/update-exec-user', request); +} + /** * 查询计划任务 */ @@ -116,13 +123,6 @@ export function getExecJobPage(request: ExecJobQueryRequest) { return axios.post>('/asset/exec-job/query', request); } -/** - * 设置计划任务执行用户 - */ -export function setExecJobExecUser(request: ExecJobSetExecUserRequest) { - return axios.put('/exec/exec-job/set-exec-user', request); -} - /** * 删除计划任务 */ diff --git a/orion-visor-ui/src/components/exec/log/const.ts b/orion-visor-ui/src/components/exec/log/const.ts index 9e9f59cb..516b475f 100644 --- a/orion-visor-ui/src/components/exec/log/const.ts +++ b/orion-visor-ui/src/components/exec/log/const.ts @@ -6,7 +6,7 @@ import type { ITerminalInitOnlyOptions, ITerminalOptions, Terminal } from '@xter export type ExecType = 'BATCH' | 'JOB'; // 批量执行状态 -export const execStatus = { +export const ExecStatus = { // 等待中 WAITING: 'WAITING', // 运行中 @@ -18,7 +18,7 @@ export const execStatus = { }; // 主机执行状态 -export const execHostStatus = { +export const ExecHostStatus = { // 等待中 WAITING: 'WAITING', // 运行中 @@ -33,6 +33,12 @@ export const execHostStatus = { INTERRUPTED: 'INTERRUPTED', }; +// 执行模式 +export const ExecMode = { + MANUAL: 'MANUAL', + JOB: 'JOB' +}; + // 执行状态 字典项 export const execStatusKey = 'execStatus'; diff --git a/orion-visor-ui/src/components/exec/log/panel/index.vue b/orion-visor-ui/src/components/exec/log/panel/index.vue index b32a4340..fceb5972 100644 --- a/orion-visor-ui/src/components/exec/log/panel/index.vue +++ b/orion-visor-ui/src/components/exec/log/panel/index.vue @@ -29,7 +29,7 @@ import { onUnmounted, ref, nextTick, onMounted } from 'vue'; import { getExecCommandLogStatus } from '@/api/exec/exec-command-log'; import { getExecJobLogStatus } from '@/api/exec/exec-job-log'; - import { dictKeys, execHostStatus, execStatus } from '../const'; + import { dictKeys, ExecHostStatus, ExecStatus } from '../const'; import { useDictStore } from '@/store'; import ExecHost from './exec-host.vue'; import LogView from './log-view.vue'; @@ -54,8 +54,8 @@ execLog.value = record; currentHostExecId.value = record.hosts[0].id; // 定时查询执行状态 - if (record.status === execStatus.WAITING || - record.status === execStatus.RUNNING) { + if (record.status === ExecStatus.WAITING || + record.status === ExecStatus.RUNNING) { // 等待一秒后先查询一下状态 setTimeout(pullExecStatus, 1000); // 注册状态轮询 @@ -100,8 +100,8 @@ } } // 已完成跳过 - if (execLog.value.status === execStatus.COMPLETED || - execLog.value.status === execStatus.FAILED) { + if (execLog.value.status === ExecStatus.COMPLETED || + execLog.value.status === ExecStatus.FAILED) { closeClient(); } }; @@ -114,8 +114,8 @@ } hosts.forEach(s => { // 未完成自动设置完成时间为当前时间 用于展示使用时间 - if (s.status === execHostStatus.WAITING || - s.status === execHostStatus.RUNNING) { + if (s.status === ExecHostStatus.WAITING || + s.status === ExecHostStatus.RUNNING) { if (!s.startTime) { s.startTime = Date.now(); } diff --git a/orion-visor-ui/src/components/exec/log/panel/log-item.vue b/orion-visor-ui/src/components/exec/log/panel/log-item.vue index 22baad0d..22090ec8 100644 --- a/orion-visor-ui/src/components/exec/log/panel/log-item.vue +++ b/orion-visor-ui/src/components/exec/log/panel/log-item.vue @@ -27,7 +27,7 @@ color="arcoblue" title="持续时间"> {{ formatDuration(host.startTime, host.finishTime) || '0s' }} @@ -169,7 +169,7 @@ import type { ExecLogQueryResponse, ExecHostLogQueryResponse } from '@/api/exec/exec-log'; import type { ExecType, ILogAppender } from '../const'; import { ref } from 'vue'; - import { execHostStatus, execHostStatusKey } from '../const'; + import { ExecHostStatus, execHostStatusKey } from '../const'; import { formatDuration } from '@/utils'; import { useDictStore } from '@/store'; import { downloadExecCommandLogFile } from '@/api/exec/exec-command-log'; diff --git a/orion-visor-ui/src/router/routes/modules/exec.ts b/orion-visor-ui/src/router/routes/modules/exec.ts index 0c55f355..507b546e 100644 --- a/orion-visor-ui/src/router/routes/modules/exec.ts +++ b/orion-visor-ui/src/router/routes/modules/exec.ts @@ -1,37 +1,60 @@ import type { AppRouteRecordRaw } from '../types'; -import { DEFAULT_LAYOUT } from '../base'; +import { DEFAULT_LAYOUT, FULL_LAYOUT } from '../base'; -const EXEC: AppRouteRecordRaw = { - name: 'execModule', - path: '/exec-module', - component: DEFAULT_LAYOUT, - children: [ - { - name: 'execCommand', - path: '/exec-command', - component: () => import('@/views/exec/exec-command/index.vue'), - }, - { - name: 'execCommandLog', - path: '/exec-log', - component: () => import('@/views/exec/exec-command-log/index.vue'), - }, - { - name: 'batchUpload', - path: '/batch-upload', - component: () => import('@/views/exec/batch-upload/index.vue'), - }, - { - name: 'uploadTask', - path: '/upload-task', - component: () => import('@/views/exec/upload-task/index.vue'), - }, - { - name: 'execTemplate', - path: '/exec-template', - component: () => import('@/views/exec/exec-template/index.vue'), - }, - ], -}; +const EXEC: Array = [ + { + name: 'execModule', + path: '/exec-module', + component: DEFAULT_LAYOUT, + children: [ + { + name: 'execCommand', + path: '/exec-command', + component: () => import('@/views/exec/exec-command/index.vue'), + }, + { + name: 'execCommandLog', + path: '/exec-log', + component: () => import('@/views/exec/exec-command-log/index.vue'), + }, + { + name: 'execJob', + path: '/exec-job', + component: () => import('@/views/exec/exec-job/index.vue'), + }, + { + name: 'execJobLog', + path: '/exec-job-log', + component: () => import('@/views/exec/exec-job-log/index.vue'), + }, + { + name: 'batchUpload', + path: '/batch-upload', + component: () => import('@/views/exec/batch-upload/index.vue'), + }, + { + name: 'uploadTask', + path: '/upload-task', + component: () => import('@/views/exec/upload-task/index.vue'), + }, + { + name: 'execTemplate', + path: '/exec-template', + component: () => import('@/views/exec/exec-template/index.vue'), + }, + ], + }, { + name: 'execFullModule', + path: '/exec-full-module', + component: FULL_LAYOUT, + children: [ + { + name: 'execJobLogView', + path: '/job-log-view', + component: () => import('@/views/exec/exec-job-log-view/index.vue'), + }, + ], + } +]; export default EXEC; diff --git a/orion-visor-ui/src/router/routes/modules/job.ts b/orion-visor-ui/src/router/routes/modules/job.ts deleted file mode 100644 index 2ee9172b..00000000 --- a/orion-visor-ui/src/router/routes/modules/job.ts +++ /dev/null @@ -1,36 +0,0 @@ -import type { AppRouteRecordRaw } from '../types'; -import { DEFAULT_LAYOUT, FULL_LAYOUT } from '../base'; - -const JOB: AppRouteRecordRaw[] = [ - { - name: 'jobModule', - path: '/job-module', - component: DEFAULT_LAYOUT, - children: [ - { - name: 'execJob', - path: '/exec-job', - component: () => import('@/views/exec/exec-job/index.vue'), - }, - { - name: 'execJobLog', - path: '/exec-job-log', - component: () => import('@/views/exec/exec-job-log/index.vue'), - }, - ], - }, - { - name: 'jobFullModule', - path: '/job-full-module', - component: FULL_LAYOUT, - children: [ - { - name: 'execJobLogView', - path: '/job-log-view', - component: () => import('@/views/exec/exec-job-log-view/index.vue'), - }, - ], - } -]; - -export default JOB; diff --git a/orion-visor-ui/src/views/exec/exec-command-log/components/exec-command-host-log-table.vue b/orion-visor-ui/src/views/exec/exec-command-log/components/exec-command-host-log-table.vue index 0827c962..65081a12 100644 --- a/orion-visor-ui/src/views/exec/exec-command-log/components/exec-command-host-log-table.vue +++ b/orion-visor-ui/src/views/exec/exec-command-log/components/exec-command-host-log-table.vue @@ -73,7 +73,7 @@ type="text" size="mini" status="danger" - :disabled="record.status !== execHostStatus.WAITING && record.status !== execHostStatus.RUNNING"> + :disabled="record.status !== ExecHostStatus.WAITING && record.status !== ExecHostStatus.RUNNING"> 中断 @@ -106,7 +106,7 @@ import { Message } from '@arco-design/web-vue'; import useLoading from '@/hooks/loading'; import columns from '../types/host-table.columns'; - import { execHostStatusKey, execHostStatus } from '@/components/exec/log/const'; + import { execHostStatusKey, ExecHostStatus } from '@/components/exec/log/const'; import { useDictStore } from '@/store'; import { useExpandable } from '@/hooks/table'; import { dateFormat, formatDuration } from '@/utils'; @@ -139,7 +139,7 @@ hostLogId: record.id }); Message.success('已中断'); - record.status = execHostStatus.INTERRUPTED; + record.status = ExecHostStatus.INTERRUPTED; } catch (e) { } finally { setLoading(false); diff --git a/orion-visor-ui/src/views/exec/exec-command-log/components/exec-command-log-table.vue b/orion-visor-ui/src/views/exec/exec-command-log/components/exec-command-log-table.vue index f8a5adad..a44e3b07 100644 --- a/orion-visor-ui/src/views/exec/exec-command-log/components/exec-command-log-table.vue +++ b/orion-visor-ui/src/views/exec/exec-command-log/components/exec-command-log-table.vue @@ -177,7 +177,7 @@ type="text" size="mini" status="danger" - :disabled="record.status !== execStatus.WAITING && record.status !== execStatus.RUNNING"> + :disabled="record.status !== ExecStatus.WAITING && record.status !== ExecStatus.RUNNING"> 中断 @@ -219,7 +219,7 @@ import { Message } from '@arco-design/web-vue'; import useLoading from '@/hooks/loading'; import columns from '../types/table.columns'; - import { execStatus, execStatusKey } from '@/components/exec/log/const'; + import { ExecStatus, execStatusKey } from '@/components/exec/log/const'; import { useExpandable, useTablePagination, useRowSelection } from '@/hooks/table'; import { useDictStore } from '@/store'; import { dateFormat, formatDuration } from '@/utils'; @@ -312,7 +312,7 @@ logId: record.id }); Message.success('已中断'); - record.status = execStatus.COMPLETED; + record.status = ExecStatus.COMPLETED; } catch (e) { } finally { setLoading(false); @@ -345,7 +345,7 @@ // 加载状态 const pullExecStatus = async () => { const unCompleteIdList = tableRenderData.value - .filter(s => s.status === execStatus.WAITING || s.status === execStatus.RUNNING) + .filter(s => s.status === ExecStatus.WAITING || s.status === ExecStatus.RUNNING) .map(s => s.id); if (!unCompleteIdList.length) { return; diff --git a/orion-visor-ui/src/views/exec/exec-job-log/components/exec-job-host-log-table.vue b/orion-visor-ui/src/views/exec/exec-job-log/components/exec-job-host-log-table.vue index 77f9aa9a..718c656a 100644 --- a/orion-visor-ui/src/views/exec/exec-job-log/components/exec-job-host-log-table.vue +++ b/orion-visor-ui/src/views/exec/exec-job-log/components/exec-job-host-log-table.vue @@ -73,7 +73,7 @@ type="text" size="mini" status="danger" - :disabled="record.status !== execHostStatus.WAITING && record.status !== execHostStatus.RUNNING"> + :disabled="record.status !== ExecHostStatus.WAITING && record.status !== ExecHostStatus.RUNNING"> 中断 @@ -103,7 +103,7 @@ + + + + diff --git a/orion-visor-ui/src/views/exec/exec-job/index.vue b/orion-visor-ui/src/views/exec/exec-job/index.vue index c04bae0a..e58f81a1 100644 --- a/orion-visor-ui/src/views/exec/exec-job/index.vue +++ b/orion-visor-ui/src/views/exec/exec-job/index.vue @@ -5,6 +5,7 @@ @open-add="() => drawer.openAdd()" @open-update="(e) => drawer.openUpdate(e)" @open-detail="(e) => detail.open(e)" + @update-exec-user="(e) => execUserModal.open(e)" @test-cron="openNextCron" /> + + @@ -43,6 +46,7 @@ import { CronNextTimes, dictKeys } from './types/const'; import ExecJobTable from './components/exec-job-table.vue'; import ExecJobFormDrawer from './components/exec-job-form-drawer.vue'; + import ExecUserUpdateModal from './components/exec-user-update-modal.vue'; import ExecJobDetailDrawer from './components/exec-job-detail-drawer.vue'; import AuthorizedHostModal from '@/components/asset/host/authorized-host-modal/index.vue'; import ExecTemplateModal from '@/components/exec/template/modal/index.vue'; @@ -53,6 +57,7 @@ const table = ref(); const drawer = ref(); const detail = ref(); + const execUserModal = ref(); const nextCron = ref(); const genModal = ref(); const templateModal = ref(); diff --git a/orion-visor-ui/src/views/exec/exec-job/types/table.columns.ts b/orion-visor-ui/src/views/exec/exec-job/types/table.columns.ts index 3ffe8b1a..bedabaa8 100644 --- a/orion-visor-ui/src/views/exec/exec-job/types/table.columns.ts +++ b/orion-visor-ui/src/views/exec/exec-job/types/table.columns.ts @@ -32,6 +32,14 @@ const columns = [ minWidth: 238, ellipsis: true, tooltip: true, + }, { + title: '执行用户', + dataIndex: 'execUsername', + slotName: 'execUsername', + align: 'left', + ellipsis: true, + tooltip: true, + width: 124, }, { title: '任务状态', dataIndex: 'status',