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" />
genModal.open(e)" />
+
+
@@ -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',