index.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. import {defineStore} from 'pinia'
  2. import pinia from "~src/store/init"
  3. import appConfig from '~src/config/app';
  4. import logopng from "~src/assets/logo/logo.png";
  5. import {getStoreValue, setStoreValue, clearStoreAll} from '~src/utils/storage'
  6. import {setToken, setRefreshToken, removeToken, removeRefreshToken} from '~src/api/util/auth'
  7. export const useAppStore = defineStore('main', {
  8. state: () => ({
  9. //系统信息
  10. title: getStoreValue('title') || appConfig.title,
  11. appLogo: getStoreValue('appLogo') || logopng,
  12. //主题信息
  13. theme: getStoreValue('theme') || appConfig.theme, //用户可选择类型:auto,light, dark
  14. themeVal: getStoreValue('themeVal') || '', //实际主题:light, dark
  15. color: getStoreValue('color') || appConfig.color,
  16. //用户信息
  17. token: getStoreValue('token') || '',
  18. refreshToken: getStoreValue('refreshToken') || '',
  19. tenantId: getStoreValue('tenantId') || '',
  20. userInfo: getStoreValue('userInfo') || {},
  21. //菜单信息
  22. menus: getStoreValue('menus') || [],
  23. buttons: getStoreValue('buttons') || {},
  24. //其他配置信息
  25. isCollapse: getStoreValue('isCollapse') || false, //菜单折叠
  26. dragModalSortTop: [], //拖拽弹窗排序
  27. barMenuName: '', //当前菜单名称
  28. }),
  29. getters: {
  30. //系统信息
  31. getTitle: state => state.title,
  32. getAppLogo: state => state.appLogo,
  33. //主题信息
  34. getTheme: state => state.theme,
  35. getThemeVal: state => state.themeVal,
  36. getColor: state => state.color,
  37. //用户信息
  38. getToken: state => state.token,
  39. getRefreshToken: state => state.refreshToken,
  40. getTenantId: state => state.tenantId,
  41. getUserInfo: state => state.userInfo,
  42. //菜单信息
  43. getMenus: state => state.menus,
  44. getButtons: state => state.buttons,
  45. //其他配置信息
  46. getCollapse: state => state.isCollapse,
  47. getDragModalSortTop: state => state.dragModalSortTop,
  48. },
  49. actions: {
  50. //系统信息
  51. setTitle(value) {
  52. this.title = value
  53. setStoreValue('title', value)
  54. },
  55. setAppLogo(value) {
  56. this.appLogo = value
  57. setStoreValue('appLogo', value)
  58. },
  59. //主题信息
  60. setTheme(value) {
  61. this.theme = value
  62. setStoreValue('theme', value)
  63. },
  64. setThemeVal(value) {
  65. this.themeVal = value
  66. setStoreValue('themeVal', value)
  67. },
  68. setColor(value) {
  69. this.color = value
  70. setStoreValue('color', value)
  71. },
  72. //用户信息
  73. setTokenVal(value) {
  74. this.token = value
  75. setToken(value)
  76. setStoreValue('token', value)
  77. },
  78. setRefreshTokenVal(value) {
  79. this.refreshToken = value
  80. setRefreshToken(value)
  81. setStoreValue('refreshToken', value)
  82. },
  83. setTenantId(value) {
  84. this.tenantId = value
  85. setStoreValue('tenantId', value)
  86. },
  87. setUserInfo(value) {
  88. this.userInfo = value
  89. setStoreValue('userInfo', value)
  90. },
  91. //菜单信息
  92. setMenus(value) {
  93. this.menus = value
  94. setStoreValue('menus', value)
  95. },
  96. setButtons(value) {
  97. this.buttons = value
  98. setStoreValue('buttons', value)
  99. },
  100. getButtonsVal(value) {
  101. return this.buttons[value] || false;
  102. },
  103. //其他配置信息
  104. setCollapse(value) { //菜单折叠
  105. this.isCollapse = value
  106. setStoreValue('isCollapse', value)
  107. },
  108. setDragModalSortTop(value) {
  109. this.dragModalSortTop = value
  110. },
  111. //清除缓存和token
  112. clearStoreData() {
  113. //清除状态
  114. this.title = null
  115. this.appLogo = logopng
  116. this.token = null
  117. this.refreshToken = null
  118. this.tenantId = null
  119. this.userInfo = null
  120. this.menus = null
  121. this.buttons = null
  122. this.isCollapse = false
  123. this.dragModalSortTop = []
  124. //清除缓存
  125. clearStoreAll()
  126. removeToken()
  127. removeRefreshToken()
  128. },
  129. }
  130. })
  131. export default function useUserStoreWidthOut() {
  132. return useAppStore(pinia);
  133. }