index.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import { Persistent, BasicKeys } from '/@/utils/cache/persistent';
  2. import { CacheTypeEnum } from '/@/enums/cacheEnum';
  3. import projectSetting from '/@/settings/projectSetting';
  4. import { TOKEN_KEY, LOGIN_INFO_KEY, TENANT_ID } from '/@/enums/cacheEnum';
  5. const { permissionCacheType } = projectSetting;
  6. const isLocal = permissionCacheType === CacheTypeEnum.LOCAL;
  7. /**
  8. * 获取token
  9. */
  10. export function getToken() {
  11. return getAuthCache<string>(TOKEN_KEY);
  12. }
  13. /**
  14. * 获取登录信息
  15. */
  16. export function getLoginBackInfo() {
  17. return getAuthCache(LOGIN_INFO_KEY);
  18. }
  19. /**
  20. * 获取租户id
  21. */
  22. export function getTenantId() {
  23. return getAuthCache<string>(TENANT_ID);
  24. }
  25. export function getAuthCache<T>(key: BasicKeys) {
  26. const fn = isLocal ? Persistent.getLocal : Persistent.getSession;
  27. return fn(key) as T;
  28. }
  29. export function setAuthCache(key: BasicKeys, value) {
  30. const fn = isLocal ? Persistent.setLocal : Persistent.setSession;
  31. return fn(key, value, true);
  32. }
  33. /**
  34. * 设置动态key
  35. * @param key
  36. * @param value
  37. */
  38. export function setCacheByDynKey(key, value) {
  39. const fn = isLocal ? Persistent.setLocal : Persistent.setSession;
  40. return fn(key, value, true);
  41. }
  42. /**
  43. * 获取动态key
  44. * @param key
  45. */
  46. export function getCacheByDynKey<T>(key) {
  47. const fn = isLocal ? Persistent.getLocal : Persistent.getSession;
  48. return fn(key) as T;
  49. }
  50. /**
  51. * 移除缓存中的某个属性
  52. * @param key
  53. * @update:移除缓存中的某个属性
  54. * @updateBy:lsq
  55. * @updateDate:2021-09-07
  56. */
  57. export function removeAuthCache<T>(key: BasicKeys) {
  58. const fn = isLocal ? Persistent.removeLocal : Persistent.removeSession;
  59. return fn(key) as T;
  60. }
  61. export function clearAuthCache(immediate = true) {
  62. const fn = isLocal ? Persistent.clearLocal : Persistent.clearSession;
  63. return fn(immediate);
  64. }