UserInfo.ets 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. import { emitter } from '@kit.BasicServicesKit'
  2. import { AppStorageKeyCollect } from '../constants'
  3. /**
  4. * @description 用户信息类,可结合AppStorage使用,实现响应式更换用户信息,使用时替换为后端传回的用户属性即可
  5. */
  6. export class UserInfo {
  7. static KEY: string = 'UserInfo'
  8. private declare static instance: UserInfo
  9. private isLogin: boolean = false
  10. private token?: string
  11. //此注释下的属性可按需更改
  12. private memberName?: string
  13. private memberPhone?: string
  14. private memberEmail?: string
  15. private memberIcon?: string
  16. private aiCount?: number
  17. private userId?: number
  18. private memberScore?: number
  19. private constructor() {
  20. }
  21. /**
  22. * 获取用户单例
  23. * @returns UserInfo
  24. */
  25. static getInstance() {
  26. if (!UserInfo.instance) {
  27. UserInfo.instance = new UserInfo()
  28. }
  29. return UserInfo.instance
  30. }
  31. /**
  32. * 设置用户信息并且设置登录状态
  33. * @param _userInfo
  34. */
  35. setUserInfoAndLogin(_userInfo: UserInfo) {
  36. UserInfo.getInstance().isLogin = true
  37. if (_userInfo.token) {
  38. UserInfo.getInstance().token = _userInfo.token
  39. }
  40. UserInfo.getInstance().memberEmail = _userInfo.memberEmail
  41. UserInfo.getInstance().memberIcon = _userInfo.memberIcon
  42. UserInfo.getInstance().memberName = _userInfo.memberName
  43. UserInfo.getInstance().userId = _userInfo.userId
  44. UserInfo.getInstance().memberScore = _userInfo.memberScore
  45. UserInfo.getInstance().aiCount = _userInfo.aiCount
  46. UserInfo.getInstance().memberPhone = _userInfo.memberPhone
  47. emitter.emit('refreshList')
  48. AppStorage.setOrCreate(UserInfo.KEY, UserInfo.getInstance())
  49. }
  50. /**
  51. * @description 登出并清空用户信息
  52. */
  53. logout() {
  54. UserInfo.getInstance().isLogin = false
  55. UserInfo.getInstance().token = undefined
  56. UserInfo.getInstance().memberEmail = undefined
  57. UserInfo.getInstance().memberIcon = undefined
  58. UserInfo.getInstance().memberName = undefined
  59. UserInfo.getInstance().userId = undefined
  60. UserInfo.getInstance().memberScore = undefined
  61. UserInfo.getInstance().aiCount = undefined
  62. UserInfo.getInstance().memberPhone = undefined
  63. AppStorage.setOrCreate(UserInfo.KEY, UserInfo.getInstance())
  64. AppStorage.setOrCreate(AppStorageKeyCollect.TOKEN, undefined)
  65. }
  66. /**
  67. * 检测用户是否登录
  68. * @returns boolean
  69. */
  70. checkLogin() {
  71. return UserInfo.getInstance().isLogin
  72. }
  73. getToken() {
  74. return UserInfo.getInstance().token
  75. }
  76. setToken(token: string) {
  77. UserInfo.getInstance().token = token
  78. AppStorage.setOrCreate<string>(AppStorageKeyCollect.TOKEN, token)
  79. AppStorage.setOrCreate(UserInfo.KEY, UserInfo.getInstance())
  80. }
  81. getHeadImg() {
  82. return UserInfo.getInstance().memberIcon
  83. }
  84. setHeadImg(headImg: string) {
  85. UserInfo.getInstance().memberIcon = headImg
  86. AppStorage.setOrCreate(UserInfo.KEY, UserInfo.getInstance())
  87. }
  88. getEmail() {
  89. return UserInfo.getInstance().memberEmail
  90. }
  91. setEmail(email: string) {
  92. UserInfo.getInstance().memberEmail = email
  93. AppStorage.setOrCreate(UserInfo.KEY, UserInfo.getInstance())
  94. }
  95. getName() {
  96. return UserInfo.getInstance().memberName
  97. }
  98. setName(name: string) {
  99. UserInfo.getInstance().memberName = name
  100. AppStorage.setOrCreate(UserInfo.KEY, UserInfo.getInstance())
  101. }
  102. getId() {
  103. return UserInfo.getInstance().userId
  104. }
  105. setId(id: number) {
  106. UserInfo.getInstance().userId = id
  107. AppStorage.setOrCreate(UserInfo.KEY, UserInfo.getInstance())
  108. }
  109. getGoldNum() {
  110. return UserInfo.getInstance().memberScore
  111. }
  112. setGoldNum(goldNum: number) {
  113. UserInfo.getInstance().memberScore = goldNum
  114. AppStorage.setOrCreate(UserInfo.KEY, UserInfo.getInstance())
  115. }
  116. getAiNum() {
  117. return UserInfo.getInstance().aiCount
  118. }
  119. setAiNum(aiNum: number) {
  120. UserInfo.getInstance().aiCount = aiNum
  121. AppStorage.setOrCreate(UserInfo.KEY, UserInfo.getInstance())
  122. }
  123. getPhoneNumber() {
  124. return UserInfo.getInstance().memberPhone
  125. }
  126. setPhoneNumber(phoneNumber: string) {
  127. UserInfo.getInstance().memberPhone = phoneNumber
  128. AppStorage.setOrCreate(UserInfo.KEY, UserInfo.getInstance())
  129. }
  130. }