admin.js 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. Page({
  2. data: {
  3. isLogin: false, // 登录状态
  4. isHidden: true, // 弹窗状态
  5. avatarUrl: '', // 用户头像
  6. nickName: '', // 用户昵称
  7. username: '', // 用户名(用户名密码登录)
  8. password: '', // 密码(用户名密码登录)
  9. errorMessage: '', // 错误信息
  10. },
  11. // 获取用户头像
  12. getAvatar(e) {
  13. const avatarUrl = e.detail.avatarUrl; // 从事件中获取头像URL
  14. if (avatarUrl) {
  15. this.setData({
  16. avatarUrl: avatarUrl
  17. });
  18. // 创建userInfo对象,保存头像、昵称、用户名和密码到缓存
  19. let userInfo = {
  20. avatarUrl: avatarUrl,
  21. nickName: this.data.nickName,
  22. username: this.data.username, // 保存用户名
  23. password: this.data.password // 保存密码
  24. };
  25. wx.setStorageSync('userInfo', userInfo); // 保存到缓存
  26. } else {
  27. wx.showToast({
  28. title: '头像获取失败',
  29. icon: 'error',
  30. duration: 2000
  31. });
  32. }
  33. },
  34. // 获取用户昵称
  35. getName(e) {
  36. const nickName = e.detail.value; // 获取昵称
  37. this.setData({
  38. nickName: nickName
  39. });
  40. // 更新缓存中的昵称
  41. let userInfo = wx.getStorageSync('userInfo') || {};
  42. userInfo.nickName = nickName;
  43. wx.setStorageSync('userInfo', userInfo); // 更新缓存
  44. },
  45. // 显示登录弹窗
  46. gologin() {
  47. this.setData({
  48. isHidden: false
  49. });
  50. },
  51. // 取消登录弹窗
  52. potNo() {
  53. this.setData({
  54. isHidden: true
  55. });
  56. },
  57. // 确认登录弹窗
  58. popYes() {
  59. const { avatarUrl, nickName, username, password } = this.data;
  60. // 检查头像、昵称、用户名和密码是否存在
  61. if ((!avatarUrl || !nickName) && (!username || !password)) {
  62. wx.showToast({
  63. icon: 'error',
  64. title: '请获取头像、昵称、用户名和密码',
  65. });
  66. return;
  67. }
  68. // 如果头像和昵称存在,保存到缓存
  69. if (avatarUrl && nickName) {
  70. this.setData({
  71. isLogin: true,
  72. isHidden: true,
  73. });
  74. // 创建/更新 userInfo 对象并存储到缓存
  75. let userInfo = {
  76. avatarUrl: avatarUrl,
  77. nickName: nickName,
  78. username: this.data.username, // 保存用户名
  79. password: this.data.password, // 保存密码
  80. };
  81. wx.setStorageSync('userInfo', userInfo); // 更新缓存
  82. // 登录成功后跳转到指定页面
  83. wx.navigateTo({
  84. url: '/pages/RoleSelectionPage/RoleSelectionPage',
  85. });
  86. return;
  87. }
  88. // 检查用户名和密码是否一致登录
  89. const storedUserInfo = wx.getStorageSync('userInfo');
  90. if (storedUserInfo) {
  91. const storedUsername = storedUserInfo.username;
  92. const storedPassword = storedUserInfo.password;
  93. // 验证用户名和密码
  94. if (username === storedUsername && password === storedPassword) {
  95. wx.showToast({
  96. title: '登录成功',
  97. icon: 'success',
  98. duration: 2000
  99. });
  100. this.setData({
  101. isLogin: true,
  102. errorMessage: '',
  103. });
  104. // 登录成功后跳转到指定页面
  105. wx.navigateTo({
  106. url: '/pages/RoleSelectionPage/RoleSelectionPage',
  107. });
  108. } else {
  109. this.setData({
  110. errorMessage: '用户名或密码错误'
  111. });
  112. wx.showToast({
  113. title: '用户名或密码错误',
  114. icon: 'none',
  115. duration: 2000
  116. });
  117. }
  118. }
  119. },
  120. Register() {
  121. wx.navigateTo({
  122. url: '/pages/Register/Register',
  123. });
  124. },
  125. // 用户名密码登录
  126. inputUsername(e) {
  127. this.setData({
  128. username: e.detail.value
  129. });
  130. },
  131. inputPassword(e) {
  132. this.setData({
  133. password: e.detail.value
  134. });
  135. },
  136. // 登录验证
  137. login() {
  138. const { username, password } = this.data;
  139. // 获取缓存的用户信息
  140. const storedUserInfo = wx.getStorageSync('userInfo');
  141. // 检查用户信息是否存在
  142. if (!storedUserInfo) {
  143. this.setData({
  144. errorMessage: '没有找到用户信息,请先注册'
  145. });
  146. return;
  147. }
  148. const storedUsername = storedUserInfo.username;
  149. const storedPassword = storedUserInfo.password;
  150. // 检查用户名和密码是否为空
  151. if (!username || !password) {
  152. this.setData({
  153. errorMessage: '用户名和密码不能为空'
  154. });
  155. return;
  156. }
  157. wx.showLoading({
  158. title: '登录中...'
  159. });
  160. setTimeout(() => {
  161. wx.hideLoading();
  162. // 验证输入的用户名和密码与缓存中的是否一致
  163. if (username === storedUsername && password === storedPassword) {
  164. wx.showToast({
  165. title: '登录成功',
  166. icon: 'success',
  167. duration: 2000
  168. });
  169. this.setData({
  170. isLogin: true,
  171. errorMessage: '',
  172. });
  173. // 登录成功后跳转到指定页面
  174. wx.navigateTo({
  175. url: '/pages/RoleSelectionPage/RoleSelectionPage',
  176. });
  177. } else {
  178. this.setData({
  179. errorMessage: '用户名或密码错误'
  180. });
  181. wx.showToast({
  182. title: '用户名或密码错误',
  183. icon: 'none',
  184. duration: 2000
  185. });
  186. }
  187. }, 1500);
  188. },
  189. // 页面加载时,检查是否有缓存的用户信息
  190. onLoad() {
  191. const storedUserInfo = wx.getStorageSync('userInfo');
  192. // 如果有缓存的用户信息,自动填充头像、昵称、用户名和密码
  193. if (storedUserInfo) {
  194. this.setData({
  195. avatarUrl: storedUserInfo.avatarUrl || '/assets/taddar/授权管理.png', // 默认头像
  196. nickName: storedUserInfo.nickName || '未登录', // 默认昵称
  197. username: storedUserInfo.username || '', // 默认用户名
  198. password: storedUserInfo.password || '', // 默认密码
  199. isLogin: true, // 设置已登录状态
  200. });
  201. }
  202. // 如果没有设置头像,使用默认头像
  203. if (!this.data.avatarUrl) {
  204. this.setData({
  205. avatarUrl: '/assets/taddar/授权管理.png' // 默认头像
  206. });
  207. }
  208. // 获取存储的用户角色
  209. const storedUserRole = wx.getStorageSync('userRole'); // 获取缓存中的用户角色
  210. // 根据角色跳转页面
  211. if (storedUserRole) {
  212. if (storedUserRole === 'admin') {
  213. // 如果是管理员,跳转到管理员页面
  214. wx.reLaunch({
  215. url: '/pages/threshold/threshold', // 管理员页面路径
  216. });
  217. } else if (storedUserRole === 'regular') {
  218. // 如果是普通用户,跳转到普通用户页面
  219. wx.reLaunch({
  220. url: '/shoping/Home/Home', // 普通用户页面路径
  221. });
  222. }
  223. }
  224. }
  225. });