fix: 网元状态切换保留List页面状态

This commit is contained in:
TsMask
2025-01-24 20:28:26 +08:00
parent 22e595131c
commit 36de89570f
3 changed files with 16 additions and 34 deletions

View File

@@ -315,11 +315,15 @@ let modalState: ModalStateType = reactive({
openByEdit: false, openByEdit: false,
title: 'NB Config List', title: 'NB Config List',
from: { from: {
index: undefined,
address: '', address: '',
index: undefined,
name: '', name: '',
nbName: undefined,
offTime: undefined,
onTime: undefined,
position: '', position: '',
state: undefined, state: undefined,
ueNum: undefined,
}, },
confirmLoading: false, confirmLoading: false,
}); });

View File

@@ -573,7 +573,7 @@ const interval = ref<boolean>(false);
/**递归刷新图状态 */ /**递归刷新图状态 */
function repeatFn(reload: boolean = false) { function repeatFn(reload: boolean = false) {
if (!interval.value) { if (!interval.value || !graphG6Dom.value) {
return; return;
} }
fnGraphState(reload) fnGraphState(reload)

View File

@@ -1,44 +1,17 @@
<script setup lang="ts"> <script setup lang="ts">
import { import { ref } from 'vue';
onMounted,
type Component,
defineAsyncComponent,
shallowRef,
ref,
} from 'vue';
import { PageContainer } from 'antdv-pro-layout'; import { PageContainer } from 'antdv-pro-layout';
import ListComponent from '@/views/ne-data/base-station/components/list.vue';
import TopologyComponent from '@/views/ne-data/base-station/components/topology.vue';
import useI18n from '@/hooks/useI18n'; import useI18n from '@/hooks/useI18n';
const { t } = useI18n(); const { t } = useI18n();
const defineComponent = shallowRef<Component | null>(null);
const value = ref<string>('list'); const value = ref<string>('list');
function fnSwitch(evt: any) {
const name = evt.target?.value;
if (name === 'topology') {
defineComponent.value = defineAsyncComponent(
() => import('@/views/ne-data/base-station/components/topology.vue')
);
}
if (name === 'list') {
defineComponent.value = defineAsyncComponent(
() => import('@/views/ne-data/base-station/components/list.vue')
);
}
}
onMounted(() => {
fnSwitch({ target: { value: 'list' } });
});
</script> </script>
<template> <template>
<PageContainer> <PageContainer>
<template #extra> <template #extra>
<a-radio-group <a-radio-group v-model:value="value" button-style="solid">
v-model:value="value"
button-style="solid"
@change="fnSwitch"
>
<a-radio-button value="list"> <a-radio-button value="list">
{{ t('views.neData.baseStation.list') }} {{ t('views.neData.baseStation.list') }}
</a-radio-button> </a-radio-button>
@@ -48,7 +21,12 @@ onMounted(() => {
</a-radio-group> </a-radio-group>
</template> </template>
<component :is="defineComponent" /> <div v-show="value === 'list'">
<ListComponent></ListComponent>
</div>
<div v-if="value === 'topology'">
<TopologyComponent></TopologyComponent>
</div>
</PageContainer> </PageContainer>
</template> </template>