index.js 4.5 KB

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