FileList 文件列表

用于展示文件列表,自动识别文件后缀展示对应图标,支持列表模式、小卡片模式和大卡片模式。图片类型文件在卡片和大卡片模式下可直接展示缩略图预览。

综合示例
包含模式切换、文件选择、Modal 删除确认弹窗、点击下载等完整交互。
项目文件
png
产品截图.png
2.3 MB
jpg
团队合照.jpg
153.1 KB
pdf
年度报告.pdf
871.1 KB
xlsx
数据统计.xlsx
40.0 KB
docx
需求文档.docx
239.3 KB
pptx
演示文稿.pptx
5.0 MB
zip
项目源码.zip
15.0 MB
sql
数据库备份.sql
3.0 MB
svg
架构图.svg
96.0 KB
当前模式:grid已选中 0 项:
基础用法
通过 files 属性传入文件列表,自动识别文件后缀展示对应图标。
pdf
年度报告.pdf
2.3 MB
xlsx
数据统计.xlsx
153.1 KB
docx
需求文档.docx
871.1 KB
pptx
演示文稿.pptx
5.0 MB
json
配置文件.json
4.0 KB
png
背景图片.png
1.0 MB
zip
项目源码.zip
15.0 MB
sql
数据库备份.sql
3.0 MB
小卡片模式
设置 mode 为 grid 切换为小卡片网格布局,紧凑展示图标与文件名。
pdf
年度报告.pdf
2.3 MB
xlsx
数据统计.xlsx
153.1 KB
docx
需求文档.docx
871.1 KB
pptx
演示文稿.pptx
5.0 MB
json
配置文件.json
4.0 KB
png
背景图片.png
1.0 MB
zip
项目源码.zip
15.0 MB
sql
数据库备份.sql
3.0 MB
大卡片模式
设置 mode 为 card 切换为大卡片模式。图片类型文件(jpg/png/gif/svg等)会直接展示缩略图预览,其他类型展示大图标。
产品截图.png
产品截图.png
2.3 MB
团队合照.jpg
团队合照.jpg
153.1 KB
pdf
年度报告.pdf
871.1 KB
架构图.svg
架构图.svg
5.0 MB
xlsx
数据统计.xlsx
4.0 KB
用户头像.png
用户头像.png
1.0 MB
模式切换
设置 showModeToggle 显示列表/小卡片/大卡片模式切换按钮,mode 支持 v-model 双向绑定。
png
产品截图.png
2.3 MB
jpg
团队合照.jpg
153.1 KB
pdf
年度报告.pdf
871.1 KB
svg
架构图.svg
5.0 MB
xlsx
数据统计.xlsx
4.0 KB
png
用户头像.png
1.0 MB
当前模式:list
可选择
设置 selectable 启用文件选择,通过 v-model 绑定已选中项的 uid 列表,支持列表和卡片模式。
pdf
年度报告.pdf
2.3 MB
xlsx
数据统计.xlsx
153.1 KB
docx
需求文档.docx
871.1 KB
pptx
演示文稿.pptx
5.0 MB
json
配置文件.json
4.0 KB
png
背景图片.png
1.0 MB
zip
项目源码.zip
15.0 MB
sql
数据库备份.sql
3.0 MB
已选中 0 项:
带标题与日期
通过 header 属性设置列表头部标题,设置 show-date 显示文件日期信息。
项目文档
docx
会议纪要.docx
43.9 KB2026-06-20
pdf
设计方案.pdf
869.1 KB2026-06-18
zip
源代码.zip
5.0 MB2026-06-15
sql
数据库备份.sql
3.0 MB2026-06-13
删除确认
监听 remove 事件,使用 NModal 对话框确认后再执行删除操作。
可删除文件
pdf
旧版报告.pdf
3.1 MB
xlsx
废弃数据.xlsx
12.5 KB
zip
临时文件.zip
10.0 MB
自定义图标映射
通过 icons 属性自定义文件后缀与图标的映射关系。
md
README.md
8.0 KB
yml
server.yml
2.0 KB
py
app.py
15.0 KB
自定义插槽
通过 #file-icon、#file-name、#file-actions 插槽自定义文件项的展示内容。
📕
年度报告.pdf
2.3 MB
📊
数据统计.xlsx
153.1 KB
📝
需求文档.docx
871.1 KB
📽️
演示文稿.pptx
5.0 MB
📄
配置文件.json
4.0 KB
📄
背景图片.png
1.0 MB
📄
项目源码.zip
15.0 MB
📄
数据库备份.sql
3.0 MB

FileList Props

参数类型默认值说明
filesFileItem[][]文件列表数据
mode'list' | 'grid' | 'card''list'展示模式:列表 / 小卡片 / 大卡片
headerstring-列表头部标题
selectablebooleanfalse是否可选择文件
modelValue(string | number)[][]已选中文件的 uid 列表,支持 v-model
showSizebooleantrue是否显示文件大小
showDatebooleanfalse是否显示文件日期
showActionsbooleantrue是否显示操作按钮
showModeTogglebooleanfalse是否显示列表/小卡片/大卡片模式切换
iconsRecord<string, string>{}自定义文件后缀到图标名的映射
colorfulIconsstring[][]额外要使用彩色 SVG 的扩展名列表(内置已有 37 种)
emptyTextstring'暂无文件'空状态提示文字

FileList Events

事件名参数说明
update:mode(mode: 'list' | 'grid' | 'card')模式切换时触发
update:modelValue(keys: (string|number)[])选择变化时触发
file-click(file: FileItem)点击文件时触发(可用于下载/预览)
select(file: FileItem, selected: boolean)选择/取消选择时触发
remove(file: FileItem, index: number)点击删除按钮时触发(需自行实现删除逻辑)

FileList Slots

插槽名参数说明
header-列表头部自定义内容
file-icon{ file, ext, iconName }文件图标自定义
file-name{ file }文件名自定义
file-actions{ file }操作按钮区域自定义

FileItem 数据结构

参数类型默认值说明
uidstring | number-文件唯一标识(用于选择)
namestring-文件名(含扩展名,用于自动推断图标)
sizenumber-文件大小(字节,自动格式化为 KB/MB)
datestring-文件日期字符串
urlstring-文件下载/预览地址(卡片模式下图片直接展示预览缩略图)
typestring-自定义文件 MIME 类型(可覆盖自动推断,如 image/png)

FileListItem Slots

插槽名参数说明
icon{ file, ext, iconName }文件图标(FileListItem 内部)
name{ file }文件名(FileListItem 内部)
actions{ file }操作区域(FileListItem 内部)