index.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { defineStore } from 'pinia'
  2. import pinia from '~src/store/init'
  3. import { clearStoreAll, getStore, setStore } from '~src/utils/storage'
  4. export const useAppStore = defineStore('main', {
  5. state: () => ({
  6. //用户信息
  7. userInfo: getStore('userInfo') || {},
  8. //菜单信息
  9. home: getStore('home') || 'index',
  10. page: getStore('page') || 'anomaly',
  11. buttons: getStore('buttons') || {},
  12. }),
  13. getters: {
  14. getUserInfo: state => state.userInfo,
  15. getHome: state => state.home,
  16. getPage: state => state.page,
  17. getButtons: state => state.buttons,
  18. },
  19. actions: {
  20. //用户信息
  21. setUserInfo(value) {
  22. this.userInfo = value
  23. setStore('userInfo', value)
  24. },
  25. //菜单信息
  26. setButtons(value) {
  27. this.buttons = value
  28. setStore('buttons', value)
  29. },
  30. setHomePage(value) {
  31. this.home = value
  32. setStore('home', value)
  33. },
  34. setPage(value) {
  35. this.page = value
  36. setStore('page', value)
  37. },
  38. getButtonsVal(value) {
  39. return this.buttons[value] || false
  40. },
  41. //清除缓存和token
  42. clearStoreData() {
  43. this.userInfo = null
  44. this.home = 'index'
  45. this.page = 'anomaly'
  46. this.buttons = null
  47. //清除缓存
  48. clearStoreAll()
  49. },
  50. },
  51. })
  52. export default function useUserStoreWidthOut() {
  53. return useAppStore(pinia)
  54. }