update:定时刷新左侧任务执行树的状态

This commit is contained in:
2026-01-27 10:19:28 +08:00
parent 3c8d9b1a93
commit 4a8bd48d0a

View File

@@ -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>