chengxiangling
2025-05-16 444ba76f4cca8a9df3faf61ab33ec631aec7fbba
src/layout/components/Navbar.vue
@@ -20,8 +20,30 @@
    <div class="right-menu">
      <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>
        <el-dropdown>
          <img
            class="zh_icon"
            v-if="locale === 'zh'"
            src="@/assets/images/zh.svg"
            alt="zh"
          />
          <img
            class="zh_icon"
            v-if="locale === 'en'"
            src="@/assets/images/en.svg"
            alt="en"
          />
          <template #dropdown>
            <el-dropdown-menu>
              <el-dropdown-item @click="changeLanguage('zh', 'zh-CN')">{{
                $t(`common.topNav.zh`)
              }}</el-dropdown-item>
              <el-dropdown-item @click="changeLanguage('en', 'en-US')">{{
                $t(`common.topNav.en`)
              }}</el-dropdown-item>
            </el-dropdown-menu>
          </template>
        </el-dropdown>
      </div>
      <div class="avatar-container">
        <el-dropdown
@@ -36,13 +58,15 @@
          <template #dropdown>
            <el-dropdown-menu>
              <router-link to="/user/profile">
                <el-dropdown-item>{{ $t(`topNav.center`) }}</el-dropdown-item>
                <el-dropdown-item>{{
                  $t(`common.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(`common.topNav.logout`) }}</span>
              </el-dropdown-item>
            </el-dropdown-menu>
          </template>
@@ -53,7 +77,7 @@
</template>
<script setup>
import { ElMessageBox } from "element-plus";
// import { ElMessageBox } from "element-plus";
import Breadcrumb from "@/components/Breadcrumb";
import TopNav from "@/components/TopNav";
import Hamburger from "@/components/Hamburger";
@@ -65,16 +89,20 @@
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中使用国际化
import useLanguageStore from "@/store/modules/language";
import { VxeUI } from "vxe-table";
import { useI18n } from "vue-i18n"; //要在js中使用国际化
const { t, locale } = useI18n();
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 changeLanguage(type1, type2) {
  proxy.$i18n.locale = type1;
  languageStore.setLocale(type1);
  VxeUI.setLanguage(type2);
  // console.log(VxeUI.getLanguage(),'VxeUI.getLanguage()')
}
function toggleSideBar() {
@@ -158,8 +186,14 @@
    height: 100%;
    line-height: 50px;
    display: flex;
    .mt5{
      margin-top:5px;
    .mt5 {
      margin-top: 5px;
      .zh_icon {
        width: 35px;
        height: 35px;
        border: none;
        outline: none;
      }
    }
    &:focus {
      outline: none;