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

解决 cl-upload 上传进度丢失问题

神仙都没用 пре 1 година
родитељ
комит
b472769132
2 измењених фајлова са 12 додато и 4 уклоњено
  1. 4 0
      src/plugins/upload/components/upload.vue
  2. 8 4
      src/plugins/upload/hooks/index.ts

+ 4 - 0
src/plugins/upload/components/upload.vue

@@ -490,6 +490,10 @@ defineExpose({
 
 	&__file {
 		width: 100%;
+
+		&-btn {
+			width: fit-content;
+		}
 	}
 
 	&__list {

+ 8 - 4
src/plugins/upload/hooks/index.ts

@@ -66,6 +66,9 @@ export function useUpload() {
 					// 文件
 					fd.append("file", file);
 
+					// 上传进度
+					let progress = 0;
+
 					// 上传
 					await service
 						.request({
@@ -78,16 +81,17 @@ export function useUpload() {
 							timeout: 600000,
 							data: fd,
 							onUploadProgress(e: AxiosProgressEvent) {
-								const progress = e.total
-									? Math.floor((e.loaded / e.total) * 100)
-									: 0;
-
+								progress = e.total ? Math.floor((e.loaded / e.total) * 100) : 0;
 								onProgress?.(progress);
 							},
 							proxy: isLocal,
 							NProgress: false
 						})
 						.then((res) => {
+							if (progress != 100) {
+								onProgress?.(100);
+							}
+
 							key = encodeURIComponent(key);
 
 							let url = "";