From 8ab1a35f3b91f00c387db3abfffb77bb9c6a9d1e Mon Sep 17 00:00:00 2001 From: caozehui <2427765068@qq.com> Date: Mon, 27 Apr 2026 08:39:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=90=E5=8F=97=E5=9B=BE=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E3=80=81=E5=B1=8F=E8=94=BD=E9=9D=9E=E5=BF=85=E8=A6=81=E7=9A=84?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E3=80=81=E7=99=BB=E5=BD=95=E5=90=8E=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E5=88=B0=E5=8F=98=E9=A2=91=E5=99=A8=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/echarts/line/index.vue | 3 +- frontend/src/config/index.ts | 2 +- .../src/layouts/components/Footer/index.vue | 5 +- .../components/Header/components/Avatar.vue | 4 +- .../src/layouts/components/Tabs/index.vue | 5 +- frontend/src/stores/modules/auth.ts | 22 +- .../src/views/login/components/LoginForm.vue | 2 +- .../components/freqConverterDipChart.vue | 809 +++++++++++------- 8 files changed, 512 insertions(+), 340 deletions(-) diff --git a/frontend/src/components/echarts/line/index.vue b/frontend/src/components/echarts/line/index.vue index f58827a..d884214 100644 --- a/frontend/src/components/echarts/line/index.vue +++ b/frontend/src/components/echarts/line/index.vue @@ -130,6 +130,7 @@ const initChart = () => { chart.resize() }, 0) } +const getChartInstance = () => chart const handlerBar = (options: any) => { if (Array.isArray(options.series)) { options.series.forEach((item: any) => { @@ -253,7 +254,7 @@ onMounted(() => { initChart() resizeObserver.observe(chartRef.value!) }) -defineExpose({ initChart }) +defineExpose({ initChart, getChartInstance }) onBeforeUnmount(() => { resizeObserver.unobserve(chartRef.value!) chart?.dispose() diff --git a/frontend/src/config/index.ts b/frontend/src/config/index.ts index c269a4c..30c73b7 100644 --- a/frontend/src/config/index.ts +++ b/frontend/src/config/index.ts @@ -1,7 +1,7 @@ // ? 全局默认配置项 // 首页地址(默认) -export const HOME_URL: string = "/home/index"; +export const HOME_URL: string = "/machine/freqConverter"; // export const HOME_URL: string = "/machine/controlSource"; diff --git a/frontend/src/layouts/components/Footer/index.vue b/frontend/src/layouts/components/Footer/index.vue index dd146e5..badeb68 100644 --- a/frontend/src/layouts/components/Footer/index.vue +++ b/frontend/src/layouts/components/Footer/index.vue @@ -26,6 +26,7 @@ diff --git a/frontend/src/layouts/components/Tabs/index.vue b/frontend/src/layouts/components/Tabs/index.vue index 181b5a9..e417b30 100644 --- a/frontend/src/layouts/components/Tabs/index.vue +++ b/frontend/src/layouts/components/Tabs/index.vue @@ -29,6 +29,7 @@ import { useRoute, useRouter } from 'vue-router' import { useGlobalStore } from '@/stores/modules/global' import { useTabsStore } from '@/stores/modules/tabs' import { useAuthStore } from '@/stores/modules/auth' +import { HOME_URL } from '@/config' import { TabPaneName, TabsPaneContext } from 'element-plus' import MoreButton from './components/MoreButton.vue' @@ -73,13 +74,13 @@ watch( // 初始化需要固定的 tabs const initTabs = () => { authStore.flatMenuListGet.forEach(item => { - if (item.meta.isAffix && !item.meta.isHide && !item.meta.isFull) { + if (item.path === HOME_URL && !item.meta.isHide && !item.meta.isFull) { const tabsParams = { icon: item.meta.icon, title: item.meta.title, path: item.path, name: item.name, - close: !item.meta.isAffix, + close: false, isKeepAlive: item.meta.isKeepAlive, unshift: true } diff --git a/frontend/src/stores/modules/auth.ts b/frontend/src/stores/modules/auth.ts index 5e99f51..15c596a 100644 --- a/frontend/src/stores/modules/auth.ts +++ b/frontend/src/stores/modules/auth.ts @@ -3,6 +3,7 @@ import { type AuthState } from '@/stores/interface' import { getAuthButtonListApi, getAuthMenuListApi } from '@/api/user/login' import { getAllBreadcrumbList, getFlatMenuList, getShowMenuList } from '@/utils' import { AUTH_STORE_KEY } from '@/stores/constant' +import { HOME_URL } from '@/config' import { useModeStore } from '@/stores/modules/mode' import { getLicense } from '@/api/activate' import type { Activate } from '@/api/activate/interface' @@ -52,7 +53,7 @@ export const useAuthStore = defineStore(AUTH_STORE_KEY, { ? filterMenuByExcludedNames(menuData, ['testSource', 'testScript', 'controlSource']) : filterMenuByExcludedNames(menuData, ['standardDevice']) - this.authMenuList = filteredMenu + this.authMenuList = normalizeHomeAffix(filteredMenu) }, // Set RouteName async setRouteName(name: string) { @@ -112,3 +113,22 @@ function filterMenuByExcludedNames(menuList: any[], excludedNames: string[]): an return !excludedNames.includes(menu.name) }) } + +function normalizeHomeAffix(menuList: any[]): any[] { + return menuList.map(menu => { + const nextMenu = { ...menu } + + if (nextMenu.meta) { + nextMenu.meta = { + ...nextMenu.meta, + isAffix: nextMenu.path === HOME_URL + } + } + + if (Array.isArray(nextMenu.children) && nextMenu.children.length > 0) { + nextMenu.children = normalizeHomeAffix(nextMenu.children) + } + + return nextMenu + }) +} diff --git a/frontend/src/views/login/components/LoginForm.vue b/frontend/src/views/login/components/LoginForm.vue index 8b36cd7..0eac07f 100644 --- a/frontend/src/views/login/components/LoginForm.vue +++ b/frontend/src/views/login/components/LoginForm.vue @@ -120,7 +120,7 @@ const login = (formEl: FormInstance | undefined) => { await tabsStore.setTabs([]) await keepAliveStore.setKeepAliveName([]) // 登录默认不显示菜单和导航栏 - await authStore.resetAuthStore() + await authStore.setShowMenu() // 跳转到首页 await router.push(HOME_URL) } finally { diff --git a/frontend/src/views/machine/freqConverter/components/freqConverterDipChart.vue b/frontend/src/views/machine/freqConverter/components/freqConverterDipChart.vue index ca2e8f0..ff52d72 100644 --- a/frontend/src/views/machine/freqConverter/components/freqConverterDipChart.vue +++ b/frontend/src/views/machine/freqConverter/components/freqConverterDipChart.vue @@ -1,4 +1,4 @@ -