diff --git a/src/views/dashboard/controls/Widget.vue b/src/views/dashboard/controls/Widget.vue index d6811aa8..603d3133 100644 --- a/src/views/dashboard/controls/Widget.vue +++ b/src/views/dashboard/controls/Widget.vue @@ -66,6 +66,7 @@ limitations under the License. --> i: data.i, }" :standard="data.standard" + :needQuery="needQuery" />
{{ t("noData") }}
@@ -112,6 +113,7 @@ export default defineComponent({ } async function queryMetrics() { + console.log(props.data); const params = await useQueryProcessor(props.data); if (!params) { @@ -153,6 +155,7 @@ export default defineComponent({ if (props.data.i !== dashboardStore.selectedGrid.i) { return; } + const isList = ListChartTypes.includes(props.data.graph.type || ""); if ( ListChartTypes.includes(dashboardStore.selectedGrid.graph.type) || isList @@ -165,6 +168,7 @@ export default defineComponent({ watch( () => [selectorStore.currentService, selectorStore.currentDestService], () => { + const isList = ListChartTypes.includes(props.data.graph.type || ""); if (isList) { return; } diff --git a/src/views/dashboard/graphs/EndpointList.vue b/src/views/dashboard/graphs/EndpointList.vue index 4d61a90d..6c8b5912 100644 --- a/src/views/dashboard/graphs/EndpointList.vue +++ b/src/views/dashboard/graphs/EndpointList.vue @@ -110,6 +110,7 @@ const props = defineProps({ default: () => ({ dashboardName: "", fontSize: 12, i: "" }), }, intervalTime: { type: Array as PropType, default: () => [] }, + needQuery: { type: Boolean, default: false }, }); const selectorStore = useSelectorStore(); const dashboardStore = useDashboardStore(); @@ -119,8 +120,9 @@ const searchEndpoints = ref([]); const pageSize = 5; const searchText = ref(""); -queryEndpoints(); - +if (props.needQuery) { + queryEndpoints(); +} async function queryEndpoints() { chartLoading.value = true; const resp = await selectorStore.getEndpoints(); @@ -193,7 +195,7 @@ watch( } ); watch( - () => [selectorStore.currentService], + () => selectorStore.currentService, () => { queryEndpoints(); } diff --git a/src/views/dashboard/graphs/InstanceList.vue b/src/views/dashboard/graphs/InstanceList.vue index a0fd8b89..9f12693a 100644 --- a/src/views/dashboard/graphs/InstanceList.vue +++ b/src/views/dashboard/graphs/InstanceList.vue @@ -113,6 +113,7 @@ const props = defineProps({ }), }, intervalTime: { type: Array as PropType, default: () => [] }, + needQuery: { type: Boolean, default: false }, }); const selectorStore = useSelectorStore(); const dashboardStore = useDashboardStore(); @@ -122,15 +123,18 @@ const searchInstances = ref([]); // all instances const pageSize = 5; const searchText = ref(""); -queryInstance(); - +if (props.needQuery) { + queryInstance(); +} async function queryInstance() { chartLoading.value = true; const resp = await selectorStore.getServiceInstances(); chartLoading.value = false; - if (resp.errors) { + if (resp && resp.errors) { ElMessage.error(resp.errors); + searchInstances.value = []; + instances.value = []; return; } searchInstances.value = selectorStore.pods; @@ -193,6 +197,12 @@ watch( } } ); +watch( + () => selectorStore.currentService, + () => { + queryInstance(); + } +);