Auto merge base into i18n

This commit is contained in:
GitHub Actions 2025-06-06 14:42:49 +00:00
commit 12a00977ea
4 changed files with 55 additions and 40 deletions

View File

@ -36,7 +36,21 @@ export default function useUpload<T extends TfileType>(options: TOptions<T> = {}
const chooseFileOptions = { const chooseFileOptions = {
count: 1, count: 1,
success: (res: any) => { success: (res: any) => {
handleFileChoose({ tempFilePath: res.tempFilePaths[0], tempFiles: res.tempFiles[0] }) console.log('File selected successfully:', res)
// h5中res:{errMsg: "chooseImage:ok", tempFilePaths: "blob:http://localhost:9000/f74ab6b8-a14d-4cb6-a10d-fcf4511a0de5", tempFiles: [File]}
// h5的File有一下字段{name: "girl.jpeg", size: 48976, type: "image/jpeg"}
// 小程序中res:{errMsg: "chooseImage:ok", tempFiles: [{fileType: "image", size: 48976, tempFilePath: "http://tmp/5iG1WpIxTaJf3ece38692a337dc06df7eb69ecb49c6b.jpeg"}]}
let tempFilePath = ''
let size = 0
// #ifdef H5
tempFilePath = res.tempFilePaths[0]
size = res.tempFiles[0].size
// #endif
// #ifdef MP-WEIXIN
tempFilePath = res.tempFiles[0].tempFilePath
size = res.tempFiles[0].size
// #endif
handleFileChoose({ tempFilePath, size })
}, },
fail: (err: any) => { fail: (err: any) => {
console.error('File selection failed:', err) console.error('File selection failed:', err)
@ -64,11 +78,8 @@ export default function useUpload<T extends TfileType>(options: TOptions<T> = {}
} }
} }
const handleFileChoose = (file: { const handleFileChoose = ({ tempFilePath, size }: { tempFilePath: string; size: number }) => {
tempFilePath: string if (size > maxSize) {
tempFiles?: { size?: number; name?: string }
}) => {
if (file?.tempFiles?.size && file.tempFiles.size > maxSize) {
uni.showToast({ uni.showToast({
title: `文件大小不能超过 ${maxSize / 1024 / 1024}MB`, title: `文件大小不能超过 ${maxSize / 1024 / 1024}MB`,
icon: 'none', icon: 'none',
@ -76,20 +87,20 @@ export default function useUpload<T extends TfileType>(options: TOptions<T> = {}
return return
} }
const fileExtension = file?.tempFiles?.name?.split('.').pop()?.toLowerCase() // const fileExtension = file?.tempFiles?.name?.split('.').pop()?.toLowerCase()
const isTypeValid = accept.some((type) => type === '*' || type.toLowerCase() === fileExtension) // const isTypeValid = accept.some((type) => type === '*' || type.toLowerCase() === fileExtension)
if (!isTypeValid) { // if (!isTypeValid) {
uni.showToast({ // uni.showToast({
title: `仅支持 ${accept.join(', ')} 格式的文件`, // title: `仅支持 ${accept.join(', ')} 格式的文件`,
icon: 'none', // icon: 'none',
}) // })
return // return
} // }
loading.value = true loading.value = true
uploadFile({ uploadFile({
tempFilePath: file.tempFilePath, tempFilePath: tempFilePath,
formData, formData,
onSuccess: (res) => { onSuccess: (res) => {
data.value = res data.value = res

View File

@ -88,7 +88,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { useUserStore } from '@/store' import { useUserStore } from '@/store'
import { useToast } from 'wot-design-uni' import { useToast } from 'wot-design-uni'
import { uploadFileUrl, useUpload } from '@/utils/uploadFile' import { useUpload } from '@/utils/uploadFile'
import { storeToRefs } from 'pinia' import { storeToRefs } from 'pinia'
import { IUploadSuccessInfo } from '@/api/login.typings' import { IUploadSuccessInfo } from '@/api/login.typings'
@ -106,10 +106,13 @@ onShow((options) => {
// #ifndef MP-WEIXIN // #ifndef MP-WEIXIN
// //
const { run } = useUpload<IUploadSuccessInfo>( 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 // #endif
@ -134,10 +137,13 @@ const onChooseAvatar = (e: any) => {
console.log('选择头像', e.detail) console.log('选择头像', e.detail)
const { avatarUrl } = e.detail const { avatarUrl } = e.detail
const { run } = useUpload<IUploadSuccessInfo>( const { run } = useUpload<IUploadSuccessInfo>(
uploadFileUrl.USER_AVATAR, import.meta.env.VITE_UPLOAD_BASEURL,
{}, {},
{ {
onSuccess: (res) => useUserStore().getUserInfo(), onSuccess: (res) => {
console.log('头像上传成功', res)
//
},
}, },
avatarUrl, avatarUrl,
) )
@ -162,7 +168,7 @@ const handlePassword = () => {
// //
const handleInform = () => { const handleInform = () => {
// uni.navigateTo({ url: `/pages/mine/inform/index` }) // uni.navigateTo({ url: `/pages/mine/inform/index` })
toast.success('功能开发中') toast.show('功能开发中')
} }
// //
const handleAppUpdate = () => { const handleAppUpdate = () => {
@ -173,9 +179,9 @@ const handleAppUpdate = () => {
// //
// console.log(res.hasUpdate) // console.log(res.hasUpdate)
if (res.hasUpdate) { if (res.hasUpdate) {
toast.success('检测到新版本,正在下载中...') toast.show('检测到新版本,正在下载中...')
} else { } else {
toast.success('已是最新版本') toast.show('已是最新版本')
} }
}) })
updateManager.onUpdateReady(function (res) { updateManager.onUpdateReady(function (res) {
@ -198,7 +204,7 @@ const handleAppUpdate = () => {
// #endif // #endif
// #ifndef MP // #ifndef MP
toast.success('功能开发中') toast.show('功能开发中')
// #endif // #endif
} }
// //
@ -217,7 +223,7 @@ const handleClearCache = () => {
uni.clearStorageSync() uni.clearStorageSync()
// //
useUserStore().logout() useUserStore().logout()
toast.success('清除缓存成功') toast.show('清除缓存成功')
} catch (err) { } catch (err) {
console.error('清除缓存失败:', err) console.error('清除缓存失败:', err)
toast.error('清除缓存失败') toast.error('清除缓存失败')
@ -237,7 +243,7 @@ const handleLogout = () => {
useUserStore().logout() useUserStore().logout()
hasLogin.value = false hasLogin.value = false
// 退 // 退
toast.success('退出登录成功') toast.show('退出登录成功')
// #ifdef MP-WEIXIN // #ifdef MP-WEIXIN
// //
// uni.reLaunch({ url: '/pages/index/index' }) // uni.reLaunch({ url: '/pages/index/index' })

View File

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

View File

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