SpFile 文件
大约 2 分钟
文件展示容器,可以显示基础的文件信息、文件下载等操作
基础用法
<script setup>
import { ref } from 'vue';
const fileList = ref([
{
name: '产品说明书.pdf',
size: 23548685,
},
{
name: '2023年第3季度报表.pdf',
size: 235486,
},
]);
</script>
<template>
<SpFile v-for="file in fileList" :file-name="file.name" :file-size="file.size"></SpFile>
</template>
产品说明书.pdf
22.46 M
2023年第3季度报表.docx
229.97 K
启用文件下载
传入 download-url
属性即可,组件会出现下载按钮,点击下载按钮后会按照 file-name
的名字下载文件。
<template>
<SpFile :file-name="file.name" :file-size="file.size" :download-url="file.downloadUrl" />
</template>
自定义按钮
<script setup>
import { ref } from 'vue';
const fileList = ref([
{
name: '产品说明书.pdf',
size: 23548685,
},
{
name: '2023年第3季度报表.pdf',
size: 235486,
},
]);
</script>
<template>
<SpFile v-for="file in fileList" :file-name="file.name" :file-size="file.size">
<template #fileOperate>
<ElSwitch v-model="file.isEnabled" />
</template>
</SpFile>
</template>
产品说明书.pdf
22.46 M
2023年第3季度报表.docx
229.97 K
组件大小
<script setup>
import { ref } from 'vue';
const fileList = ref([
{
name: '产品说明书.pdf',
size: 23548685,
},
{
name: '2023年第3季度报表.pdf',
size: 235486,
},
]);
</script>
<template>
<SpFile v-for="file in fileList" :file-name="file.name" :file-size="file.size" small>
<template #fileOperate>
<ElSwitch v-model="file.isEnabled" />
</template>
</SpFile>
</template>
产品说明书.pdf
22.46 M
2023年第3季度报表.docx
229.97 K
API
SpFile 属性
属性名 | 说明 | 类型 | 默认值 |
---|---|---|---|
fileName | 文件名 | string | - |
fileSize | 文件大小,单位:bytes | number | - |
isDeleted | 是否已删除 0-否 1-是 | 0 | 1 | - |
percentage | 进度条进度,需要传入 0 ~ 100 的数字 | number | - |
downloadUrl | 文件下载地址 | string | - |
thumbnailUrl | 缩略图地址,如果不传则不会显示缩略图。如果传了,会通过 fileName 进行判断是否支持预览,不支持也不会显示缩略图 | string | - |
deleteEnabled | 启用删除功能 | boolean | false |
small | 是否启用小组件样式 | boolean | false |
SpFile 事件
事件名 | 说明 | 类型 |
---|---|---|
delete | 确认删除事件 | () => void |
SpFile 插槽
插槽名 | 说明 |
---|---|
fileOperate | 文件拓展操作插槽,可以扩充一些内容 |