🎨 修改批量执行模块格式.

This commit is contained in:
lijiahangmax
2024-04-11 00:06:43 +08:00
parent e2c0b9c44a
commit bcef835de3
20 changed files with 113 additions and 213 deletions

View File

@@ -8,7 +8,7 @@
<script lang="ts">
export default {
name: 'execExecLogView'
name: 'execCommandLogView'
};
</script>

View File

@@ -96,13 +96,13 @@
<script lang="ts">
export default {
name: 'execHostLogTable'
name: 'execCommandHostLogTable'
};
</script>
<script lang="ts" setup>
import type { ExecLogQueryResponse, ExecHostLogQueryResponse } from '@/api/exec/exec-log';
import { deleteExecHostLog } from '@/api/exec/exec-log';
import type { ExecCommandLogQueryResponse, ExecCommandHostLogQueryResponse } from '@/api/exec/exec-command-log';
import { deleteExecCommandHostLog } from '@/api/exec/exec-command-log';
import { Message } from '@arco-design/web-vue';
import useLoading from '@/hooks/loading';
import columns from '../types/host-table.columns';
@@ -110,12 +110,13 @@
import { useDictStore } from '@/store';
import { useExpandable } from '@/types/table';
import { dateFormat, formatDuration } from '@/utils';
import { downloadExecLogFile, interruptHostExec } from '@/api/exec/exec';
import { downloadExecLogFile } from '@/api/exec/exec';
import { interruptHostExecCommand } from '@/api/exec/exec-command';
import { copy } from '@/hooks/copy';
import { downloadFile } from '@/utils/file';
const props = defineProps<{
row: ExecLogQueryResponse;
row: ExecCommandLogQueryResponse;
}>();
const emits = defineEmits(['viewCommand', 'viewParams']);
@@ -131,11 +132,11 @@
};
//
const interruptedHost = async (record: ExecHostLogQueryResponse) => {
const interruptedHost = async (record: ExecCommandHostLogQueryResponse) => {
try {
setLoading(true);
//
await interruptHostExec({
await interruptHostExecCommand({
hostLogId: record.id
});
Message.success('已中断');
@@ -153,7 +154,7 @@
try {
setLoading(true);
//
await deleteExecHostLog(id);
await deleteExecCommandHostLog(id);
Message.success('删除成功');
} catch (e) {
} finally {

View File

@@ -56,17 +56,17 @@
<script lang="ts">
export default {
name: 'execLogClearModal'
name: 'execCommandLogClearModal'
};
</script>
<script lang="ts" setup>
import type { ExecLogQueryRequest } from '@/api/exec/exec-log';
import type { ExecCommandLogQueryRequest } from '@/api/exec/exec-command-log';
import { ref } from 'vue';
import useLoading from '@/hooks/loading';
import useVisible from '@/hooks/visible';
import { execStatusKey } from '../types/const';
import { getExecLogCount, clearExecLog } from '@/api/exec/exec-log';
import { getExecCommandLogCount, clearExecCommandLog } from '@/api/exec/exec-command-log';
import { Message, Modal } from '@arco-design/web-vue';
import { useDictStore } from '@/store';
import UserSelector from '@/components/user/user/selector/index.vue';
@@ -78,9 +78,9 @@
const { toOptions } = useDictStore();
const formRef = ref<any>();
const formModel = ref<ExecLogQueryRequest>({});
const formModel = ref<ExecCommandLogQueryRequest>({});
const defaultForm = (): ExecLogQueryRequest => {
const defaultForm = (): ExecCommandLogQueryRequest => {
return {
id: undefined,
userId: undefined,
@@ -108,7 +108,7 @@
setLoading(true);
try {
//
const { data } = await getExecLogCount(formModel.value);
const { data } = await getExecCommandLogCount(formModel.value);
if (data) {
//
doClear(data);
@@ -132,7 +132,7 @@
setLoading(true);
try {
//
await clearExecLog(formModel.value);
await clearExecCommandLog(formModel.value);
emits('clear');
//
setVisible(false);

View File

@@ -113,9 +113,9 @@
@expand="loadHostExecData">
<!-- 展开表格 -->
<template #expand-row="{ record }">
<exec-host-log-table :row="record"
@view-command="s => emits('viewCommand', s)"
@view-params="s => emits('viewParams', s)" />
<exec-command-host-log-table :row="record"
@view-command="s => emits('viewCommand', s)"
@view-params="s => emits('viewParams', s)" />
</template>
<!-- 执行命令 -->
<template #command="{ record }">
@@ -171,7 +171,7 @@
<a-popconfirm content="确定要中断执行吗?"
position="left"
type="warning"
@ok="doInterruptExec(record)">
@ok="doInterruptExecCommand(record)">
<a-button v-permission="['asset:exec:interrupt-exec']"
type="text"
size="mini"
@@ -200,15 +200,21 @@
<script lang="ts">
export default {
name: 'execLogTable'
name: 'execCommandLogTable'
};
</script>
<script lang="ts" setup>
import type { TableData } from '@arco-design/web-vue/es/table/interface';
import type { ExecLogQueryRequest, ExecLogQueryResponse } from '@/api/exec/exec-log';
import type { ExecCommandLogQueryRequest, ExecCommandLogQueryResponse } from '@/api/exec/exec-command-log';
import { reactive, ref, onMounted, onUnmounted } from 'vue';
import { batchDeleteExecLog, deleteExecLog, getExecHostLogList, getExecLogPage, getExecLogStatus } from '@/api/exec/exec-log';
import {
batchDeleteExecCommandLog,
deleteExecCommandLog,
getExecCommandHostLogList,
getExecCommandLogPage,
getExecCommandLogStatus
} from '@/api/exec/exec-command-log';
import { Message } from '@arco-design/web-vue';
import useLoading from '@/hooks/loading';
import columns from '../types/table.columns';
@@ -216,9 +222,9 @@
import { useExpandable, usePagination, useRowSelection } from '@/types/table';
import { useDictStore } from '@/store';
import { dateFormat, formatDuration } from '@/utils';
import { interruptExec, reExecCommand } from '@/api/exec/exec';
import { reExecCommand, interruptExecCommand } from '@/api/exec/exec-command';
import UserSelector from '@/components/user/user/selector/index.vue';
import ExecHostLogTable from './exec-host-log-table.vue';
import ExecCommandHostLogTable from './exec-command-host-log-table.vue';
const emits = defineEmits(['viewCommand', 'viewParams', 'viewLog', 'openClear']);
@@ -231,8 +237,8 @@
const intervalId = ref();
const tableRef = ref();
const selectedKeys = ref<number[]>([]);
const tableRenderData = ref<ExecLogQueryResponse[]>([]);
const formModel = reactive<ExecLogQueryRequest>({
const tableRenderData = ref<ExecCommandLogQueryResponse[]>([]);
const formModel = reactive<ExecCommandLogQueryRequest>({
id: undefined,
userId: undefined,
description: undefined,
@@ -251,7 +257,7 @@
try {
setLoading(true);
//
await batchDeleteExecLog(selectedKeys.value);
await batchDeleteExecCommandLog(selectedKeys.value);
Message.success(`成功删除 ${selectedKeys.value.length} 条数据`);
selectedKeys.value = [];
//
@@ -269,7 +275,7 @@
try {
setLoading(true);
//
await deleteExecLog(id);
await deleteExecCommandLog(id);
Message.success('删除成功');
//
fetchTableData();
@@ -280,7 +286,7 @@
};
//
const doReExecCommand = async (record: ExecLogQueryResponse) => {
const doReExecCommand = async (record: ExecCommandLogQueryResponse) => {
try {
setLoading(true);
//
@@ -296,11 +302,11 @@
};
//
const doInterruptExec = async (record: ExecLogQueryResponse) => {
const doInterruptExecCommand = async (record: ExecCommandLogQueryResponse) => {
try {
setLoading(true);
//
await interruptExec({
await interruptExecCommand({
logId: record.id
});
Message.success('已中断');
@@ -317,7 +323,7 @@
return;
}
//
const { data } = await getExecHostLogList(record.id);
const { data } = await getExecCommandHostLogList(record.id);
record.hosts = data;
};
@@ -330,7 +336,7 @@
return;
}
//
const { data: { logList, hostList } } = await getExecLogStatus(unCompleteIdList);
const { data: { logList, hostList } } = await getExecCommandLogStatus(unCompleteIdList);
//
logList.forEach(s => {
const tableRow = tableRenderData.value.find(r => r.id === s.id);
@@ -359,10 +365,10 @@
};
//
const doFetchTableData = async (request: ExecLogQueryRequest) => {
const doFetchTableData = async (request: ExecCommandLogQueryRequest) => {
try {
setLoading(true);
const { data } = await getExecLogPage(request);
const { data } = await getExecCommandLogPage(request);
tableRenderData.value = data.rows;
pagination.total = data.total;
pagination.current = request.page;

View File

@@ -1,14 +1,14 @@
<template>
<div class="layout-container" v-if="render">
<!-- 列表-表格 -->
<exec-log-table ref="tableRef"
@view-command="viewCommand"
@view-params="viewParams"
@view-log="viewLog"
@open-clear="openClearModal" />
<exec-command-log-table ref="tableRef"
@view-command="viewCommand"
@view-params="viewParams"
@view-log="viewLog"
@open-clear="openClearModal" />
<!-- 清理模态框 -->
<exec-log-clear-modal ref="clearModal"
@clear="clearCallback" />
<exec-command-log-clear-modal ref="clearModal"
@clear="clearCallback" />
<!-- 执行日志模态框 -->
<exec-log-panel-modal ref="logModal" />
<!-- json 模态框 -->
@@ -23,7 +23,7 @@
<script lang="ts">
export default {
name: 'execLog'
name: 'execCommandLog'
};
</script>
@@ -33,8 +33,8 @@
import { dictKeys } from './types/const';
import { useRouter } from 'vue-router';
import { openNewRoute } from '@/router';
import ExecLogTable from './components/exec-log-table.vue';
import ExecLogClearModal from './components/exec-log-clear-modal.vue';
import ExecCommandLogTable from './components/exec-command-log-table.vue';
import ExecCommandLogClearModal from './components/exec-command-log-clear-modal.vue';
import JsonEditorModal from '@/components/view/json-editor/modal/index.vue';
import ShellEditorModal from '@/components/view/shell-editor/modal/index.vue';
import ExecLogPanelModal from '@/components/exec/log/panel-modal/index.vue';
@@ -68,7 +68,7 @@
if (newWindow) {
//
openNewRoute({
name: 'execLogView',
name: 'execCommandLogView',
query: {
id
}

View File

@@ -25,7 +25,7 @@
<script lang="ts">
export default {
name: 'execPanelEditor'
name: 'execCommandPanelEditor'
};
</script>

View File

@@ -23,7 +23,7 @@
<script lang="ts">
export default {
name: 'execPanelForm'
name: 'execCommandPanelForm'
};
</script>

View File

@@ -38,15 +38,15 @@
<script lang="ts">
export default {
name: 'execPanelHistory'
name: 'execCommandPanelHistory'
};
</script>
<script lang="ts" setup>
import type { ExecLogQueryResponse } from '@/api/exec/exec-log';
import type { ExecCommandRequest } from '@/api/exec/exec';
import type { ExecCommandLogQueryResponse } from '@/api/exec/exec-command-log';
import type { ExecCommandRequest } from '@/api/exec/exec-command';
import { onMounted, ref } from 'vue';
import { getExecLogHistory } from '@/api/exec/exec-log';
import { getExecCommandLogHistory } from '@/api/exec/exec-command-log';
import { historyCount } from '../types/const';
import useLoading from '@/hooks/loading';
@@ -54,7 +54,7 @@
const { loading, setLoading } = useLoading(true);
const historyLogs = ref<Array<ExecLogQueryResponse>>([]);
const historyLogs = ref<Array<ExecCommandLogQueryResponse>>([]);
//
const add = (record: ExecCommandRequest) => {
@@ -67,7 +67,7 @@
parameterSchema: record.parameterSchema,
timeout: record.timeout,
hostIdList: record.hostIdList
} as ExecLogQueryResponse);
} as ExecCommandLogQueryResponse);
} else {
//
const his = historyLogs.value[index];
@@ -78,7 +78,7 @@
parameterSchema: record.parameterSchema,
timeout: record.timeout,
hostIdList: record.hostIdList
} as ExecLogQueryResponse);
} as ExecCommandLogQueryResponse);
}
};
@@ -88,7 +88,7 @@
const fetchExecHistory = async () => {
setLoading(true);
try {
const { data } = await getExecLogHistory(historyCount);
const { data } = await getExecCommandLogHistory(historyCount);
historyLogs.value = data;
} catch (e) {
} finally {

View File

@@ -2,10 +2,10 @@
<!-- 命令执行 -->
<a-spin class="exec-container" :loading="loading">
<!-- 执行参数 -->
<exec-panel-form class="exec-form-container"
:schema-count="parameterSchema.length"
@exec="execCommand"
@reset="resetForm">
<exec-command-panel-form class="exec-form-container"
:schema-count="parameterSchema.length"
@exec="execCommand"
@reset="resetForm">
<!-- 命令表单 -->
<template #form>
<a-form :model="formModel"
@@ -67,18 +67,18 @@
</a-form-item>
</a-form>
</template>
</exec-panel-form>
</exec-command-panel-form>
<!-- 执行命令 -->
<exec-panel-editor class="exec-command-container"
@selected="setWithTemplate">
<exec-command-panel-editor class="exec-command-container"
@selected="setWithTemplate">
<exec-editor v-model="formModel.command"
theme="vs-dark"
:parameter="parameterSchema" />
</exec-panel-editor>
</exec-command-panel-editor>
<!-- 执行历史 -->
<exec-panel-history class="exec-history-container"
ref="historyRef"
@selected="setWithExecLog" />
<exec-command-panel-history class="exec-history-container"
ref="historyRef"
@selected="setWithExecLog" />
<!-- 主机模态框 -->
<authorized-host-modal ref="hostModal"
@selected="setSelectedHost" />
@@ -92,20 +92,20 @@
</script>
<script lang="ts" setup>
import type { ExecCommandRequest } from '@/api/exec/exec';
import type { ExecCommandRequest } from '@/api/exec/exec-command';
import type { TemplateParam } from '@/components/view/exec-editor/const';
import type { ExecTemplateQueryResponse } from '@/api/exec/exec-template';
import type { ExecLogQueryResponse } from '@/api/exec/exec-log';
import type { ExecCommandLogQueryResponse } from '@/api/exec/exec-command-log';
import { ref } from 'vue';
import formRules from '../types/form.rules';
import useLoading from '@/hooks/loading';
import { batchExecCommand } from '@/api/exec/exec';
import { batchExecCommand } from '@/api/exec/exec-command';
import { Message } from '@arco-design/web-vue';
import ExecEditor from '@/components/view/exec-editor/index.vue';
import AuthorizedHostModal from '@/components/asset/host/authorized-host-modal/index.vue';
import ExecPanelForm from './exec-panel-form.vue';
import ExecPanelHistory from './exec-panel-history.vue';
import ExecPanelEditor from './exec-panel-editor.vue';
import ExecCommandPanelForm from './exec-command-panel-form.vue';
import ExecCommandPanelHistory from './exec-command-panel-history.vue';
import ExecCommandPanelEditor from './exec-command-panel-editor.vue';
const emits = defineEmits(['submit']);
@@ -156,7 +156,7 @@
};
//
const setWithExecLog = (record: ExecLogQueryResponse) => {
const setWithExecLog = (record: ExecCommandLogQueryResponse) => {
formModel.value = {
...formModel.value,
command: record.command,

View File

@@ -2,7 +2,7 @@
<div class="layout-container full">
<!-- 执行面板 -->
<div v-show="!logVisible" class="panel-wrapper">
<exec-panel @submit="openLog" />
<exec-command-panel @submit="openLog" />
</div>
<!-- 执行日志 -->
<div v-if="logVisible" class="panel-wrapper">
@@ -20,12 +20,12 @@
</script>
<script lang="ts" setup>
import type { ExecLogQueryResponse } from '@/api/exec/exec-log';
import type { ExecCommandLogQueryResponse } from '@/api/exec/exec-command-log';
import { nextTick, onMounted, ref } from 'vue';
import useVisible from '@/hooks/visible';
import { useDictStore } from '@/store';
import { dictKeys } from '@/views/exec/exec-log/types/const';
import ExecPanel from './components/exec-panel.vue';
import { dictKeys } from '@/views/exec/exec-command-log/types/const';
import ExecCommandPanel from './components/exec-command-panel.vue';
import ExecLogPanel from '@/components/exec/log/panel/index.vue';
const { visible: logVisible, setVisible: setLogVisible } = useVisible();
@@ -33,7 +33,7 @@
const log = ref();
// 打开日志
const openLog = (record: ExecLogQueryResponse) => {
const openLog = (record: ExecCommandLogQueryResponse) => {
setLogVisible(true);
nextTick(() => {
log.value.open(record);

View File

@@ -91,13 +91,13 @@
<script lang="ts" setup>
import type { TemplateParam } from '@/components/view/exec-editor/const';
import type { ExecTemplateQueryResponse } from '@/api/exec/exec-template';
import type { ExecCommandRequest } from '@/api/exec/exec';
import type { ExecCommandRequest } from '@/api/exec/exec-command';
import { onUnmounted, ref } from 'vue';
import useLoading from '@/hooks/loading';
import useVisible from '@/hooks/visible';
import formRules from '../../exec-command/types/form.rules';
import { Message } from '@arco-design/web-vue';
import { batchExecCommand } from '@/api/exec/exec';
import { batchExecCommand } from '@/api/exec/exec-command';
import ExecEditor from '@/components/view/exec-editor/index.vue';
const emits = defineEmits(['openHost']);