feat: 刷新页面添加是否登录判断重新获取用户信息
This commit is contained in:
parent
b50791ebd0
commit
1012e9879d
|
@ -6,7 +6,7 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed, onBeforeMount } from 'vue';
|
||||
import { computed, onBeforeMount, onMounted } from 'vue';
|
||||
import enUS from '@arco-design/web-vue/es/locale/lang/en-us';
|
||||
import zhCN from '@arco-design/web-vue/es/locale/lang/zh-cn';
|
||||
import GlobalSetting from '@/components/pure/global-setting/index.vue';
|
||||
|
@ -17,8 +17,11 @@
|
|||
import useLicenseStore from '@/store/modules/setting/license';
|
||||
import { watchStyle, watchTheme, setFavicon } from '@/utils/theme';
|
||||
import { GetPlatformIconUrl } from '@/api/requrls/setting/config';
|
||||
import { useUserStore } from '@/store';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
const appStore = useAppStore();
|
||||
const userStore = useUserStore();
|
||||
const licenseStore = useLicenseStore();
|
||||
|
||||
const { currentLocale } = useLocale();
|
||||
|
@ -61,7 +64,15 @@
|
|||
setLocalStorage('isInitUrl', 'true'); // 设置已经初始化过 url,避免重复初始化
|
||||
}
|
||||
} catch (error) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(error);
|
||||
}
|
||||
});
|
||||
onMounted(async () => {
|
||||
const res = await userStore.isLogin();
|
||||
if (!res) {
|
||||
const router = useRouter();
|
||||
router.push({ name: 'login' });
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -2,6 +2,7 @@ export default {
|
|||
// 消息提醒相关
|
||||
'message.errorTip': 'Error Tip',
|
||||
'message.logouting': 'Logging out...',
|
||||
'message.loginExpired': 'Login expired, please login again!',
|
||||
'message.logoutSuccess': 'Logout success',
|
||||
'message.loadingDefaultTip': 'Loading...',
|
||||
'message.menuLoading': 'Loading the menu...',
|
||||
|
|
|
@ -2,6 +2,7 @@ export default {
|
|||
// 消息提醒相关
|
||||
'message.errorTip': '错误提示',
|
||||
'message.logouting': '正在退出登录...',
|
||||
'message.loginExpired': '登录过期,请重新登录!',
|
||||
'message.logoutSuccess': '登出成功',
|
||||
'message.loadingDefaultTip': '加载中...',
|
||||
'message.menuLoading': '菜单加载中...',
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { defineStore } from 'pinia';
|
||||
import { login as userLogin, logout as userLogout } from '@/api/modules/user';
|
||||
import { login as userLogin, logout as userLogout, isLogin as userIsLogin } from '@/api/modules/user';
|
||||
import { setToken, clearToken } from '@/utils/auth';
|
||||
import { removeRouteListener } from '@/utils/route-listener';
|
||||
import useAppStore from '../app';
|
||||
|
@ -8,6 +8,7 @@ import { useI18n } from '@/hooks/useI18n';
|
|||
|
||||
import type { LoginData } from '@/models/user';
|
||||
import type { UserState } from './types';
|
||||
import { Message } from '@arco-design/web-vue';
|
||||
|
||||
const useUserStore = defineStore('user', {
|
||||
// 开启数据持久化
|
||||
|
@ -92,6 +93,24 @@ const useUserStore = defineStore('user', {
|
|||
this.logoutCallBack();
|
||||
}
|
||||
},
|
||||
// 是否已经登录
|
||||
async isLogin() {
|
||||
try {
|
||||
const res = await userIsLogin();
|
||||
const appStore = useAppStore();
|
||||
setToken(res.sessionId, res.csrfToken);
|
||||
this.setInfo(res);
|
||||
if (appStore.currentOrgId === '') {
|
||||
appStore.setCurrentOrgId(res.lastOrganizationId || '');
|
||||
}
|
||||
return true;
|
||||
} catch (err) {
|
||||
const { t } = useI18n();
|
||||
Message.error(t('message.loginExpired'));
|
||||
this.logoutCallBack();
|
||||
return false;
|
||||
}
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
:disabled="!isXpack"
|
||||
allow-search
|
||||
:options="affiliatedOrgOption"
|
||||
:default-value="isXpack ? '' : 'default_organization'"
|
||||
:placeholder="t('system.project.affiliatedOrgPlaceholder')"
|
||||
:field-names="{ label: 'name', value: 'id' }"
|
||||
>
|
||||
|
@ -103,7 +104,7 @@
|
|||
const affiliatedOrgOption = ref<SystemOrgOption[]>([]);
|
||||
const licenseStore = useLicenseStore();
|
||||
const moduleOption = [
|
||||
{ label: 'menu.workplace', value: 'workstation' },
|
||||
{ label: 'menu.workbench', value: 'workstation' },
|
||||
{ label: 'menu.testPlan', value: 'testPlan' },
|
||||
{ label: 'menu.bugManagement', value: 'bugManagement' },
|
||||
{ label: 'menu.featureTest', value: 'caseManagement' },
|
||||
|
|
Loading…
Reference in New Issue