common.ts 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /** @format */
  2. import { defineStore } from 'pinia'
  3. import { useUserStore } from './user'
  4. export const useCommonStore = defineStore(
  5. 'commonStore',
  6. () => {
  7. const navigateTextColor = ref('#ffffff')
  8. const navigateBgColor = ref('#0F0820')
  9. const loginType = ref<string>('choice')
  10. const downloadCatalog = ref<any>(null)
  11. const accountList = ref<any>([])
  12. // const userStore = useUserStore()
  13. const loginedAccountList = computed(() => {
  14. // 获取已经登陆的账号列表的前两位
  15. return accountList.value.filter((item: any) => item.email).slice(0, 2)
  16. })
  17. /**
  18. * 设置头部导航背景色
  19. */
  20. const setNavigateBgColor = (color: string) => {
  21. if (!color)
  22. return
  23. color = color.toUpperCase()
  24. if (color === '#0F0820') {
  25. navigateTextColor.value = '#ffffff'
  26. navigateBgColor.value = 'rgba(15,8,32, 0.7)'
  27. }
  28. else if (color === '#F3F4FB') {
  29. navigateTextColor.value = '#0F0820'
  30. navigateBgColor.value = 'rgba(243,244,251, 0.7)'
  31. }
  32. else if (color === '#FFFFFF') {
  33. navigateTextColor.value = '#0F0820'
  34. navigateBgColor.value = 'rgba(255, 255, 255, 0.7)'
  35. }
  36. }
  37. /**
  38. * 设置已经登陆的账号列表 (在登陆成功后调用)
  39. */
  40. const pushAccount = (user: any) => {
  41. if (!user || !user.email)
  42. return
  43. // 检查是否已经存在相同的账号
  44. const existingAccount = accountList.value.find((item: any) => item.email === user.email && item.type === user.type)
  45. if (existingAccount)
  46. return
  47. accountList.value.push(user)
  48. }
  49. /**
  50. * type 登录方式
  51. *
  52. */
  53. const setLoginType = (type: string) => {
  54. if (!type)
  55. return
  56. loginType.value = type
  57. }
  58. /**
  59. * 设置当前的下载的目录数据
  60. */
  61. const setDownloadCatalog = (catalog: any) => {
  62. if (!catalog)
  63. return
  64. downloadCatalog.value = catalog
  65. }
  66. return {
  67. navigateTextColor,
  68. navigateBgColor,
  69. downloadCatalog,
  70. setNavigateBgColor,
  71. setLoginType,
  72. accountList,
  73. loginType,
  74. pushAccount,
  75. loginedAccountList,
  76. setDownloadCatalog,
  77. }
  78. },
  79. {
  80. persist: true,
  81. },
  82. )