fix: 处理router.多语言显示

This commit is contained in:
TsMask
2023-11-17 11:16:08 +08:00
parent 69bd3879b1
commit bb577bef0b
5 changed files with 69 additions and 6 deletions

View File

@@ -6,7 +6,11 @@ import { reactive, ref, onMounted } from 'vue';
import { parseDateToStr } from '@/utils/date-utils';
import useUserStore from '@/store/modules/user';
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
import { useRoute } from 'vue-router';
import useAppStore from '@/store/modules/app';
import useI18n from '@/hooks/useI18n';
const appStore = useAppStore();
const route = useRoute();
const { t } = useI18n();
/**加载状态 */
@@ -71,7 +75,19 @@ function fnGetProfile() {
});
}
/**
* 国际化翻译转换
*/
function fnLocale() {
let title = route.meta.title as string;
if (title.indexOf('router.') !== -1) {
title = t(title);
}
appStore.setTitle(title);
}
onMounted(() => {
fnLocale();
// 获取信息
fnGetProfile();
});

View File

@@ -1,14 +1,36 @@
<script lang="ts" setup>
import { ref } from 'vue';
import { onActivated, ref } from 'vue';
import { PageContainer } from '@ant-design-vue/pro-layout';
import BaseInfo from './components/base-info.vue';
import ResetPasswd from './components/reset-passwd.vue';
import StyleLayout from './components/style-layout.vue';
import { useRoute } from 'vue-router';
import useAppStore from '@/store/modules/app';
import useI18n from '@/hooks/useI18n';
const appStore = useAppStore();
const route = useRoute();
const { t } = useI18n();
/**Tab标签激活 */
let activeKey = ref<string>('base-info');
/**
* 国际化翻译转换
*/
function fnLocale() {
let title = route.meta.title as string;
if (title.indexOf('router.') !== -1) {
title = t(title);
}
appStore.setTitle(title);
}
onActivated(() => {
// 调用时机为首次挂载
// 以及每次从缓存中被重新插入时
fnLocale();
})
</script>
<template>
@@ -18,10 +40,16 @@ let activeKey = ref<string>('base-info');
<a-tab-pane key="base-info" :tab="t('views.account.settings.baseInfo')">
<BaseInfo></BaseInfo>
</a-tab-pane>
<a-tab-pane key="reset-passwd" :tab="t('views.account.settings.resetPasswd')">
<a-tab-pane
key="reset-passwd"
:tab="t('views.account.settings.resetPasswd')"
>
<ResetPasswd></ResetPasswd>
</a-tab-pane>
<a-tab-pane key="style-layout" :tab="t('views.account.settings.styleLayout')">
<a-tab-pane
key="style-layout"
:tab="t('views.account.settings.styleLayout')"
>
<StyleLayout></StyleLayout>
</a-tab-pane>
</a-tabs>

View File

@@ -12,7 +12,12 @@ import * as echarts from 'echarts/core';
import { TitleComponent, LegendComponent } from 'echarts/components';
import { PieChart } from 'echarts/charts';
import { LabelLayout } from 'echarts/features';
import { useRoute } from 'vue-router';
import useAppStore from '@/store/modules/app';
const appStore = useAppStore();
const route = useRoute();
const { t } = useI18n();
echarts.use([
TooltipComponent,
GaugeChart,
@@ -370,7 +375,20 @@ function rowClick(record: any, index: any) {
};
}
let timer: any;
/**
* 国际化翻译转换
*/
function fnLocale( ) {
let title = route.meta.title as string;
if (title.indexOf('router.') !== -1) {
title = t(title);
}
appStore.setTitle(title);
}
onMounted(() => {
fnLocale()
fnGetList();
timer = setInterval(fnGetList, 10000); // 每隔10秒执行一次
});