Merge branch 'dev' of https://fcd.gdyditc.com/itc-framework/ma/2024/front into dev
This commit is contained in:
@ -33,7 +33,7 @@ export function createPermissionGuard(router: Router) {
|
||||
|
||||
// Whitelist can be directly entered
|
||||
if (whitePathList.includes(to.path as PageEnum)) {
|
||||
if (to.path === LOGIN_PATH && token) {
|
||||
if (to.path === LOGIN_PATH && token && !to.query?.ltpasToken) {
|
||||
const isSessionTimeout = userStore.getSessionTimeout;
|
||||
try {
|
||||
await userStore.afterLoginAction();
|
||||
|
||||
@ -131,11 +131,12 @@ export const useUserStore = defineStore({
|
||||
): Promise<GetUserInfoModel | null> {
|
||||
try {
|
||||
const data = await singleLoginApi(params, params.mode);
|
||||
const userInfo = await this.getUserInfoAction();
|
||||
|
||||
const { token } = data;
|
||||
// save token
|
||||
this.setToken(token);
|
||||
router.replace(params.targetURL)
|
||||
router.replace(params.targetURL || params.redirect || userInfo?.homePath || PageEnum.BASE_HOME)
|
||||
|
||||
return await this.afterLoginAction(false);
|
||||
} catch (error) {
|
||||
|
||||
@ -82,7 +82,9 @@ const transform: AxiosTransform = {
|
||||
timeoutMsg = t('登录超时,请重新登录!');
|
||||
const userStore = useUserStoreWithOut();
|
||||
userStore.setToken(undefined);
|
||||
if (!window.location.hash.includes('login')) {
|
||||
userStore.logout(true);
|
||||
}
|
||||
const go = useGo();
|
||||
go('/login');
|
||||
break;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div :class="prefixCls" class="login-box relative w-full h-full">
|
||||
<div :class="prefixCls" class="login-box relative w-full h-full" v-if="!isSingleLogin">
|
||||
<div class="center-box">
|
||||
<div class="login-left-title">
|
||||
<div class="sub-title">{{ sysName }}</div>
|
||||
@ -9,14 +9,41 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 100%; height: 300px; display: flex;justify-content: center;align-items: center;" v-else>
|
||||
<a-spin />
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import LoginForm from './LoginForm.vue';
|
||||
import { useUserStore } from '/@/store/modules/user';
|
||||
import { useDesign } from '/@/hooks/web/useDesign';
|
||||
import { useAppStore } from '/@/store/modules/app';
|
||||
import { getLogoInfo } from '/@/api/system/login';
|
||||
import { onMounted } from 'vue';
|
||||
import { ref } from 'vue';
|
||||
import { LogoConfig } from '/#/config';
|
||||
import { useRouter } from 'vue-router';
|
||||
const { currentRoute } = useRouter();
|
||||
const userStore = useUserStore();
|
||||
const isSingleLogin = ref(false)
|
||||
onMounted(async () => {
|
||||
const fullPath = currentRoute.value.fullPath;
|
||||
if (currentRoute.value.query?.ltpasToken) {
|
||||
isSingleLogin.value = true
|
||||
let targetURL = ''
|
||||
let redirect = ''
|
||||
if (fullPath.includes('targetURL')) {
|
||||
const list = fullPath.split('targetURL=');
|
||||
targetURL = list[1];
|
||||
} else {
|
||||
const list = fullPath.split('redirect=');
|
||||
redirect = list[1];
|
||||
}
|
||||
let params = {...currentRoute.value.query, targetURL: targetURL,redirect: redirect, mode: 'none' }; //不要默认的错误提示
|
||||
await userStore.singleLogin(params);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
const appStore = useAppStore();
|
||||
defineProps({
|
||||
|
||||
Reference in New Issue
Block a user