feat(components): 新增表单上传组件

This commit is contained in:
xlsea
2025-06-10 22:00:28 +08:00
parent da1c16e023
commit 03c8a7f5b7
5 changed files with 64 additions and 50 deletions

View File

@ -1,11 +1,12 @@
<script setup lang="ts">
import { computed, ref, watch } from 'vue';
import type { UploadFileInfo } from 'naive-ui';
import FileUpload from '@/components/custom/file-upload.vue';
defineOptions({
name: 'OssUploadModal'
});
const fileUploadRef = ref<InstanceType<typeof FileUpload> | null>(null);
interface Props {
uploadType: 'file' | 'image';
}
@ -26,6 +27,8 @@ const accept = computed(() => {
return props.uploadType === 'file' ? '.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.pdf' : '.jpg,.jpeg,.png,.gif,.bmp,.webp';
});
const fileList = ref<UploadFileInfo[]>([]);
function handleUpdateModelWhenUpload() {}
function closeDrawer() {
@ -34,7 +37,7 @@ function closeDrawer() {
function handleClose() {
closeDrawer();
if (fileUploadRef.value?.needRelaodData) {
if (fileList.value?.length > 0) {
emit('close');
}
}
@ -56,7 +59,7 @@ watch(visible, () => {
:bordered="false"
@after-leave="handleClose"
>
<FileUpload ref="fileUploadRef" :upload-type="uploadType" :accept="accept" />
<FileUpload v-model:file-list="fileList" :upload-type="uploadType" :accept="accept" />
</NModal>
</template>