From f45ad790157785356445a72a8a3eb1fe71fa663b Mon Sep 17 00:00:00 2001 From: zhongzm Date: Wed, 9 Jul 2025 10:26:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E9=BB=98=E8=AE=A4=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E5=85=A8=E9=83=A8=E7=BD=91=E5=85=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/perfManage/goldTarget/index.vue | 107 ++++++++-------------- 1 file changed, 37 insertions(+), 70 deletions(-) diff --git a/src/views/perfManage/goldTarget/index.vue b/src/views/perfManage/goldTarget/index.vue index 1503df39..ca0a2ba1 100644 --- a/src/views/perfManage/goldTarget/index.vue +++ b/src/views/perfManage/goldTarget/index.vue @@ -376,6 +376,39 @@ interface KPIStats { total: number; } +/** + * 设置网元类型并选择该类型下的所有网元 + * @param neType 网元类型 + */ +function setNeTypeAndSelectAll(neType: string) { + const item = neCascaderOptions.value.find(s => s.value === neType); + if (item && item.children && item.children.length > 0) { + // 设置网元类型 + state.neType = item.value; + queryParams.neType = item.value; + + // 获取该类型下的网元ID列表 + availableNeIds.value = item.children.map((ne: any) => ({ + label: `${ne.label}`, + value: ne.neId, + })); + + // 选择该类型下的所有网元 + state.neIds = item.children.map((ne: any) => ne.neId); + queryParams.neIds = [...state.neIds]; + selectedNes.value = state.neIds.map(neId => ({ + neType: item.value, + neId: neId, + })); + } else { + // 如果没有找到对应的网元类型,清空选择 + state.neType = ''; + state.neIds = []; + availableNeIds.value = []; + selectedNes.value = []; + } +} + /**处理网元类型变化 */ function handleNeTypeChange( value: SelectValue, @@ -385,35 +418,12 @@ function handleNeTypeChange( state.neType = ''; state.neIds = []; availableNeIds.value = []; + selectedNes.value = []; return; } - state.neType = value as string; - queryParams.neType = value as string; - state.neIds = []; // 清空已选网元 - - // 根据选择的网元类型更新可选的网元ID列表 - const neTypeOption = neCascaderOptions.value.find( - item => item.value === value - ); - if ( - neTypeOption && - neTypeOption.children && - neTypeOption.children.length > 0 - ) { - availableNeIds.value = neTypeOption.children.map((ne: any) => ({ - label: `${ne.label}`, - value: ne.neId, - })); - - // 默认选择第一个网元 - if (availableNeIds.value.length > 0) { - state.neIds = [availableNeIds.value[0].value]; - queryParams.neIds = [...state.neIds]; - } - } else { - availableNeIds.value = []; - } + // 使用通用函数设置网元类型并选择所有网元 + setNeTypeAndSelectAll(value as string); } /**处理网元ID变化 */ @@ -1361,50 +1371,7 @@ onMounted(() => { // 无查询参数neType时 默认选择UPF const queryNeType = (route.query.neType as string) || 'UPF'; - const item = neCascaderOptions.value.find(s => s.value === queryNeType); - if (item && item.children) { - // 设置网元类型 - state.neType = item.value; - queryParams.neType = item.value; - - // 获取该类型下的网元ID列表 - availableNeIds.value = item.children.map((ne: any) => ({ - label: `${ne.label}`, - value: ne.neId, - })); - - // 默认选择第一个网元 - const info = item.children[0]; - state.neIds = [info.neId]; - queryParams.neIds = [info.neId]; - selectedNes.value = [ - { - neType: item.value, - neId: info.neId, - }, - ]; - } else { - const item = neCascaderOptions.value[0]; - state.neType = item.value; - queryParams.neType = item.value; - - // 获取该类型下的网元ID列表 - availableNeIds.value = item.children.map((ne: any) => ({ - label: `${ne.label}`, - value: ne.neId, - })); - - // 默认选择第一个网元 - const info = item.children[0]; - state.neIds = [info.neId]; - queryParams.neIds = [info.neId]; - selectedNes.value = [ - { - neType: item.value, - neId: info.neId, - }, - ]; - } + setNeTypeAndSelectAll(queryNeType); // 查询当前小时 const now = new Date();