<template>
|
<el-card shadow="never" :body-style="{ padding: 0 }">
|
<template #header>
|
<el-row justify="space-between">
|
<div>
|
<div><el-text tag="b" size="large">自动评估任务</el-text></div>
|
<el-text size="small" type="info">显示当前正在进行的自动评估任务状态</el-text>
|
</div>
|
<el-button
|
icon="Refresh"
|
type="primary"
|
size="default"
|
:loading="loading"
|
@click="fetchTask"
|
>刷新任务</el-button
|
>
|
</el-row>
|
<el-row>
|
<el-button type="default" size="default" @click="newTestTask">新增测试任务</el-button>
|
<el-button type="default" size="default" @click="startNewTestTask"
|
>新建并运行一个测试任务</el-button
|
>
|
<el-button type="default" size="default" @click="shutDownTask"
|
>强制关闭所有测试任务</el-button
|
>
|
</el-row>
|
</template>
|
<el-scrollbar height="70vh" class="scrollbar">
|
<template v-for="(v, i) in taskList" :key="i">
|
<FYBgTaskCard
|
:model="v"
|
@start="startTask"
|
@shutDown="shutDownTask"
|
@remove="removeTask"
|
@gotoResult="gotoResult"
|
></FYBgTaskCard>
|
</template>
|
</el-scrollbar>
|
</el-card>
|
</template>
|
<script>
|
/**
|
* 自动评估任务管理
|
*/
|
import { useFetchData } from '@/composables/fetchData';
|
import bgtaskApi from '@/api/fysp/bgtaskApi';
|
import { enumBgTask, BG_TASK_TYPE } from '@/enum/bgTask';
|
|
export default {
|
setup() {
|
const { loading, fetchData } = useFetchData();
|
return { loading, fetchData };
|
},
|
data() {
|
return {
|
taskList: [],
|
taskIndex: 0
|
};
|
},
|
methods: {
|
_getParam(taskStatus) {
|
return {
|
type: taskStatus.type,
|
id: taskStatus.id
|
};
|
},
|
fetchTask() {
|
this.fetchData((page, pageSize) => {
|
return bgtaskApi
|
.fetchTaskStatus({
|
type: BG_TASK_TYPE.TEST.name
|
})
|
.then((res) => {
|
this.taskList = res.data;
|
});
|
});
|
},
|
startTask(taskStatus) {
|
this.fetchData((page, pageSize) => {
|
return bgtaskApi.startTask(this._getParam(taskStatus)).then((res) => {
|
this.taskList = this.taskList.concat(res.data);
|
});
|
});
|
},
|
newTestTask() {
|
this.fetchData((page, pageSize) => {
|
return bgtaskApi.newTestTask(`Test-Task-${++this.taskIndex}`).then((res) => {
|
this.taskList = this.taskList.concat(res.data);
|
});
|
});
|
},
|
startNewTestTask() {
|
this.fetchData((page, pageSize) => {
|
return bgtaskApi.startNewTestTask(`Test-Task-${++this.taskIndex}`).then((res) => {
|
this.taskList = this.taskList.concat(res.data);
|
});
|
});
|
},
|
shutDownTask(taskStatus) {
|
this.fetchData((page, pageSize) => {
|
return bgtaskApi.shutDownTask(this._getParam(taskStatus)).then((res) => {
|
res.data.forEach((e) => {
|
let v = this.taskList.find((value) => {
|
return value.id == e.id;
|
});
|
const i = this.taskList.indexOf(v);
|
this.taskList[i] = e;
|
});
|
});
|
});
|
},
|
removeTask(taskStatus){
|
|
},
|
gotoResult(taskStatus) {
|
|
}
|
},
|
};
|
</script>
|
<style scoped>
|
.scrollbar {
|
padding: 8px;
|
}
|
</style>
|