Appearance
BizUploadVideo 视频上传
单视频上传:格式 / 大小 / 时长三重前置校验(时长经本地 metadata 读取)、选择后自动封帧生成封面(dataURL,v-model:poster 同步)、上传中遮罩、video 预览卡(poster / controls)。上传实现由业务侧 request 注入(组件零接口),v-model 视频地址直接进表单提交。与 BizUploadImage 同族。
基础用法
上传视频
支持 mp4 / mov / webm,不超过 200MB、10 分钟;选择后自动截取首帧作为封面
v-model:(空)
封面:(空)
编辑回显 · 尺寸变量 · 关闭封帧
编辑态:已有视频直接回显(poster 可传外链封面);删除后出现「重新上传」触发块
课件上传(时长上限)
上传课件视频
课程课件:mp4 / mov / webm,≤1GB、时长 ≤30 分钟;选后自动截取首帧为课程封面
设计出图封面
上传正片
capture=false 关闭自动封帧,封面走设计出图外链
时长校验演示
上传短视频
视频动态素材:时长 ≤10 秒(本地长视频会被拦截,error 事件拿到原因)
表单集成
Props
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| model-value / v-model | string | '' | 视频地址 |
| request | (file: File) => Promise<string> | — | 必填。上传实现(业务接口在业务侧) |
| accept | string | 'video/mp4,…' | 接受的类型 |
| max-size | number | 200 | 大小上限(MB) |
| max-duration | number | 600 | 时长上限(秒) |
| poster | string | '' | 封面地址(展示用) |
| capture | boolean | true | 选择后自动封帧,update:poster 同步 dataURL |
| tip | string | '' | 底部提示 |
| trigger-text | string | '上传视频' | 触发块文案 |
其余属性(
name/headers/limit…)经v-bind="$attrs"透传 el-upload。
Events
| 事件名 | 参数 | 说明 |
|---|---|---|
| update:model-value | (url: string) | 视频地址变化(删除时为空串) |
| update:poster | (poster: string) | 封面变化(封帧 dataURL / 删除清空) |
| error | (message: string) | 校验不过 / 上传失败 |
Slots
| 插槽名 | 说明 |
|---|---|
| — | 无插槽 |
Expose
| 属性/方法 | 说明 |
|---|---|
| onRemove | () => void 清空视频与封面 |