fix: 删除问题

This commit is contained in:
2023-08-22 13:01:24 +08:00
parent 7c481716c0
commit 5231d7ddbc

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-18 17:02:06 * @LastEditTime: 2023-08-22 12:54:19
* @FilePath: \vue3\packages\upload-list\index.vue * @FilePath: \vue3\packages\upload-list\index.vue
* @Description: * @Description:
* *
@ -14,15 +14,18 @@
:disabled="disabled" :disabled="disabled"
:before-upload="beforeUpload" :before-upload="beforeUpload"
:http-request="httpRequest" :http-request="httpRequest"
@remove="remove"
> >
<el-button type="primary" plain> <slot>
点击上传 <el-button type="primary" plain :disabled="disabled">
</el-button> 点击上传
</el-button>
</slot>
</el-upload> </el-upload>
</template> </template>
<script lang="ts" setup name="ThUploadList"> <script lang="ts" setup name="ThUploadList">
import type { UploadRawFile, UploadRequestOptions, UploadUserFile } from 'element-plus' import type { UploadFile, UploadFiles, UploadRawFile, UploadRequestOptions, UploadUserFile } from 'element-plus'
const props = withDefaults( const props = withDefaults(
defineProps<{ defineProps<{
@ -76,19 +79,19 @@ async function httpRequest({ file, onProgress, onSuccess, onError }: UploadReque
} }
userFiles.value = props.fileList.map(file => ({ userFiles.value = props.fileList.map(file => ({
name: file.name!, ...file,
url: file.url,
status: 'success', status: 'success',
percentage: 100, percentage: 100,
uid: file.id, uid: file.id,
})) }))
function remove(_uploadFile: UploadFile, uploadFiles: UploadFiles) {
userFiles.value = uploadFiles
}
watch(() => userFiles, (files) => { watch(() => userFiles, (files) => {
emit('update:fileList', files.value.map(file => ({ emit('update:fileList', files.value.map(file => ({
name: file.name!, ...file,
url: file.url,
status: 'success',
percentage: 100,
}))) })))
}) })
</script> </script>