51 lines
1.4 KiB
TypeScript
Raw Normal View History

2026-01-08 16:35:06 +08:00
import { MyResponseType } from '@/common';
import { Apis } from '@/gen/Apis';
import { state } from './state';
export const stateActions = {
addLoading() {
state.session.loading++;
},
subLoading() {
state.session.loading--;
},
setReady(val: boolean) {
state.session.ready = val;
},
setLogin(res: MyResponseType) {
state.session.user = res.data.user;
state.session.campus = res.data.campus;
state.session.permissions = res.data.permissions;
if (res.data?.token?.access_token)
state.storage.access_token = res.data?.token?.access_token;
// 解析apis
const apiKeys: string[] = [];
res.data.permissions.forEach((permission: any) => {
if (permission.key) {
apiKeys.push(permission.key);
}
});
// console.log('apis', apis);
state.session.apiKeys = apiKeys;
},
setLogout() {
state.session.user = undefined;
state.session.campus = undefined;
state.session.permissions = undefined;
state.storage.access_token = undefined;
},
me: async () => {
const res = await Apis.Common.Auth.Me();
if (res.success) {
stateActions.setLogin(res);
return {
name: state.session.user.username,
apiKeys: state.session.apiKeys,
// permissions: res.data.permissions,
};
} else {
return { name: '未登录', apiKeys: [] };
}
},
};