diff --git a/src/components/UploadFile/src/useUpload.ts b/src/components/UploadFile/src/useUpload.ts index 951b2397842aecdc1ee489e8c03e0d84270ea858..9fc27a0b4235cf2f0e93feeaa85ad904ea10ef83 100644 --- a/src/components/UploadFile/src/useUpload.ts +++ b/src/components/UploadFile/src/useUpload.ts @@ -20,7 +20,7 @@ export const useUpload = (directory?: string) => { // 模式一:前端上传 if (isClientUpload) { // 1.1 生成文件名称 - const fileName = await generateFileName(options.file) + const fileName = options.filename // 1.2 获取文件预签名地址 const presignedInfo = await FileApi.getFilePresignedUrl(fileName, directory) // 1.3 上传文件(不能使用 ElUpload 的 ajaxUpload 方法的原因:其使用的是 FormData 上传,Minio 不支持) @@ -32,7 +32,7 @@ export const useUpload = (directory?: string) => { }) .then(() => { // 1.4. 记录文件信息到后端(异步) - createFile(presignedInfo, options.file) + createFile(presignedInfo, options.file,fileName) // 通知成功,数据格式保持与后端上传的返回结果一致 return { data: presignedInfo.url } }) @@ -64,15 +64,15 @@ export const useUpload = (directory?: string) => { /** * 创建文件信息 * @param vo 文件预签名信息 - * @param name 文件名称 * @param file 文件 + * @param fileName */ -function createFile(vo: FileApi.FilePresignedUrlRespVO, file: UploadRawFile) { +function createFile(vo: FileApi.FilePresignedUrlRespVO, file: UploadRawFile, fileName: string) { const fileVo = { configId: vo.configId, url: vo.url, path: vo.path, - name: file.name, + name: fileName, type: file.type, size: file.size } diff --git a/src/views/Profile/components/BasicInfo.vue b/src/views/Profile/components/BasicInfo.vue index f785affb92fbf0c044082e9054b9a4ae84fa240d..82181d1f11f7aced3eab442ed9df030fc441ebb4 100644 --- a/src/views/Profile/components/BasicInfo.vue +++ b/src/views/Profile/components/BasicInfo.vue @@ -78,6 +78,21 @@ const schema = reactive([ } ]) const formRef = ref() // 表单 Ref + +// 监听 userStore 中头像的变化,同步更新表单数据 +watch( + () => userStore.getUser.avatar, + (newAvatar) => { + if (newAvatar && formRef.value) { + // 直接更新表单模型中的头像字段 + const formModel = formRef.value.formModel + if (formModel) { + formModel.avatar = newAvatar + } + } + } +) + const submit = () => { const elForm = unref(formRef)?.getElFormRef() if (!elForm) return diff --git a/src/views/Profile/components/ProfileUser.vue b/src/views/Profile/components/ProfileUser.vue index 6282c3e0d1a9d8e8f2db3689fea87648b7297de7..e226af09fa67daae59b0dfa57bd0fe4e876636e8 100644 --- a/src/views/Profile/components/ProfileUser.vue +++ b/src/views/Profile/components/ProfileUser.vue @@ -49,18 +49,31 @@