Skip to content

ImageUpload

qxs-image-upload@qxs-bns/components 里的图片上传组件,适合头像、封面、活动头图这类需要缩略图回填、预览查看、删除和上传成功回收结果的场景。

基础用法

loading
ts
import '@qxs-bns/components/image-upload'

如果你已经全量引入:

ts
import '@qxs-bns/components'

使用说明

loading
  • qxs-image-upload 的主数据入口是 fileList property,推荐由宿主直接维护。
  • 上传成功后组件会派发 upload-success,同时兼容旧版事件名 success
  • 如果你需要在 Vue 里模拟 v-model:file-list,可以监听 file-list-changeupdate:fileList,再回写宿主状态。

常见场景

loading

宿主接入示例

loading

API

属性

NameDescriptionTypeDefault
action上传地址string''
fileList图片列表。推荐通过 property 传入ImageUploadFile[][]
headers上传请求头。推荐通过 property 传入Record<string, string>undefined
data上传时附带的额外字段。推荐通过 property 传入Record<string, string | Blob>undefined
name上传字段名string'file'
size单张图片大小上限,单位 MBnumber20
width缩略图宽度,单位 pxnumber160
height缩略图高度,单位 pxnumber90
limit最大上传数量number1
accept允许上传的 MIME / 类型列表string'image/jpeg,image/jpg,image/png,image/gif'
placeholder上传区域文案string'上传图片'
notip是否隐藏默认提示文案booleanfalse
tip-text自定义默认提示文案string''
disabled是否禁用上传和删除booleanfalse

事件

NameDescription
upload-success单张图片上传成功时触发,detail 包含 responsefilefiles
success兼容旧版 Vue 的成功事件别名
remove删除图片时触发,detail.file 为被删图片
file-list-change图片列表变化时触发,detail.fileList 为当前列表
update:fileList兼容旧版 v-model:file-list 语义的事件别名

插槽

NameDescription
tip自定义底部提示内容

CSS Parts

PartDescription
container外层容器
list图片列表区
item单张图片卡片
image缩略图
placeholder无图占位
progress上传进度条
actions悬浮操作区
add新增图片入口
add-content新增入口内容
tip默认提示文案
message校验或限制提示
viewer预览弹层

常见问题

为什么上传成功后不会自动把服务端 URL 写回缩略图?

组件不会猜测你的接口响应结构。
如果你的接口返回真实图片地址,建议在 upload-success 事件里读取 detail.response,再按业务结构回写 fileList

预览弹层和删除按钮为什么都在组件内部?

因为这两个交互是图片上传最常见的默认能力。
如果你要完全自定义宿主交互,可以只把它当成缩略图列表和上传入口,再用 part 覆盖样式。

相关文档

ImageUpload has loaded