Pārlūkot izejas kodu

fix:前端上传头像名称取值错误以及用户保存个人信息时还使用的是旧的头像数据

YunaiV 4 mēneši atpakaļ
vecāks
revīzija
2c83d1e712

+ 2 - 19
src/components/UploadFile/src/useUpload.ts

@@ -1,5 +1,4 @@
 import * as FileApi from '@/api/infra/file'
-// import CryptoJS from 'crypto-js'
 import { UploadRawFile, UploadRequestOptions } from 'element-plus/es/components/upload/src/upload'
 import axios from 'axios'
 
@@ -20,7 +19,7 @@ export const useUpload = (directory?: string) => {
     // 模式一:前端上传
     if (isClientUpload) {
       // 1.1 生成文件名称
-      const fileName = options.filename
+      const fileName = options.file.name || options.filename
       // 1.2 获取文件预签名地址
       const presignedInfo = await FileApi.getFilePresignedUrl(fileName, directory)
       // 1.3 上传文件(不能使用 ElUpload 的 ajaxUpload 方法的原因:其使用的是 FormData 上传,Minio 不支持)
@@ -32,7 +31,7 @@ export const useUpload = (directory?: string) => {
         })
         .then(() => {
           // 1.4. 记录文件信息到后端(异步)
-          createFile(presignedInfo, options.file,fileName)
+          createFile(presignedInfo, options.file, fileName)
           // 通知成功,数据格式保持与后端上传的返回结果一致
           return { data: presignedInfo.url }
         })
@@ -81,22 +80,6 @@ function createFile(vo: FileApi.FilePresignedUrlRespVO, file: UploadRawFile, fil
 }
 
 /**
- * 生成文件名称(使用算法SHA256)
- * @param file 要上传的文件
- */
-async function generateFileName(file: UploadRawFile) {
-  // // 读取文件内容
-  // const data = await file.arrayBuffer()
-  // const wordArray = CryptoJS.lib.WordArray.create(data)
-  // // 计算SHA256
-  // const sha256 = CryptoJS.SHA256(wordArray).toString()
-  // // 拼接后缀
-  // const ext = file.name.substring(file.name.lastIndexOf('.'))
-  // return `${sha256}${ext}`
-  return file.name
-}
-
-/**
  * 上传类型
  */
 enum UPLOAD_TYPE {

+ 3 - 1
src/views/Profile/components/BasicInfo.vue

@@ -102,17 +102,19 @@ const submit = () => {
       await updateUserProfile(data)
       message.success(t('common.updateSuccess'))
       const profile = await init()
-      userStore.setUserNicknameAction(profile.nickname)
+      await userStore.setUserNicknameAction(profile.nickname)
       // 发送成功事件
       emit('success')
     }
   })
 }
+
 const init = async () => {
   const res = await getUserProfile()
   unref(formRef)?.setValues(res)
   return res
 }
+
 onMounted(async () => {
   await init()
 })