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 @@
-
+
-
+
-
+
-
@@ -574,6 +715,14 @@ watch(
gap: 12px;
}
+.header-actions {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ gap: 8px;
+ flex-wrap: wrap;
+}
+
.card-header-main {
min-width: 0;
}