mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-07 17:07:19 +08:00
fix: 国际化切换动态title
This commit is contained in:
parent
2d5a82ddc0
commit
8cb2d896ad
@ -41,12 +41,12 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { ref, defineComponent, onMounted } from "vue";
|
import { ref, defineComponent, onMounted, unref, watch } from "vue";
|
||||||
import Breadcrumb from "/@/components/BreadCrumb";
|
import Breadcrumb from "/@/components/BreadCrumb";
|
||||||
import Hamburger from "/@/components/HamBurger";
|
import Hamburger from "/@/components/HamBurger";
|
||||||
import screenfull from "../components/screenfull/index.vue";
|
import screenfull from "../components/screenfull/index.vue";
|
||||||
import { useMapGetters } from "../store";
|
import { useMapGetters } from "../store";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter, useRoute } from "vue-router";
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
import { storageSession } from "/@/utils/storage";
|
import { storageSession } from "/@/utils/storage";
|
||||||
import { useI18n } from "vue-i18n";
|
import { useI18n } from "vue-i18n";
|
||||||
@ -68,10 +68,11 @@ export default defineComponent({
|
|||||||
|
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
const route = useRoute();
|
||||||
|
|
||||||
let usename = storageSession.getItem("info").username;
|
let usename = storageSession.getItem("info").username;
|
||||||
|
|
||||||
const { locale } = useI18n();
|
const { locale, t } = useI18n();
|
||||||
|
|
||||||
// 国际化语言切换
|
// 国际化语言切换
|
||||||
const toggleLang = (): void => {
|
const toggleLang = (): void => {
|
||||||
@ -79,6 +80,14 @@ export default defineComponent({
|
|||||||
langs.value ? (locale.value = "zh") : (locale.value = "en");
|
langs.value ? (locale.value = "zh") : (locale.value = "en");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => langs.value,
|
||||||
|
val => {
|
||||||
|
//@ts-ignore
|
||||||
|
document.title = t(unref(route.meta.title)); // 动态title
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
// 退出登录
|
// 退出登录
|
||||||
const logout = (): void => {
|
const logout = (): void => {
|
||||||
storageSession.removeItem("info");
|
storageSession.removeItem("info");
|
||||||
|
@ -4,6 +4,8 @@ import Layout from "../layout/index.vue";
|
|||||||
|
|
||||||
import { storageSession } from "../utils/storage";
|
import { storageSession } from "../utils/storage";
|
||||||
|
|
||||||
|
import { i18n } from "/@/plugins/i18n/index";
|
||||||
|
|
||||||
const routes: Array<RouteRecordRaw> = [
|
const routes: Array<RouteRecordRaw> = [
|
||||||
{
|
{
|
||||||
path: "/",
|
path: "/",
|
||||||
@ -349,8 +351,9 @@ const whiteList = ["/login", "/register"];
|
|||||||
|
|
||||||
router.beforeEach((to, _from, next) => {
|
router.beforeEach((to, _from, next) => {
|
||||||
NProgress.start();
|
NProgress.start();
|
||||||
|
const { t } = i18n.global;
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
// document.title = $t(to.meta.title); // 动态title
|
document.title = t(to.meta.title); // 动态title
|
||||||
whiteList.indexOf(to.path) !== -1 || storageSession.getItem("info")
|
whiteList.indexOf(to.path) !== -1 || storageSession.getItem("info")
|
||||||
? next()
|
? next()
|
||||||
: next("/login"); // 全部重定向到登录页
|
: next("/login"); // 全部重定向到登录页
|
||||||
|
@ -3,7 +3,5 @@ export default {
|
|||||||
|
|
||||||
fixedHeader: false,
|
fixedHeader: false,
|
||||||
|
|
||||||
sidebarLogo: true,
|
|
||||||
|
|
||||||
hiddenSideBar: false,
|
hiddenSideBar: false,
|
||||||
};
|
};
|
||||||
|
@ -1,29 +1,27 @@
|
|||||||
import defaultSettings from '../../settings'
|
import defaultSettings from "../../settings";
|
||||||
|
|
||||||
const state = {
|
const state = {
|
||||||
title: defaultSettings.title,
|
title: defaultSettings.title,
|
||||||
fixedHeader: defaultSettings.fixedHeader,
|
fixedHeader: defaultSettings.fixedHeader,
|
||||||
sidebarLogo: defaultSettings.sidebarLogo
|
};
|
||||||
}
|
|
||||||
|
|
||||||
const mutations = {
|
const mutations = {
|
||||||
CHANGE_SETTING: (state: any, { key, value }) => {
|
CHANGE_SETTING: (state: any, { key, value }) => {
|
||||||
if (state.hasOwnProperty(key)) {
|
if (state.hasOwnProperty(key)) {
|
||||||
state[key] = value
|
state[key] = value;
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
|
|
||||||
const actions = {
|
const actions = {
|
||||||
changeSetting({ commit }, data) {
|
changeSetting({ commit }, data) {
|
||||||
commit('CHANGE_SETTING', data)
|
commit("CHANGE_SETTING", data);
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
namespaced: true,
|
namespaced: true,
|
||||||
state,
|
state,
|
||||||
mutations,
|
mutations,
|
||||||
actions
|
actions,
|
||||||
}
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user