Преглед изворни кода

```
feat(FileUploader): 更新文件上传组件的文件列表处理逻辑

- 注释掉原有的文件列表push操作,避免重复添加文件
- 修改handleChange方法,使用新的文件列表映射逻辑
- 添加服务器响应数据的处理,确保上传成功后使用服务器返回的URL
- 保持文件状态和响应数据的一致性
```

zhangningning пре 1 месец
родитељ
комит
d4daa091f8
1 измењених фајлова са 22 додато и 8 уклоњено
  1. 22 8
      src/components/FileUploader.vue

+ 22 - 8
src/components/FileUploader.vue

@@ -348,13 +348,13 @@ const handleBeforeUpload = (rawFile) => {
 // 上传成功处理
 const handleSuccess = (response, rawFile, uploadedFiles) => {
   // 将上传成功的文件添加到fileList中
-  fileList.value.push({
-    ...response,
-    name: response.originalFileName || response.name,
-    url: response.url,
-    status: 'success',
-    uid: rawFile.uid
-  })
+  // fileList.value.push({
+  //   ...response,
+  //   name: response.originalFileName || response.name,
+  //   url: response.url,
+  //   status: 'success',
+  //   uid: rawFile.uid
+  // })
   emit('success', response, rawFile, uploadedFiles)
 }
 
@@ -370,7 +370,21 @@ const handleProgress = (event, file, uploadedFiles) => {
 }
 
 // 文件状态改变处理
-const handleChange = (file, fileList) => {
+const handleChange = (file, newFileList) => {
+  // 更新内部fileList
+  fileList.value = newFileList.map(item => {
+    // 如果文件已上传成功且有response,使用服务器返回的URL
+    if (item.status === 'success' && item.response) {
+      return {
+        ...item.response,
+        name: item.response.originalFileName || item.name,
+        url: item.response.url,
+        status: 'success',
+        uid: item.uid
+      }
+    }
+    return item
+  })
   emit('change', file, fileList)
 }