user.ts 874 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import { defineStore } from 'pinia'
  2. const initState = { nickname: '', avatar: '' }
  3. export const useUserStore = defineStore(
  4. 'user',
  5. () => {
  6. const userInfo = ref<IUserInfo>({ ...initState })
  7. const setUserInfo = (val: IUserInfo) => {
  8. userInfo.value = val
  9. }
  10. const clearUserInfo = () => {
  11. userInfo.value = { ...initState }
  12. }
  13. // 一般没有reset需求,不需要的可以删除
  14. const reset = () => {
  15. userInfo.value = { ...initState }
  16. }
  17. const isLogined = computed(() => !!userInfo.value.accessToken)
  18. const isMerchant = computed(() => userInfo.value.appLoginType === 4)
  19. const isAgent = computed(() => userInfo.value.appLoginType === 3)
  20. return {
  21. userInfo,
  22. setUserInfo,
  23. clearUserInfo,
  24. isLogined,
  25. isMerchant,
  26. isAgent,
  27. reset,
  28. }
  29. },
  30. {
  31. persist: true,
  32. },
  33. )