user.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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. export const useUserStore = defineStore('user', () => {
  22. const user = ref(getUserInfo()) // 用户信息
  23. const useId = ref(0) // staffId
  24. const timer = ref(true) //定时器
  25. function keep() {
  26. keepSession().then(res => {
  27. setTimeout(() => {
  28. if (timer.value) {
  29. keep()
  30. }
  31. }, 600000)
  32. })
  33. }
  34. // 登录方法
  35. function Login(userInfo) {
  36. const username = userInfo.username
  37. const password = userInfo.password
  38. const loginInfo = {
  39. username,
  40. password
  41. }
  42. return new Promise((resolve, reject) => {
  43. login(username.trim(), password)
  44. .then(res => {
  45. useId.value = res.returnParams.useId // 设置staffId
  46. user.value = res.returnParams
  47. //保存账号密码
  48. uni.setStorageSync('loginInfo', loginInfo)
  49. // setSession(res.session)
  50. reLogin(username.trim(), password).then((res) => {
  51. if ("ok" === res.data) {
  52. setSession(res.cookies[0].split("=")[1].split(";")[0]);
  53. timer.value = true
  54. keep()
  55. }
  56. })
  57. resolve(res)
  58. })
  59. .catch(error => {
  60. reject(error)
  61. })
  62. })
  63. }
  64. function GetInfo(index) {
  65. const roleIndex = index || 0
  66. return new Promise((resolve, reject) => {
  67. getInfo(useId.value).then(res => {
  68. const source = res.returnParams[roleIndex]
  69. Object.keys(source).forEach(key => {
  70. // 目标对象没有该属性或者该属性为 null,则赋值
  71. if (!(key in user.value) || user.value[key] === null || user.value[
  72. key] === "") {
  73. user.value[key] = source[key] === undefined ? user.value[key] :
  74. source[key];
  75. }
  76. });
  77. // 保存 用户信息
  78. uni.setStorageSync('userInfo', user.value)
  79. resolve(res)
  80. })
  81. .catch(error => {
  82. reject(error)
  83. })
  84. })
  85. }
  86. function LogOut() {
  87. return new Promise((resolve, reject) => {
  88. // logout().then(() => {
  89. user.value = {}
  90. useId.value = 0
  91. timer.value = false
  92. uni.clearStorageSync()
  93. resolve()
  94. }).catch(error => {
  95. reject(error)
  96. })
  97. // })
  98. }
  99. return {
  100. user,
  101. useId,
  102. Login,
  103. GetInfo,
  104. LogOut
  105. }
  106. })