65 lines
1.7 KiB
Vue
65 lines
1.7 KiB
Vue
<script lang="ts" setup>
|
|
import { onActivated, ref } from 'vue';
|
|
import { PageContainer } from 'antdv-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';
|
|
import useUserStore from '@/store/modules/user';
|
|
const appStore = useAppStore();
|
|
const userStore = useUserStore();
|
|
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>
|
|
<PageContainer>
|
|
<a-card>
|
|
<a-tabs tab-position="left" v-model:activeKey="activeKey">
|
|
<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')"
|
|
v-if="userStore.userType === 'System'"
|
|
>
|
|
<ResetPasswd></ResetPasswd>
|
|
</a-tab-pane>
|
|
|
|
<a-tab-pane
|
|
key="style-layout"
|
|
:tab="t('views.account.settings.styleLayout')"
|
|
v-if="false"
|
|
>
|
|
<StyleLayout></StyleLayout>
|
|
</a-tab-pane>
|
|
</a-tabs>
|
|
</a-card>
|
|
</PageContainer>
|
|
</template>
|
|
|
|
<style lang="less" scoped></style>
|