diff --git a/src/components/tall/left/Projects.vue b/src/components/tall/left/Projects.vue index 3efa98c..be09241 100644 --- a/src/components/tall/left/Projects.vue +++ b/src/components/tall/left/Projects.vue @@ -92,6 +92,8 @@ const endTime = computed(() => store.state.layout.endTime); // 当前选择时 const refreshProjects = computed(() => store.state.layout.refreshProjects); // 刷新项目列表 +const projectList = ref([]); + // 如果有缓存,则将缓存信息放到store中,一般用于页面刷新 if (sessionProject) { if (!projectInfo.value.id) { @@ -141,10 +143,22 @@ async function getProjectsList() { item.show = true; sonItem.show = true; } + + if (sonItem.sonProjectList) { + sonItem.sonProjectList.forEach(val => { + val.show = false; + if (val.id === projectId) { + item.show = true; + sonItem.show = true; + val.show = true; + } + }); + } }); } }); + projectList.value = [...data]; store.commit('projects/setProjects', data); } catch (error) { message.info(error); @@ -152,15 +166,43 @@ async function getProjectsList() { } } -function toDetail(item) { - item.show = true; +function toDetail(data) { + data.show = true; const obj = { - id: item.id, - name: item.name, - url: item.url, + id: data.id, + name: data.name, + url: data.url, }; + projectList.value.forEach(item => { + item.show = false; + if (item.id === data.id) { + item.show = true; + } + if (item.sonProjectList) { + item.sonProjectList.forEach(sonItem => { + sonItem.show = false; + if (sonItem.id === data.id) { + item.show = true; + sonItem.show = true; + } + + if (sonItem.sonProjectList) { + sonItem.sonProjectList.forEach(val => { + val.show = false; + if (val.id === data.id) { + item.show = true; + sonItem.show = true; + val.show = true; + } + }); + } + }); + } + }); + + store.commit('projects/setProjects', projectList.value); store.commit('projects/setProject', obj); store.commit('task/setTaskDetail', null); }