# 使用场景

支持图片、视频、PDF 和其它文件类型进行预览。

# 使用示例

基础使用

不需要任何配置,通过 v-model 指定要预览的文件列表。
显示代码

可拖动

文件预览框支持拖动。
显示代码

指定文件列表的文件类型

通过 fileType 字段指定统一的文件类型,使用 listType 设置文件列表的展示形式。
切换文件类型
切换列表展示方式
显示代码

支持不同格式的参数

还支持传递一个对象,或者一个单独的文件 url 访问路径,或者作为单独的文件预览组件。
传递一个对象
只是传递一个访问路径
点击预览
显示代码

文件名省略处理

指定宽度,超出后文件名显示省略号,移动上去显示完整文件名。
显示代码

自定义内容

完全自定义要显示的列表内容,组件只提供预览的能力。
显示代码

支持音频文件播放

支持音频文件播放。
显示代码

卡片类型自定义展示几列

卡片类型自定义展示几列,类似栅格布局里面的 span 属性配置。
显示代码

通过全局挂载使用

全局挂载了 $viewer 函数,可直接调用函数后调用 showModal 来使用。
显示代码

# API

Attributes

参数
说明
类型
可选值
默认值
v-model受控,如果是数据回显,结构支持 [{name: '', url: ''}] 和 [{fileName: '', filePath: ''}]Array[][]
fileType文件类型,默认通过后缀识别,如果指定了就优先使用Stringimage | video | pdf | file
listType文件的上传类型,根据不同的 listType 切换成不同的上传样式Stringthumbnail | link | card | customthumbnail
downloadUrl文件预览地址,如果传递了就使用,否则去取 $api.downloadStringString''
addDownloadPath是否自动添加文件下载地址,默认不拼接,一般也不需要拼接Booleantrue | falsefalse
showFileList是否显示文件列表,如果在上传组件里面使用则不需要展示列表Stringimage | video | pdf | filetrue
fieldKey设置默认值的文件列表时,传递的 name 和 url,接口一般返回的是 fileName 和 filePath,默认先取 name 和 url,没有的话再去取 fileName 和 filePathObject{name: String, url: String}{name: 'fileName', url: 'filePath'}
span仅 listType 为 card 生效,文件列表以栅格形式展示Boolean | Numberfalse | Numberfalse
usePdf是否使用 ak-pdf 组件来显示 pdf 文件,默认使用 iframe 来加载。因为在 IE11 里面 pdf 文件会变成下载,所以需要借助 ak-pdf 来展示Boolean | Object<ak-pdf-canvas attrs>false | Objectfalse
onAfterClosed弹框完全关闭后的回调Function----
showDownload是否显示下载按钮Booleantrue | falsefalse
drag文件预览框是否需要拖动Booleantrue | falsefalse

Methods

参数
说明
类型
可选值
默认值
refs.showModal显示弹框,activeIndex 默认选中第一个,传递具体下标来选中,如果是 true 也是默认选中第一个FunctionFunctionshowModal(record, activeIndex = true)
refs.hideModal隐藏弹框,跟 showModal 对应Function----
fileChange预览文件切换的回调,点击切换、箭头切换、初次打开预览这三个地方都会触发该方法的回调Function--function(index, record)

插槽

参数
说明
类型
可选值
默认值
slot=default默认插槽,配合 listType=custom 使用,当默认展示的文件列表不满足时使用。------
slot=actions在文件列表后面追加操作使用。------
slot=preview当预览的文件类型需要自定义时使用。------

全局方法

参数
说明
类型
可选值
默认值
this.$viewer全局挂载的方法,初始化的时候支持传递所有的 props 属性,返回的实例新增了 close 方法,与 hideModal 的区别是 close 方法在关闭弹框的同时会移除弹框的 DOM 节点,如果是通过全局挂载来使用的弹框,建议是 close 来关闭Functionthis.$viewer(props)--
viewer.close调用 this.$viewer 之后返回的 close() 函数,用来关闭当前打开的预览弹框Function----
最后更新时间: 2022-02-24 19:47:31