user.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import {
  2. defineStore
  3. } from 'pinia'
  4. import {
  5. ref
  6. } from 'vue'
  7. import {
  8. login,
  9. getInfo,
  10. logout
  11. } from '@/api/login.js'
  12. import {
  13. getUserInfo,getSession,setSession
  14. } from '@/utils/auth'
  15. import { reLogin } from '@/api/login.js'
  16. export const useUserStore = defineStore('user', () => {
  17. const user = ref(getUserInfo()) // 用户信息
  18. const useId = ref(0) // staffId
  19. // 登录方法
  20. function Login(userInfo) {
  21. const username = userInfo.username
  22. const password = userInfo.password
  23. return new Promise((resolve, reject) => {
  24. login(username.trim(), password)
  25. .then(res => {
  26. useId.value = res.returnParams.useId // 设置staffId
  27. user.value = res.returnParams
  28. // setSession(res.session)
  29. reLogin(username.trim(), password).then((res)=>{
  30. if("ok"===res.data){
  31. setSession(res.cookies[0].split("=")[1].split(";")[0]);
  32. }
  33. })
  34. resolve(res)
  35. })
  36. .catch(error => {
  37. reject(error)
  38. })
  39. })
  40. }
  41. function GetInfo(index) {
  42. const roleIndex = index || 0
  43. return new Promise((resolve, reject) => {
  44. getInfo(useId.value).then(res => {
  45. const source = res.returnParams[roleIndex]
  46. Object.keys(source).forEach(key => {
  47. // 目标对象没有该属性或者该属性为 null,则赋值
  48. if (!(key in user.value) || user.value[key] === null || user.value[key] === "") {
  49. user.value[key] = source[key] === undefined ? user.value[key] : source[key];
  50. }
  51. });
  52. // 保存 用户信息
  53. uni.setStorageSync('userInfo', user.value)
  54. resolve(res)
  55. })
  56. .catch(error => {
  57. reject(error)
  58. })
  59. })
  60. }
  61. function LogOut() {
  62. return new Promise((resolve, reject) => {
  63. // logout().then(() => {
  64. user.value = {}
  65. useId.value = 0
  66. uni.clearStorageSync()
  67. resolve()
  68. }).catch(error => {
  69. reject(error)
  70. })
  71. // })
  72. }
  73. return {
  74. user,
  75. useId,
  76. Login,
  77. GetInfo,
  78. LogOut
  79. }
  80. })