userInfo.ts 927 B

12345678910111213141516171819202122232425262728293031323334
  1. import { defineStore } from 'pinia';
  2. import { UserInfo } from './interface';
  3. export const useUserInfo = defineStore('userInfo', {
  4. state: (): UserInfo => {
  5. return {
  6. id: 0,
  7. userType: 0,
  8. userName: '',
  9. nickName: '',
  10. token: '',
  11. refreshToken: '',
  12. };
  13. },
  14. actions: {
  15. dataFill(state: UserInfo) {
  16. this.$state = { ...this.$state, ...state };
  17. },
  18. removeToken() {
  19. this.token = '';
  20. this.refreshToken = '';
  21. },
  22. setToken(token: string, type: 'auth' | 'refresh') {
  23. const field = type == 'auth' ? 'token' : 'refreshToken';
  24. this[field] = token;
  25. },
  26. getToken(type: 'auth' | 'refresh' = 'auth') {
  27. return type === 'auth' ? this.token : this.refreshToken;
  28. },
  29. },
  30. persist: {
  31. key: 'userInfo',
  32. },
  33. });