From d2f0382bd9a0b51ca699196d08fdce5349005083 Mon Sep 17 00:00:00 2001 From: sjl <1716605279@qq.com> Date: Tue, 1 Jul 2025 14:58:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=9C=BA=E6=99=AF=E5=88=87?= =?UTF-8?q?=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/api/system/base/index.ts | 5 ++ frontend/src/languages/modules/en.ts | 1 + frontend/src/languages/modules/zh.ts | 1 + .../components/Header/components/Avatar.vue | 48 ++++++++++++++++++- frontend/src/stores/interface/index.ts | 2 +- frontend/src/stores/modules/user.ts | 2 +- frontend/src/views/home/tabs/model.vue | 1 - 7 files changed, 56 insertions(+), 4 deletions(-) diff --git a/frontend/src/api/system/base/index.ts b/frontend/src/api/system/base/index.ts index cc6f4ed..9097a26 100644 --- a/frontend/src/api/system/base/index.ts +++ b/frontend/src/api/system/base/index.ts @@ -1,3 +1,4 @@ + import http from '@/api' import {type Base} from '@/api/system/base/interface' @@ -12,6 +13,10 @@ export const updateTestConfig = (params: Base.ResTestConfig) => { return http.post(`/sysTestConfig/update`, params) } +//场景切换 +export const updateScene = (params: any) => { + return http.post(`/sysTestConfig/update`,params) +} diff --git a/frontend/src/languages/modules/en.ts b/frontend/src/languages/modules/en.ts index 38347f7..2c7a83a 100644 --- a/frontend/src/languages/modules/en.ts +++ b/frontend/src/languages/modules/en.ts @@ -27,6 +27,7 @@ export default { changeMode:"Change Mode", versionRegister:"Version Register", changeTheme: "Change Theme", + changeScene: "Change Scene", logout: "Logout" } }; diff --git a/frontend/src/languages/modules/zh.ts b/frontend/src/languages/modules/zh.ts index 6248c72..2dc4ed1 100644 --- a/frontend/src/languages/modules/zh.ts +++ b/frontend/src/languages/modules/zh.ts @@ -27,6 +27,7 @@ export default { changeMode:"模式切换", versionRegister:"版本注册", changeTheme:"主题切换", + changeScene: "场景切换", logout: "退出登录" } }; diff --git a/frontend/src/layouts/components/Header/components/Avatar.vue b/frontend/src/layouts/components/Header/components/Avatar.vue index b8a2aa9..8799d0c 100644 --- a/frontend/src/layouts/components/Header/components/Avatar.vue +++ b/frontend/src/layouts/components/Header/components/Avatar.vue @@ -33,6 +33,27 @@ {{ t("header.versionRegister") }} + +
+ + {{ t("header.changeScene") }} +
+ +
@@ -62,7 +83,7 @@ import PasswordDialog from "./PasswordDialog.vue"; import ThemeDialog from "./ThemeDialog.vue"; import VersionDialog from "@/views/system/versionRegister/index.vue"; import { computed } from "vue"; -import { Avatar, Delete, Document, Sunny, Switch } from "@element-plus/icons-vue"; +import { ArrowLeft, Avatar, Delete, Document, Sunny, Switch ,Tools} from "@element-plus/icons-vue"; import AssemblySize from "./components/AssemblySize.vue"; import Language from "./components/Language.vue"; import SearchMenu from "./components/SearchMenu.vue"; @@ -75,12 +96,16 @@ import { useModeStore,useAppSceneStore } from "@/stores/modules/mode"; const userStore = useUserStore(); const dictStore = useDictStore(); const username = computed(() => userStore.userInfo.name); + const router = useRouter(); const authStore = useAuthStore(); const modeStore = useModeStore(); const AppSceneStore = useAppSceneStore(); import { useTheme } from "@/hooks/useTheme"; import { useI18n } from "vue-i18n"; +import {updateScene} from '@/api/system/base/index' + + const { changePrimary} = useTheme(); // 初始化 i18n @@ -126,7 +151,14 @@ const openDialog = (ref: string) => { }; +const appSceneStore = useAppSceneStore(); +const changeScene = async (value: string) => { + appSceneStore.setCurrentMode(value); + await updateScene({scene :dictStore.getDictData('app_scene').find(item => item.value == value)?.id}); + // 强制刷新页面 + window.location.reload(); +}; //模式切换 @@ -168,4 +200,18 @@ const changeMode = () => { // height: 100%; } } + +.custom-dropdown-trigger { + padding: 8px 15px; + cursor: pointer; + display: flex; + align-items: center; + gap: 8px; +} + +:deep(.el-dropdown-menu__item.custom-dropdown-item.active), +:deep(.el-dropdown-menu__item.custom-dropdown-item.active:hover) { + background-color: var(--el-color-primary-light-9) !important; + color: var(--el-color-primary) +} diff --git a/frontend/src/stores/interface/index.ts b/frontend/src/stores/interface/index.ts index 6a67089..64b82e9 100644 --- a/frontend/src/stores/interface/index.ts +++ b/frontend/src/stores/interface/index.ts @@ -30,7 +30,7 @@ export interface UserState { accessToken: string; refreshToken: string; isRefreshToken: boolean; - userInfo: { id: string, name: string }; + userInfo: { id: string, name: string,loginName:string }; } /* tabsMenuProps */ diff --git a/frontend/src/stores/modules/user.ts b/frontend/src/stores/modules/user.ts index e44c8f1..d32efe0 100644 --- a/frontend/src/stores/modules/user.ts +++ b/frontend/src/stores/modules/user.ts @@ -10,7 +10,7 @@ export const useUserStore = defineStore({ refreshToken: "", isRefreshToken:false, exp: Number(0), - userInfo: {id:"", name: "admin" }, + userInfo: {id:"", name: "" ,loginName:""}, }), getters: {}, actions: { diff --git a/frontend/src/views/home/tabs/model.vue b/frontend/src/views/home/tabs/model.vue index c3bfb1a..c85d334 100644 --- a/frontend/src/views/home/tabs/model.vue +++ b/frontend/src/views/home/tabs/model.vue @@ -84,7 +84,6 @@ const modeList = [ const handelOpen = async (item: any) => { modeStore.setCurrentMode(item.code); // 将模式code存入 store const {data:scene} = await getCurrentScene(); // 获取当前场景 - // AppSceneStore.setCurrentMode(scene+'');//0:省级平台,1:设备出厂,2:研发自测 AppSceneStore.setCurrentMode(scene+'');//0:省级平台,1:设备出厂,2:研发自测 await authStore.setShowMenu();