user.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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,
  14. getSession,
  15. setSession
  16. } from '@/utils/auth'
  17. import {
  18. reLogin,
  19. keepSession
  20. } from '@/api/login.js'
  21. import $modal from '@/plugins/modal.js'
  22. export const useUserStore = defineStore('user', () => {
  23. const user = ref(getUserInfo()) // 用户信息
  24. const useId = ref(0) // staffId
  25. const timer = ref(true) //定时器
  26. function keep() {
  27. keepSession().then(res => {
  28. setTimeout(() => {
  29. if (timer.value) {
  30. keep()
  31. }
  32. }, 600000)
  33. })
  34. }
  35. // 登录方法
  36. function Login(userInfo) {
  37. let username = userInfo.username
  38. const password = userInfo.password
  39. const loginInfo = {
  40. username,
  41. password
  42. }
  43. return new Promise((resolve, reject) => {
  44. username = username.trim()
  45. login(username, password)
  46. .then(res => {
  47. useId.value = res.returnParams.useId // 设置staffId
  48. // user.value = res.returnParams
  49. //保存账号密码
  50. uni.setStorageSync('loginInfo', loginInfo)
  51. if (username.includes('@')) {
  52. username = username.split('@')[0]
  53. }
  54. reLogin(username, password).then((res) => {
  55. if ("ok" === res.data) {
  56. setSession(res.cookies[0].split("=")[1].split(";")[0]);
  57. timer.value = true
  58. keep()
  59. }
  60. })
  61. resolve(res)
  62. })
  63. .catch(error => {
  64. reject(error)
  65. })
  66. })
  67. }
  68. function GetInfo(index) {
  69. const roleIndex = index || 0
  70. if (useId.value == 0) {
  71. useId.value = uni.getStorageSync('userInfo').useId
  72. }
  73. return new Promise((resolve, reject) => {
  74. getInfo(useId.value).then(res => {
  75. if ("Exception" == res.returnMsg) {
  76. $modal.msgError(res.returnParams)
  77. reject(res.returnParams)
  78. }
  79. user.value = res.returnParams[roleIndex]
  80. // 保存 用户信息
  81. uni.setStorageSync('userInfo', user.value)
  82. resolve(res)
  83. })
  84. .catch(error => {
  85. reject(error)
  86. })
  87. })
  88. }
  89. function LogOut() {
  90. return new Promise((resolve, reject) => {
  91. // logout().then(() => {
  92. user.value = {}
  93. useId.value = 0
  94. timer.value = false
  95. uni.clearStorageSync()
  96. resolve()
  97. }).catch(error => {
  98. reject(error)
  99. })
  100. // })
  101. }
  102. return {
  103. user,
  104. useId,
  105. Login,
  106. GetInfo,
  107. LogOut
  108. }
  109. })