update 后台跳转大屏免登录,优化登录数据缓存

This commit is contained in:
zk
2024-05-18 15:16:10 +08:00
parent cb2a823d25
commit 6ff0b25f1b
8 changed files with 58 additions and 23 deletions
-1
View File
@@ -31,7 +31,6 @@ export const Map = {
}).then((res) => {
AMap = res;
const { zoom, center, mapStyle } = { ...defaultOption, ...option };
console.log('option', option, center);
//基本地图加载
this.map = new AMap.Map(el, {
resizeEnable: true,
@@ -86,8 +86,10 @@
setValue(result, page);
}
} catch {
const { result, page } = JSON.parse(getSession(PAGE2_RIGHT3));
setValue(result, page);
const { result, page } = getSession(PAGE2_RIGHT3) ? JSON.parse(getSession(PAGE2_RIGHT3)) : {};
if (result) {
setValue(result, page);
}
}
}
@@ -242,4 +244,4 @@
color: #8291a9;
border: none;
}
</style>
</style>
+30
View File
@@ -0,0 +1,30 @@
export interface RoleInfo {
roleName: string;
value: string;
}
export interface UserInfo {
id: string | number;
userId: string | number;
username: string;
realname: string;
avatar: string;
desc?: string;
homePath?: string;
tenantid?: string | number;
roles: RoleInfo[];
orgCode?: string;
}
export interface LoginInfo {
multi_depart?: string | number;
userInfo?: object;
departs?: [];
tenantList?: [];
isLogin?: boolean;
}
export interface LoginParams {
username: string;
password: string;
}
+10 -9
View File
@@ -4,6 +4,7 @@ import { TOKEN_KEY, USER_INFO_KEY } from '/@/enum/cacheEnum.ts';
import { getBaseLogin, PageEnum } from '/@/enum/pageEnum.ts';
import { getAuthCache, setAuthCache } from '/@/utils/auth.ts';
import { useRouter } from 'vue-router';
import { LoginInfo, LoginParams, UserInfo } from '/@/store/modules/storeType.ts';
const router = useRouter();
export const useUserStore = defineStore({
@@ -15,32 +16,32 @@ export const useUserStore = defineStore({
loginInfo: null,
}),
getters: {
getUserInfo() {
getUserInfo(): UserInfo {
return (this.userInfo && Object.keys(this.userInfo).length > 0) || getAuthCache(USER_INFO_KEY) || {};
},
getLoginInfo() {
return this.loginInfo;
getLoginInfo(): LoginInfo {
return this.loginInfo || {};
},
getToken() {
getToken(): string {
return this.token || getAuthCache(TOKEN_KEY);
},
},
actions: {
setToken(info) {
this.token = info;
setToken(info: string | undefined) {
this.token = info ? info : '';
setAuthCache(TOKEN_KEY, info);
},
setUserInfo(info) {
setUserInfo(info: UserInfo | null) {
this.userInfo = info;
setAuthCache(USER_INFO_KEY, info);
},
setLoginInfo(info) {
setLoginInfo(info: LoginInfo | null) {
this.loginInfo = info;
},
/**
* 登录事件
*/
async login(params) {
async login(params: LoginParams) {
try {
const { goHome = true, mode, ...loginParams } = params;
const data = await loginApi(loginParams, mode);
+5 -5
View File
@@ -1,4 +1,4 @@
import { isJSON } from '/@/utils/is.ts';
import { isJSON, isObjectOrArray } from '/@/utils/is.ts';
export function getAuthCache(key) {
let v = localStorage.getItem(key);
@@ -10,9 +10,9 @@ export function getAuthCache(key) {
}
export function setAuthCache(key, value) {
if (!isJSON(value)) {
return localStorage.setItem(key, value);
} else {
if (isObjectOrArray(value)) {
return localStorage.setItem(key, JSON.stringify(value));
} else {
return localStorage.setItem(key, value);
}
}
}
+6 -1
View File
@@ -18,4 +18,9 @@ export function isJSON(str) {
} catch (e) {
return false;
}
}
}
//是否为对象或数组
export function isObjectOrArray(obj) {
return isObject(obj) || isArray(obj);
}
-1
View File
@@ -105,7 +105,6 @@
const router = useRouter();
const route = useRoute();
console.log('route', route);
const prefixCls = 'mini-login';
const { notification, createMessage } = useMessage();
const userStore = useUserStore();
+2 -3
View File
@@ -10,14 +10,13 @@
const userStore = useUserStore();
const { baseLogin, baseHome, msg } = JSON.parse(route.query.data);
setBaseLogin(baseLogin);
userStore.setToken(msg);
getUserInfo().then((res) => {
const { code, result } = res;
const { code, result } = res || {};
if (code == 200) {
userStore.setToken(msg);
userStore.setUserInfo(result.userInfo);
router.push(baseHome);
}
});
console.log('route', route);
</script>
<style scoped lang="less"></style>