index.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import {defineStore} from 'pinia'
  2. import pinia from "../store/init"
  3. import config from '../config/index';
  4. import {getStorage, setStorage, clearStorage} from "@/utils/storage";
  5. export const useAppStore = defineStore('main', {
  6. state: () => ({
  7. //系统信息
  8. title: config.theme,
  9. //用户信息
  10. tenantId: config.tenantId,
  11. userInfo: getStorage('userInfo') ?? {},
  12. //项目合同段数据
  13. projectInfo: getStorage('projectInfo') ?? {},
  14. contractInfo: getStorage('contractInfo') ?? {},
  15. projectId: getStorage('projectId') ?? '',
  16. contractId: getStorage('contractId') ?? '',
  17. isAnimation: getStorage('isAnimation') ?? false,
  18. //消息数据
  19. msgCountData: getStorage('msgCountData') ?? {}
  20. }),
  21. actions: {
  22. //系统信息
  23. setTitle(value) {
  24. this.title = value
  25. },
  26. //用户信息
  27. setTenantId(value) {
  28. this.tenantId = value
  29. setStorage('tenantId', value)
  30. },
  31. setUserInfo(value) {
  32. this.userInfo = value
  33. setStorage('userInfo', value)
  34. },
  35. //项目合同段数据
  36. setProjectInfo(value) {
  37. this.projectInfo = value
  38. setStorage('projectInfo', value)
  39. },
  40. setContractInfo(value) {
  41. this.contractInfo = value
  42. setStorage('contractInfo', value)
  43. },
  44. setProjectId(value) {
  45. this.projectId = value
  46. setStorage('projectId', value)
  47. },
  48. setContractId(value) {
  49. this.contractId = value
  50. setStorage('contractId', value)
  51. },
  52. setAnimation(value) {
  53. this.isAnimation = value
  54. setStorage('isAnimation', value)
  55. },
  56. setMsgCountData(value) {
  57. this.msgCountData = value
  58. setStorage('msgCountData', value)
  59. },
  60. //清除缓存和token
  61. clearStoreData() {
  62. //清除状态
  63. this.title = config.theme
  64. //用户信息
  65. this.tenantId = config.tenantId
  66. this.userInfo = {}
  67. //项目合同段数据
  68. this.projectInfo = {}
  69. this.contractInfo = {}
  70. this.projectId = ''
  71. this.contractId = ''
  72. this.msgCountData = {}
  73. clearStorage()
  74. },
  75. }
  76. })
  77. export default function useUserStoreWidthOut() {
  78. return useAppStore(pinia);
  79. }