Skip to content

ProUpload 上传组件

概述

ProUpload 是增强型上传组件,支持按钮上传、拖拽上传、图片墙和头像上传四种模式,内置文件大小和类型校验。同时集成到 ProForm,支持 uploadimageUploadavatarUpload 三种表单项类型。

基本用法

vue
<script setup lang="ts">
import { ref } from 'vue'
import ProUpload from '@/components/Pro/ProUpload/index.vue'

const files = ref([])
</script>

<template>
  <!-- 按钮上传 -->
  <ProUpload v-model:value="files" mode="button" />

  <!-- 拖拽上传 -->
  <ProUpload v-model:value="files" mode="dragger" hint="支持 jpg、png 格式" />

  <!-- 图片墙 -->
  <ProUpload v-model:value="files" mode="image" :max-count="3" />

  <!-- 头像上传 -->
  <ProUpload v-model:value="files" mode="avatar" />
</template>

Props

属性类型默认值说明
valueUploadFile[][]文件列表(v-model)
mode'button' | 'dragger' | 'image' | 'avatar''button'上传模式
acceptstring接受的文件类型
maxSizenumber10文件大小上限(MB)
maxCountnumber最大文件数量
actionstring上传地址
buttonTextstring按钮/提示文字
hintstring帮助文字(dragger 模式下显示)

模式说明

button — 按钮上传

标准的按钮触发上传,适合一般文件上传场景。

dragger — 拖拽上传

拖拽区域上传,适合大文件或批量上传场景。

image — 图片墙

图片卡片列表,支持预览,适合多图上传场景。

avatar — 头像上传

圆形头像上传,带有 hover 遮罩效果,限制单张。

在 ProForm 中使用

typescript
const formItems: ProFormItem[] = [
  { name: 'avatar', label: '头像', type: 'avatarUpload' },
  { name: 'images', label: '图片', type: 'imageUpload', props: { maxCount: 3 } },
  { name: 'attachment', label: '附件', type: 'upload' },
]

Events

事件说明
update:value文件列表变化
change文件列表变化

基于 MIT 许可发布