Просмотр исходного кода

feat(profile): 添加用户信息加载状态和错误处理

- 在请求用户信息前显示加载提示
- 请求完成后隐藏加载提示
- 增加401状态码处理,清除本地存储并跳转至登录页
- 捕获异常时隐藏加载提示并输出错误日志
mcbaiyun 2 месяцев назад
Родитель
Сommit
0c628cce77
1 измененных файлов с 11 добавлено и 0 удалено
  1. 11 0
      src/pages/profile/profile.vue

+ 11 - 0
src/pages/profile/profile.vue

@@ -86,6 +86,7 @@ const fetchUserInfo = async () => {
   try {
     const token = uni.getStorageSync('token')
     if (!token) return
+    uni.showLoading({ title: '加载中...' })
     const response = await uni.request({
       url: 'https://wx.baiyun.work/user_info',
       method: 'POST',
@@ -95,8 +96,17 @@ const fetchUserInfo = async () => {
       },
       data: {}
     })
+    uni.hideLoading()
     console.log('User info response:', response)
     const resp = response.data as any
+    if (response.statusCode === 401) {
+      // Token 无效,清除并跳转登录
+      uni.removeStorageSync('token')
+      uni.removeStorageSync('role')
+      user.value = {}
+      uni.reLaunch({ url: '/pages/login/login' })
+      return
+    }
     if (resp && resp.code === 200 && resp.data) {
       user.value = resp.data
       // 保存到本地存储
@@ -107,6 +117,7 @@ const fetchUserInfo = async () => {
       }
     }
   } catch (err) {
+    uni.hideLoading()
     console.error('Fetch user info error:', err)
   }
 }