Commit 49e72a8e76b78fe54e19de9e23d7c72a19427f01

Authored by 无木
1 parent 6f845b53

feat(basic-upload): add preview-delete event

添加预览Modal中删除文件的事件

close: #835
src/components/Upload/src/BasicUpload.vue
... ... @@ -32,6 +32,7 @@
32 32 :value="fileList"
33 33 @register="registerPreviewModal"
34 34 @list-change="handlePreviewChange"
  35 + @delete="handlePreviewDelete"
35 36 />
36 37 </div>
37 38 </template>
... ... @@ -50,7 +51,7 @@
50 51 name: 'BasicUpload',
51 52 components: { UploadModal, UploadPreviewModal, Icon, Tooltip },
52 53 props: uploadContainerProps,
53   - emits: ['change', 'delete'],
  54 + emits: ['change', 'delete', 'preview-delete'],
54 55  
55 56 setup(props, { emit, attrs }) {
56 57 const { t } = useI18n();
... ... @@ -97,6 +98,10 @@
97 98 emit('delete', record);
98 99 }
99 100  
  101 + function handlePreviewDelete(url: string) {
  102 + emit('preview-delete', url);
  103 + }
  104 +
100 105 return {
101 106 registerUploadModal,
102 107 openUploadModal,
... ... @@ -108,6 +113,7 @@
108 113 showPreview,
109 114 bindValue,
110 115 handleDelete,
  116 + handlePreviewDelete,
111 117 t,
112 118 };
113 119 },
... ...
src/components/Upload/src/UploadPreviewModal.vue
... ... @@ -24,7 +24,7 @@
24 24 export default defineComponent({
25 25 components: { BasicModal, FileList },
26 26 props: previewProps,
27   - emits: ['list-change', 'register'],
  27 + emits: ['list-change', 'register', 'delete'],
28 28 setup(props, { emit }) {
29 29 const [register, { closeModal }] = useModalInner();
30 30 const { t } = useI18n();
... ... @@ -50,7 +50,8 @@
50 50 function handleRemove(record: PreviewFileItem) {
51 51 const index = fileListRef.value.findIndex((item) => item.url === record.url);
52 52 if (index !== -1) {
53   - fileListRef.value.splice(index, 1);
  53 + const removed = fileListRef.value.splice(index, 1);
  54 + emit('delete', removed[0].url);
54 55 emit(
55 56 'list-change',
56 57 fileListRef.value.map((item) => item.url)
... ...