userInfo.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import { defineStore } from 'pinia';
  2. import { UserInfosState, UserInfosStates } from './interface';
  3. import { Session } from '/@/utils/storage';
  4. import { getAPI } from '/@/utils/axios-utils';
  5. import { SysAuthApi, SysConstApi } from '/@/api-services/api';
  6. import { ConstOutput } from '/@/api-services/models';
  7. /**
  8. * 用户信息
  9. * @methods setUserInfos 设置用户信息
  10. */
  11. export const useUserInfo = defineStore('userInfo', {
  12. state: (): UserInfosStates => ({
  13. userInfos: {} as UserInfosState,
  14. constList: [] as Array<ConstOutput>,
  15. }),
  16. getters: {
  17. // 获取系统常量列表
  18. async getSysConstList(): Promise<any[]> {
  19. var res = await getAPI(SysConstApi).sysConstListGet();
  20. this.constList = res.data.result ?? [];
  21. return this.constList;
  22. },
  23. },
  24. actions: {
  25. async setUserInfos() {
  26. // 缓存用户信息
  27. if (Session.get('userInfo')) {
  28. this.userInfos = Session.get('userInfo');
  29. } else {
  30. const userInfos: any = await this.getApiUserInfo();
  31. this.userInfos = userInfos;
  32. }
  33. },
  34. // 获取当前用户信息
  35. async getApiUserInfo() {
  36. return new Promise((resolve) => {
  37. getAPI(SysAuthApi)
  38. .userInfoGet()
  39. .then((res: any) => {
  40. if (res.data.result == null) return;
  41. var d = res.data.result;
  42. const userInfos = {
  43. account: d.account,
  44. realName: d.realName,
  45. avatar: d.avatar ? d.avatar : '/favicon.ico',
  46. address: d.address,
  47. signature: d.signature,
  48. orgId: d.orgId,
  49. orgName: d.orgName,
  50. posName: d.posName,
  51. roles: [],
  52. authBtnList: d.buttons,
  53. time: new Date().getTime(),
  54. };
  55. resolve(userInfos);
  56. });
  57. });
  58. },
  59. },
  60. });