fix: 删除后value不更新的bug

This commit is contained in:
2023-08-22 14:22:14 +08:00
parent 9e05d6e287
commit 0210dfa561

View File

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