user.js 962 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { defineStore } from 'pinia'
  2. import { ref } from 'vue'
  3. import { login, loginByCode, logout } from '../services/common'
  4. export const useUserStore = defineStore('user', () => {
  5. const userInfo = ref(uni.getStorageSync('userInfo') || { name: 'ming' })
  6. const setUserInfo = data => {
  7. userInfo.value = data
  8. uni.setStorageSync('userInfo', data)
  9. }
  10. const token = ref(uni.getStorageSync('token') || '')
  11. const setToken = data => {
  12. token.value = data
  13. uni.setStorageSync('token', data)
  14. }
  15. const login = data => {
  16. return login(data).then(res => {
  17. setUserInfo(res.userInfo)
  18. setToken(res.token)
  19. })
  20. }
  21. const loginByOpenId = data => {
  22. return loginByCode().then(res => {
  23. setUserInfo(res.userInfo)
  24. setToken(res.token)
  25. })
  26. }
  27. const logout = () => {
  28. return new Promise(resolve => {
  29. setUserInfo({})
  30. setToken('')
  31. resolve()
  32. })
  33. }
  34. return {
  35. userInfo,
  36. setUserInfo,
  37. token,
  38. setToken,
  39. login,
  40. loginByOpenId,
  41. logout
  42. }
  43. })