index.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { defineStore } from 'pinia'
  2. import pinia from '~src/store/init'
  3. import { setStore, getStore, clearStoreAll } from 'hc-vue3-ui'
  4. export const useAppStore = defineStore('main', {
  5. state: () => ({
  6. //主题信息
  7. theme: getStore('theme') || 'auto', //用户可选择类型:auto,light, dark
  8. color: getStore('color') || '#409EFF', //主题色
  9. //用户信息
  10. tenantId: getStore('tenantId') || '',
  11. userInfo: getStore('userInfo') || {},
  12. //项目合同段数据
  13. projectContract: getStore('projectContract') || [],
  14. projectInfo: getStore('projectInfo') || {},
  15. contractInfo: getStore('contractInfo') || {},
  16. }),
  17. actions: {
  18. //主题信息
  19. setTheme(value) {
  20. this.theme = value
  21. setStore('theme', value)
  22. },
  23. setColor(value) {
  24. this.color = value
  25. setStore('color', value)
  26. },
  27. //用户信息
  28. setTenantId(value) {
  29. this.tenantId = value
  30. setStore('tenantId', value)
  31. },
  32. setUserInfo(value) {
  33. this.userInfo = value
  34. setStore('userInfo', value)
  35. },
  36. //项目合同段数据
  37. setProjectContract(value) {
  38. this.projectContract = value
  39. setStore('projectContract', value)
  40. },
  41. setProjectInfo(value) {
  42. this.projectInfo = value
  43. setStore('projectInfo', value)
  44. },
  45. setContractInfo(value) {
  46. this.contractInfo = value
  47. setStore('contractInfo', value)
  48. },
  49. //清除缓存和token
  50. clearStoreData() {
  51. //清除状态
  52. this.tenantId = null
  53. this.userInfo = null
  54. this.projectContract = null
  55. this.projectInfo = null
  56. this.contractInfo = null
  57. //清除所有缓存
  58. clearStoreAll()
  59. },
  60. },
  61. })
  62. export default function useUserStoreWidthOut() {
  63. return useAppStore(pinia)
  64. }