浏览代码

fix(upload): 更新头像上传逻辑,使用环境变量作为上传地址,增强成功回调处理

feige996 11 月之前
父节点
当前提交
008a1cc58a
共有 3 个文件被更改,包括 17 次插入16 次删除
  1. 6 3
      src/pages/mine/index.vue
  2. 4 0
      src/store/user.ts
  3. 7 13
      src/utils/uploadFile.ts

+ 6 - 3
src/pages/mine/index.vue

@@ -88,7 +88,7 @@
 <script lang="ts" setup>
 import { useUserStore } from '@/store'
 import { useToast } from 'wot-design-uni'
-import { uploadFileUrl, useUpload } from '@/utils/uploadFile'
+import { useUpload } from '@/utils/uploadFile'
 import { storeToRefs } from 'pinia'
 import { IUploadSuccessInfo } from '@/api/login.typings'
 
@@ -106,10 +106,13 @@ onShow((options) => {
 // #ifndef MP-WEIXIN
 // 上传头像
 const { run } = useUpload<IUploadSuccessInfo>(
-  uploadFileUrl.USER_AVATAR,
+  import.meta.env.VITE_UPLOAD_BASEURL,
   {},
   {
-    onSuccess: (res) => useUserStore().getUserInfo(),
+    onSuccess: (res: string) => {
+      console.log('头像上传成功', res)
+      useUserStore().setUserAvatar(res)
+    },
   },
 )
 // #endif

+ 4 - 0
src/store/user.ts

@@ -34,6 +34,9 @@ export const useUserStore = defineStore(
       }
       userInfo.value = val
     }
+    const setUserAvatar = (avatar: string) => {
+      userInfo.value.avatar = avatar
+    }
     // 删除用户信息
     const removeUserInfo = () => {
       userInfo.value = { ...userInfoState }
@@ -94,6 +97,7 @@ export const useUserStore = defineStore(
       login,
       wxLogin,
       getUserInfo,
+      setUserAvatar,
       logout,
     }
   },

+ 7 - 13
src/utils/uploadFile.ts

@@ -61,7 +61,7 @@ export interface UploadOptions {
   /** 上传进度回调函数 */
   onProgress?: (progress: number) => void
   /** 上传成功回调函数 */
-  onSuccess?: (res: UniApp.UploadFileSuccessCallbackResult) => void
+  onSuccess?: (res: string) => void
   /** 上传失败回调函数 */
   onError?: (err: Error | UniApp.GeneralCallbackResult) => void
   /** 上传完成回调函数(无论成功失败) */
@@ -248,7 +248,7 @@ interface UploadFileOptions<T> {
   /** 上传进度回调 */
   onProgress?: (progress: number) => void
   /** 上传成功回调 */
-  onSuccess?: (res: UniApp.UploadFileSuccessCallbackResult) => void
+  onSuccess?: (res: string) => void
   /** 上传失败回调 */
   onError?: (err: Error | UniApp.GeneralCallbackResult) => void
   /** 上传完成回调 */
@@ -288,19 +288,13 @@ function uploadFile<T>({
       },
       // 确保文件名称合法
       success: (uploadFileRes) => {
+        console.log('上传文件成功:', uploadFileRes)
         try {
           // 解析响应数据
-          const result = JSON.parse(uploadFileRes.data)
-          if (result.code === 1) {
-            // 上传成功
-            data.value = result.data as T
-            onSuccess?.(uploadFileRes)
-          } else {
-            // 业务错误
-            const err = new Error(result.message || '上传失败')
-            error.value = true
-            onError?.(err)
-          }
+          const result = uploadFileRes.data
+          // 上传成功
+          data.value = result as T
+          onSuccess?.(result)
         } catch (err) {
           // 响应解析错误
           console.error('解析上传响应失败:', err)