From 3fcfac1f37c2aeabbb2af4897ada6ba8c225c667 Mon Sep 17 00:00:00 2001
From: vben <anncwb@126.com>
Date: 星期三, 24 十一月 2021 23:25:13 +0800
Subject: [PATCH] wip: Upgrade ant-design-vue 3.0

---
 src/components/Upload/src/UploadPreviewModal.vue |   41 ++++++++++++++++++++---------------------
 1 files changed, 20 insertions(+), 21 deletions(-)

diff --git a/src/components/Upload/src/UploadPreviewModal.vue b/src/components/Upload/src/UploadPreviewModal.vue
index 817001e..bc4091b 100644
--- a/src/components/Upload/src/UploadPreviewModal.vue
+++ b/src/components/Upload/src/UploadPreviewModal.vue
@@ -2,7 +2,7 @@
   <BasicModal
     width="800px"
     :title="t('component.upload.preview')"
-    wrapClassName="upload-preview-modal"
+    class="upload-preview-modal"
     v-bind="$attrs"
     @register="register"
     :showOkBtn="false"
@@ -11,22 +11,21 @@
   </BasicModal>
 </template>
 <script lang="ts">
-  import { defineComponent, watch, ref, unref } from 'vue';
-
+  import { defineComponent, watch, ref } from 'vue';
   //   import { BasicTable, useTable } from '/@/components/Table';
-  import FileList from './FileList';
-
+  import FileList from './FileList.vue';
   import { BasicModal, useModalInner } from '/@/components/Modal';
   import { previewProps } from './props';
-  import { PreviewFileItem } from './types';
+  import { PreviewFileItem } from './typing';
   import { downloadByUrl } from '/@/utils/file/download';
-
   import { createPreviewColumns, createPreviewActionColumn } from './data';
-
   import { useI18n } from '/@/hooks/web/useI18n';
+  import { isArray } from '/@/utils/is';
+
   export default defineComponent({
     components: { BasicModal, FileList },
     props: previewProps,
+    emits: ['list-change', 'register', 'delete'],
     setup(props, { emit }) {
       const [register, { closeModal }] = useModalInner();
       const { t } = useI18n();
@@ -35,29 +34,29 @@
       watch(
         () => props.value,
         (value) => {
-          fileListRef.value = [];
-          value.forEach((item) => {
-            fileListRef.value = [
-              ...unref(fileListRef),
-              {
+          if (!isArray(value)) value = [];
+          fileListRef.value = value
+            .filter((item) => !!item)
+            .map((item) => {
+              return {
                 url: item,
                 type: item.split('.').pop() || '',
                 name: item.split('/').pop() || '',
-              },
-            ];
-          });
+              };
+            });
         },
-        { immediate: true }
+        { immediate: true },
       );
 
       // 鍒犻櫎
       function handleRemove(record: PreviewFileItem) {
         const index = fileListRef.value.findIndex((item) => item.url === record.url);
         if (index !== -1) {
-          fileListRef.value.splice(index, 1);
+          const removed = fileListRef.value.splice(index, 1);
+          emit('delete', removed[0].url);
           emit(
             'list-change',
-            fileListRef.value.map((item) => item.url)
+            fileListRef.value.map((item) => item.url),
           );
         }
       }
@@ -81,8 +80,8 @@
         register,
         closeModal,
         fileListRef,
-        columns: createPreviewColumns(),
-        actionColumn: createPreviewActionColumn({ handleRemove, handleDownload }),
+        columns: createPreviewColumns() as any[],
+        actionColumn: createPreviewActionColumn({ handleRemove, handleDownload }) as any,
       };
     },
   });

--
Gitblit v1.8.0