diff --git a/packages/upload-list/index.vue b/packages/upload-list/index.vue index aa594ee..3be7fdc 100644 --- a/packages/upload-list/index.vue +++ b/packages/upload-list/index.vue @@ -2,7 +2,7 @@ * @Author: zhaojinfeng 121016171@qq.com * @Date: 2023-08-16 17:33:41 * @LastEditors: zhaojinfeng 121016171@qq.com - * @LastEditTime: 2023-08-22 12:54:19 + * @LastEditTime: 2023-08-22 14:16:22 * @FilePath: \vue3\packages\upload-list\index.vue * @Description: * @@ -48,7 +48,7 @@ const props = withDefaults( ) const emit = defineEmits<{ - (event: 'update:fileList', file: FileVO[]): void + (event: 'update:file-list', file: FileVO[]): void }>() const userFiles = ref([]) @@ -68,10 +68,11 @@ async function httpRequest({ file, onProgress, onSuccess, onError }: UploadReque formData.append('filePath', props.filePath) try { const res = await props.request(formData, { - onUploadProgress: onProgress, + onUploadProgress(e: ProgressEvent) { + onProgress({ ...e, percent: Math.floor(e.loaded * 100 / e.total) }) + }, }) onSuccess(res) - emit('update:fileList', [...props.fileList, res]) } catch (err) { onError(err) @@ -87,11 +88,10 @@ userFiles.value = props.fileList.map(file => ({ function remove(_uploadFile: UploadFile, uploadFiles: UploadFiles) { userFiles.value = uploadFiles + emit('update:file-list', uploadFiles) } -watch(() => userFiles, (files) => { - emit('update:fileList', files.value.map(file => ({ - ...file, - }))) +watch(() => userFiles.value, (uploadFiles) => { + emit('update:file-list', uploadFiles) })