From d67ba690e49ce6674f048ceb8831df770f5b9e21 Mon Sep 17 00:00:00 2001 From: CD配唱片 <CD配唱片> Date: 星期二, 29 四月 2025 15:12:23 +0800 Subject: [PATCH] 提交钣金计划大表i18n配置中英文 --- src/layout/components/Navbar.vue | 110 +++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 70 insertions(+), 40 deletions(-) diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 7c59d72..94099fc 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -1,15 +1,34 @@ <template> <div class="navbar"> - <hamburger id="hamburger-container" :is-active="appStore.sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" /> - <breadcrumb v-if="!settingsStore.topNav" id="breadcrumb-container" class="breadcrumb-container" /> - <top-nav v-if="settingsStore.topNav" id="topmenu-container" class="topmenu-container" /> + <hamburger + id="hamburger-container" + :is-active="appStore.sidebar.opened" + class="hamburger-container" + @toggleClick="toggleSideBar" + /> + <breadcrumb + v-if="!settingsStore.topNav" + id="breadcrumb-container" + class="breadcrumb-container" + /> + <top-nav + v-if="settingsStore.topNav" + id="topmenu-container" + class="topmenu-container" + /> <div class="right-menu"> - <template v-if="appStore.device !== 'mobile'"> - - </template> + <template v-if="appStore.device !== 'mobile'"> </template> + <div class="mt5"> + <el-button @click="changeLanguage('zh')">涓枃</el-button> + <el-button @click="changeLanguage('en')">English</el-button> + </div> <div class="avatar-container"> - <el-dropdown @command="handleCommand" class="right-menu-item hover-effect" trigger="click"> + <el-dropdown + @command="handleCommand" + class="right-menu-item hover-effect" + trigger="click" + > <div class="avatar-wrapper"> <img :src="userStore.avatar" class="user-avatar" /> <el-icon><caret-bottom /></el-icon> @@ -17,13 +36,13 @@ <template #dropdown> <el-dropdown-menu> <router-link to="/user/profile"> - <el-dropdown-item>{{$t(`topNav.center`)}}</el-dropdown-item> + <el-dropdown-item>{{ $t(`topNav.center`) }}</el-dropdown-item> </router-link> <!-- <el-dropdown-item command="setLayout" v-if="settingsStore.showSettings"> <span>甯冨眬璁剧疆</span> </el-dropdown-item> --> <el-dropdown-item divided command="logout"> - <span>{{$t(`topNav.logout`)}}</span> + <span>{{ $t(`topNav.logout`) }}</span> </el-dropdown-item> </el-dropdown-menu> </template> @@ -34,25 +53,32 @@ </template> <script setup> -import { ElMessageBox } from 'element-plus' -import Breadcrumb from '@/components/Breadcrumb' -import TopNav from '@/components/TopNav' -import Hamburger from '@/components/Hamburger' -import Screenfull from '@/components/Screenfull' -import SizeSelect from '@/components/SizeSelect' -import HeaderSearch from '@/components/HeaderSearch' -import RuoYiGit from '@/components/RuoYi/Git' -import RuoYiDoc from '@/components/RuoYi/Doc' -import useAppStore from '@/store/modules/app' -import useUserStore from '@/store/modules/user' -import useSettingsStore from '@/store/modules/settings' - -const appStore = useAppStore() -const userStore = useUserStore() -const settingsStore = useSettingsStore() +import { ElMessageBox } from "element-plus"; +import Breadcrumb from "@/components/Breadcrumb"; +import TopNav from "@/components/TopNav"; +import Hamburger from "@/components/Hamburger"; +import Screenfull from "@/components/Screenfull"; +import SizeSelect from "@/components/SizeSelect"; +import HeaderSearch from "@/components/HeaderSearch"; +import RuoYiGit from "@/components/RuoYi/Git"; +import RuoYiDoc from "@/components/RuoYi/Doc"; +import useAppStore from "@/store/modules/app"; +import useUserStore from "@/store/modules/user"; +import useSettingsStore from "@/store/modules/settings"; +import useLanguageStore from "@/store/modules/language" +import { useI18n } from 'vue-i18n'//瑕佸湪js涓娇鐢ㄥ浗闄呭寲 +const appStore = useAppStore(); +const userStore = useUserStore(); +const settingsStore = useSettingsStore(); +const languageStore = useLanguageStore(); +const { proxy } = getCurrentInstance(); +function changeLanguage(type) { + proxy.$i18n.locale = type; + languageStore.setLocale(type) +} function toggleSideBar() { - appStore.toggleSideBar() + appStore.toggleSideBar(); } function handleCommand(command) { @@ -69,28 +95,30 @@ } function logout() { - ElMessageBox.confirm('纭畾娉ㄩ攢骞堕��鍑虹郴缁熷悧锛�', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - userStore.logOut().then(() => { - location.href = '/index'; + ElMessageBox.confirm("纭畾娉ㄩ攢骞堕��鍑虹郴缁熷悧锛�", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + userStore.logOut().then(() => { + location.href = "/index"; + }); }) - }).catch(() => { }); + .catch(() => {}); } -const emits = defineEmits(['setLayout']) +const emits = defineEmits(["setLayout"]); function setLayout() { - emits('setLayout'); + emits("setLayout"); } function toggleTheme() { - settingsStore.toggleTheme() + settingsStore.toggleTheme(); } </script> -<style lang='scss' scoped> +<style lang="scss" scoped> .navbar { height: 50px; overflow: hidden; @@ -130,7 +158,9 @@ height: 100%; line-height: 50px; display: flex; - + .mt5{ + margin-top:5px; + } &:focus { outline: none; } @@ -158,7 +188,7 @@ svg { transition: transform 0.3s; - + &:hover { transform: scale(1.15); } -- Gitblit v1.9.3