diff --git a/src/components/Graph.vue b/src/components/Graph.vue index e8fdc841..c7ff2f91 100644 --- a/src/components/Graph.vue +++ b/src/components/Graph.vue @@ -117,6 +117,9 @@ limitations under the License. --> menus.value.style.top = params.event.offsetY + 2 + "px"; } }); + if (props.option.series.type === "sankey") { + return; + } document.addEventListener( "click", () => { diff --git a/src/store/modules/topology.ts b/src/store/modules/topology.ts index 960a2579..425e0ec3 100644 --- a/src/store/modules/topology.ts +++ b/src/store/modules/topology.ts @@ -191,8 +191,12 @@ export const topologyStore = defineStore({ return res.data.data.topology; }, async getInstanceTopology() { - const serverServiceId = useSelectorStore().currentService.id; - const clientServiceId = useSelectorStore().currentDestService.id; + const { currentService, currentDestService } = useSelectorStore(); + const serverServiceId = currentService && currentService.id; + const clientServiceId = currentDestService && currentDestService.id; + if (!(serverServiceId && clientServiceId)) { + return; + } const duration = useAppStoreWithOut().durationTime; const res: AxiosResponse = await graphql.query("getInstanceTopology").params({ clientServiceId, diff --git a/src/types/components.d.ts b/src/types/components.d.ts index 05ec63bd..fa07aadd 100644 --- a/src/types/components.d.ts +++ b/src/types/components.d.ts @@ -22,7 +22,6 @@ declare module '@vue/runtime-core' { ElMenuItemGroup: typeof import('element-plus/es')['ElMenuItemGroup'] ElOption: typeof import('element-plus/es')['ElOption'] ElPagination: typeof import('element-plus/es')['ElPagination'] - ElPopconfirm: typeof import('element-plus/es')['ElPopconfirm'] ElPopover: typeof import('element-plus/es')['ElPopover'] ElProgress: typeof import('element-plus/es')['ElProgress'] ElRadio: typeof import('element-plus/es')['ElRadio'] diff --git a/src/views/dashboard/related/topology/components/PodTopology.vue b/src/views/dashboard/related/topology/components/PodTopology.vue index 506b1544..9804e457 100644 --- a/src/views/dashboard/related/topology/components/PodTopology.vue +++ b/src/views/dashboard/related/topology/components/PodTopology.vue @@ -105,7 +105,7 @@ limitations under the License. --> window.addEventListener("resize", resize); }); - async function loadTopology(id: string) { + async function loadTopology(id?: string) { loading.value = true; const resp = await getTopology(id); loading.value = false; @@ -212,7 +212,7 @@ limitations under the License. --> loadTopology(selectorStore.currentPod.id); } - async function getTopology(id: string) { + async function getTopology(id?: string) { let resp; switch (dashboardStore.entity) { case EntityType[2].value: @@ -242,6 +242,18 @@ limitations under the License. --> topologyStore.setLink(null); }, ); + watch( + () => [selectorStore.currentService, selectorStore.currentDestService], + () => { + console.log(selectorStore.currentService); + if (dashboardStore.entity !== EntityType[4].value) { + return; + } + loadTopology(); + topologyStore.setNode(null); + topologyStore.setLink(null); + }, + ); watch( () => appStore.durationTime, () => {