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