user.ts 753 B

12345678910111213141516171819202122232425262728293031
  1. import { defineStore } from 'pinia'
  2. import { ref, computed } from 'vue'
  3. //用户相关的状态管理
  4. export const useUserStore = defineStore('user', () => {
  5. // State
  6. const schoolLogo = ref<string>('')
  7. // 如果需要管理 userInfo,也可以放在这里,但通常 userInfo 存在 localStorage 中
  8. // 这里我们主要解决 header.vue 中用到的 schoolLogo
  9. // Getters (可选,如果需要计算属性)
  10. const hasLogo = computed(() => !!schoolLogo.value)
  11. // Actions
  12. function setSchoolLogo(logo: string) {
  13. schoolLogo.value = logo
  14. }
  15. function clearUserState() {
  16. schoolLogo.value = ''
  17. // 清除其他用户相关状态
  18. }
  19. return {
  20. schoolLogo,
  21. hasLogo,
  22. setSchoolLogo,
  23. clearUserState
  24. }
  25. })