✨ 文件上传详情.
This commit is contained in:
@@ -467,7 +467,7 @@ public class UploadTaskServiceImpl implements UploadTaskService {
|
|||||||
.code(s.getCode())
|
.code(s.getCode())
|
||||||
.name(s.getName())
|
.name(s.getName())
|
||||||
.address(s.getAddress())
|
.address(s.getAddress())
|
||||||
.files(hostFiles.get(s.getId()))
|
.files(hostFiles.getOrDefault(s.getId(), Lists.empty()))
|
||||||
.build())
|
.build())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
task.setHosts(hosts);
|
task.setHosts(hosts);
|
||||||
|
|||||||
@@ -86,6 +86,33 @@
|
|||||||
const filesRef = ref();
|
const filesRef = ref();
|
||||||
const hostModal = ref();
|
const hostModal = ref();
|
||||||
|
|
||||||
|
// 打开日志
|
||||||
|
const openLog = async (id: number) => {
|
||||||
|
setLoading(true);
|
||||||
|
taskId.value = id;
|
||||||
|
taskStatus.value = UploadTaskStepStatus.WAITING;
|
||||||
|
try {
|
||||||
|
// 查询任务
|
||||||
|
const { data } = await getUploadTask(id);
|
||||||
|
task.value = data;
|
||||||
|
selectedHost.value = data.hosts[0].id;
|
||||||
|
// 设置任务状态
|
||||||
|
if (data.status === UploadTaskStatus.FINISHED
|
||||||
|
|| data.status === UploadTaskStatus.CANCELED) {
|
||||||
|
taskStatus.value = UploadTaskStepStatus.FINISHED;
|
||||||
|
} else if (data.status === UploadTaskStatus.FAILED) {
|
||||||
|
taskStatus.value = UploadTaskStepStatus.FAILED;
|
||||||
|
} else {
|
||||||
|
taskStatus.value = UploadTaskStepStatus.UPLOADING;
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
} finally {
|
||||||
|
setLoading(false);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
defineExpose({ openLog });
|
||||||
|
|
||||||
// 设置选中主机
|
// 设置选中主机
|
||||||
const setSelectedHost = (hosts: Array<number>) => {
|
const setSelectedHost = (hosts: Array<number>) => {
|
||||||
formModel.value.hostIdList = hosts;
|
formModel.value.hostIdList = hosts;
|
||||||
@@ -196,9 +223,8 @@
|
|||||||
}
|
}
|
||||||
const taskStatusData = data[0];
|
const taskStatusData = data[0];
|
||||||
// 设置任务状态
|
// 设置任务状态
|
||||||
if (taskStatusData.status === UploadTaskStatus.FINISHED) {
|
if (taskStatusData.status === UploadTaskStatus.FINISHED
|
||||||
taskStatus.value = UploadTaskStepStatus.FINISHED;
|
|| taskStatusData.status === UploadTaskStatus.CANCELED) {
|
||||||
} else if (taskStatusData.status === UploadTaskStatus.CANCELED) {
|
|
||||||
taskStatus.value = UploadTaskStepStatus.FINISHED;
|
taskStatus.value = UploadTaskStepStatus.FINISHED;
|
||||||
} else if (taskStatusData.status === UploadTaskStatus.FAILED) {
|
} else if (taskStatusData.status === UploadTaskStatus.FAILED) {
|
||||||
taskStatus.value = UploadTaskStepStatus.FAILED;
|
taskStatus.value = UploadTaskStepStatus.FAILED;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="layout-container upload-container">
|
<div class="layout-container upload-container">
|
||||||
<!-- 上传面板 -->
|
<!-- 上传面板 -->
|
||||||
<upload-panel />
|
<upload-panel ref="panel" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -12,17 +12,29 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted } from 'vue';
|
import { ref, onMounted } from 'vue';
|
||||||
import { useDictStore } from '@/store';
|
import { useDictStore } from '@/store';
|
||||||
import { dictKeys } from './types/const';
|
import { dictKeys } from './types/const';
|
||||||
|
import { useRoute } from 'vue-router';
|
||||||
import UploadPanel from './components/upload-panel.vue';
|
import UploadPanel from './components/upload-panel.vue';
|
||||||
|
|
||||||
|
const route = useRoute();
|
||||||
|
|
||||||
|
const panel = ref();
|
||||||
|
|
||||||
// 加载字典值
|
// 加载字典值
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
const dictStore = useDictStore();
|
const dictStore = useDictStore();
|
||||||
await dictStore.loadKeys(dictKeys);
|
await dictStore.loadKeys(dictKeys);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
onMounted(async () => {
|
||||||
|
const idParam = route.query.id;
|
||||||
|
if (idParam) {
|
||||||
|
await panel.value?.openLog(Number.parseInt(idParam as string));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|||||||
@@ -36,9 +36,9 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
const isParam = route.query.id;
|
const idParam = route.query.id;
|
||||||
if (isParam) {
|
if (idParam) {
|
||||||
init(Number.parseInt(isParam as string));
|
init(Number.parseInt(idParam as string));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -140,7 +140,7 @@
|
|||||||
<a-button v-permission="['asset:upload-task:query']"
|
<a-button v-permission="['asset:upload-task:query']"
|
||||||
type="text"
|
type="text"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="emits('openDetail', record.id)">
|
@click="$router.push({ name: 'batchUpload', query: { id: record.id } })">
|
||||||
详情
|
详情
|
||||||
</a-button>
|
</a-button>
|
||||||
<!-- 取消 -->
|
<!-- 取消 -->
|
||||||
@@ -192,7 +192,7 @@
|
|||||||
import { copy } from '@/hooks/copy';
|
import { copy } from '@/hooks/copy';
|
||||||
import UserSelector from '@/components/user/user/selector/index.vue';
|
import UserSelector from '@/components/user/user/selector/index.vue';
|
||||||
|
|
||||||
const emits = defineEmits(['openClear', 'openDetail']);
|
const emits = defineEmits(['openClear']);
|
||||||
|
|
||||||
const pagination = usePagination();
|
const pagination = usePagination();
|
||||||
const rowSelection = useRowSelection();
|
const rowSelection = useRowSelection();
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
<div class="layout-container" v-if="render">
|
<div class="layout-container" v-if="render">
|
||||||
<!-- 列表-表格 -->
|
<!-- 列表-表格 -->
|
||||||
<upload-task-table ref="table"
|
<upload-task-table ref="table"
|
||||||
@open-clear="(e) => clear.open(e)"
|
@open-clear="(e) => clear.open(e)" />
|
||||||
@open-detail="(e) => detail.open(e)" />
|
|
||||||
<!-- 清理模态框 -->
|
<!-- 清理模态框 -->
|
||||||
<upload-task-clear-modal ref="clear"
|
<upload-task-clear-modal ref="clear"
|
||||||
@clear="clearCallback" />
|
@clear="clearCallback" />
|
||||||
@@ -25,7 +24,6 @@
|
|||||||
|
|
||||||
const render = ref(false);
|
const render = ref(false);
|
||||||
const table = ref();
|
const table = ref();
|
||||||
const detail = ref();
|
|
||||||
const clear = ref();
|
const clear = ref();
|
||||||
|
|
||||||
// 清理回调
|
// 清理回调
|
||||||
|
|||||||
@@ -36,9 +36,9 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
const isParam = route.query.id;
|
const idParam = route.query.id;
|
||||||
if (isParam) {
|
if (idParam) {
|
||||||
init(Number.parseInt(isParam as string));
|
init(Number.parseInt(idParam as string));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user