LocalStorage.ts 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. interface AccountPassword {
  2. account: string,
  3. password: string,
  4. };
  5. interface UserInfo {
  6. id: number,
  7. name: string,
  8. };
  9. class LocalStorage {
  10. // 存储账号密码
  11. setAccountPassword = (accountPassword?: AccountPassword) => {
  12. if (accountPassword) {
  13. localStorage.setItem('accountPassword', JSON.stringify(accountPassword));
  14. } else {
  15. localStorage.removeItem('accountPassword');
  16. }
  17. }
  18. // 存储凭证
  19. setToken = (token: string) => {
  20. localStorage.setItem('token', token);
  21. }
  22. // 存储用户信息
  23. setUserInfo = (info: UserInfo) => {
  24. localStorage.setItem('userInfo', JSON.stringify(info));
  25. }
  26. // 存储菜单类型
  27. setMenuType = (type: number) => {
  28. localStorage.setItem('menuType', String(type));
  29. }
  30. // 获取账号密码
  31. getAccountPassword = () => {
  32. const infoString = localStorage.getItem('accountPassword');
  33. if (infoString) {
  34. const info: AccountPassword = JSON.parse(infoString);
  35. return info;
  36. } else {
  37. return undefined;
  38. }
  39. }
  40. // 获取凭证
  41. getToken = () => {
  42. const token = localStorage.getItem('token');
  43. if (token) {
  44. return token as string;
  45. } else {
  46. this.clear();
  47. return undefined;
  48. }
  49. }
  50. // 获取用户信息
  51. getUserInfo = () => {
  52. const infoString = localStorage.getItem('userInfo');
  53. if (infoString) {
  54. const info: UserInfo = JSON.parse(infoString);
  55. return info;
  56. } else {
  57. return undefined;
  58. }
  59. }
  60. // 获取菜单类型
  61. getMenuType = () => {
  62. const menuType = localStorage.getItem('menuType');
  63. if (menuType) {
  64. return Number(menuType);
  65. } else {
  66. return 0;
  67. }
  68. }
  69. // 清除
  70. clear = () => {
  71. /*
  72. * 保留密码
  73. */
  74. const accountPassword = this.getAccountPassword();
  75. const cloneAccountPassword = accountPassword ? { ...accountPassword } : undefined;
  76. localStorage.clear();
  77. this.setAccountPassword(cloneAccountPassword);
  78. }
  79. // 存储roles
  80. setRoles = (roles: string) => {
  81. localStorage.setItem('roles', JSON.stringify(roles));
  82. }
  83. // 存储permissions
  84. setPermissions = (permissions: string) => {
  85. localStorage.setItem('permissions', JSON.stringify(permissions));
  86. }
  87. // 获取roles
  88. getRoles = (): string | null => {
  89. const rolesStr = localStorage.getItem('roles');
  90. return rolesStr;
  91. }
  92. // 获取permissions
  93. getPermissions = (): string | null => {
  94. const permissionsStr = localStorage.getItem('permissions');
  95. return permissionsStr;
  96. }
  97. getStatusFlag = (permissionsStr: string): boolean => {
  98. const permissions = this.getPermissions();
  99. if (permissions && (permissions.includes('*:*:*') || permissions.includes(permissionsStr))) {
  100. // admin
  101. return true;
  102. }
  103. return false;
  104. }
  105. getStatusRoleFlag = (): boolean => {
  106. const roles = this.getRoles();
  107. if (roles && (roles.includes('admin') || roles.includes('manager'))) {
  108. return true;
  109. }else{
  110. return false;
  111. }
  112. }
  113. }
  114. export default new LocalStorage();