Skip to content

Upload

上传组件,Upload组件经过了重构,虽然总体上与之前总体是兼容的,但是添加了很多的默认行为。具体参见API部分。

上传组件的类型可以分为两个种:一种是仅提供选择文件的功能,文件数据会在用户点击提交时随表单的From对象一起上传给后端;另一种是在提交表单之前先上传至后端(大部分情况下是提前上传至OSS),在提交表单时不提交文件的二进制信息而是获取桶内对应文件的url或者其他可以获取已上传文件的字符串。本组件对这两种行为做了不同的处理。当组件的action属性为'#'且没有配置httpRequest属性时会将属性当做第一种情况处理,onChange事件会在fileListstatus改变时触发。当用户配置了两者中的任意一项时会当做第二种情况处理,onChange事件会在请求完成(即fileList中有任意一项的response属性发生改变)时触发。

显示给用户看的文件列表与表单最后提交的值是分离的、是单向的,即当fileListdataSource)改变时会触发onChange事件(修改Fieldvalue),但是当value改变时不会修改dataSource,这是因为大部分情况下这种改动都是单向的:用户添加删除选择的文件时从fileList中获取对应的value。只有一种情况下是例外的即表单信息的反显:在处理反显时除了需要设置Fieldvalue外还需要自己组装组件的fileListdataSource),具体需要将fileList组装到什么程度可以根据业务需要自己决定。

Markup Schema 案例

JSON Schema 案例

Template 案例

API

Props

提示

  1. 现在组件的fileList属性现在会映射为FielddataSource属性,而不是之前的value属性,当dataSource(即fileList)改变时会触发onChange事件,value会经过formatValue函数处理。

  2. limit1时会自动替换掉之前的文件,这部分逻辑无法覆写。

  3. 如果组件的accept属性包含image字符且fileList中的项提供了url属性则会自动开启图片预览功能,想要禁用此功能可以配置onPreview为一个空函数。

属性名说明类型默认值
textContent上传按钮的文本内容,在不同的上传模式下显示位置不同string''
errorAdaptor错误信息适配器,用于自定义错误信息的展示格式Functionerror => error?.message
formatValue 1.0.0格式化函数,用于将文件列表转换为表单最终提交的值FunctionfileList => fileList
fileList 1.0.0文件列表,映射为dataSource,ElUpload的 fileList 属性array[]
imageViewerProps 1.0.0图片预览器的属性配置,当上传图片时可用于自定义预览行为object{ teleported: true, showProgress: true }

onChange事件与onUpdate:fileList事件被占用,请勿使用。其余属性与事件请参考 https://cn.element-plus.org/zh-CN/component/upload.html

插槽 1.0.0

组件继承了ElUpload的所有插槽。

提示

可以使用textContent属性list-type属性drag属性快速生成本来需要通过插槽实现的交互,具体请参考demo。

获取实例 1.0.0

用于获取ElUpload实例,具体暴露的方法请参考element-plus文档。

ts
const uploadRef: Ref<UploadInstance> = fieldRef.value.invoke('getElUploadRef')