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

This commit is contained in:
feige996 2025-06-06 22:38:57 +08:00
parent b5a71b7788
commit 008a1cc58a
3 changed files with 17 additions and 16 deletions

View File

@ -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

View File

@ -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,
}
},

View File

@ -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) {
const result = uploadFileRes.data
// 上传成功
data.value = result.data as T
onSuccess?.(uploadFileRes)
} else {
// 业务错误
const err = new Error(result.message || '上传失败')
error.value = true
onError?.(err)
}
data.value = result as T
onSuccess?.(result)
} catch (err) {
// 响应解析错误
console.error('解析上传响应失败:', err)