update:定时刷新左侧任务执行树的状态
This commit is contained in:
@@ -284,7 +284,7 @@ const filterParamChangeFun = async (data: any) => {
|
||||
// currentNodeInfo.value = {};
|
||||
localStorage.setItem('CURRENT_TASK_RUN_INFO', '');
|
||||
filterParam.value = data;
|
||||
await getTaskRunTreeDataFun(data);
|
||||
dataSource.value = await getTaskRunTreeDataFun(data);
|
||||
|
||||
if (dataSource.value.length) {
|
||||
if (
|
||||
@@ -302,6 +302,8 @@ const filterParamChangeFun = async (data: any) => {
|
||||
|
||||
const dataSource = ref<any[]>([]);
|
||||
const getTaskRunTreeDataFun = async (data: any) => {
|
||||
let result: any = [];
|
||||
|
||||
if (data.projectName && data.phaseName) {
|
||||
const res: any = await getTaskRunTreeApi({
|
||||
projectNodeId: data.projectName,
|
||||
@@ -373,11 +375,11 @@ const getTaskRunTreeDataFun = async (data: any) => {
|
||||
});
|
||||
|
||||
if (res && res.code === 200) {
|
||||
dataSource.value = res.data;
|
||||
result = res.data;
|
||||
}
|
||||
} else {
|
||||
dataSource.value = [];
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -682,16 +684,49 @@ defineExpose({
|
||||
setCurrentNodeStatusFun,
|
||||
});
|
||||
|
||||
const timer = ref<any>();
|
||||
|
||||
// 固定时间刷新左侧树的状态
|
||||
const refreshTreeDataFun = async () => {
|
||||
const newTreeData = await getTaskRunTreeDataFun(filterParam.value);
|
||||
|
||||
asyncTreeData(dataSource.value, newTreeData);
|
||||
console.log(newTreeData, 'newTreeData');
|
||||
};
|
||||
|
||||
const asyncTreeData = (list: any, data: any) => {
|
||||
for (let i = 0; i < list.length; i++) {
|
||||
for (const key in list[i]) {
|
||||
if (key != 'children') {
|
||||
list[i][key] = data[i][key];
|
||||
}
|
||||
}
|
||||
|
||||
if (list[i]?.children?.length) {
|
||||
asyncTreeData(list[i]?.children, data[i]?.children);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
document.addEventListener('click', clearTreeMenuFun);
|
||||
|
||||
nextTick(() => {
|
||||
restoreSelectionFun();
|
||||
});
|
||||
|
||||
// 5分钟获取一次最新树的数据更新组件
|
||||
timer.value = setInterval(
|
||||
() => {
|
||||
refreshTreeDataFun();
|
||||
},
|
||||
60 * 1000 * 5
|
||||
);
|
||||
});
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
document.removeEventListener('click', clearTreeMenuFun);
|
||||
clearInterval(timer.value);
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user