Skip to content

CpAttachment 附件管理

对齐旧系统 AttachmentMgt.ts(订单/单据附件弹窗)。列表复用 CpGrid(文件名 / 类别 / 大小 / 上传人 / 时间,checkbox 多选),工具栏含上传 / 批量上传 / 下载 / 删除 / 预览,支持附件类别审核锁定权限位inline 切换内联块 / 弹窗形态。

基础用法

基础用法
内联形态直接嵌页面;顶部按钮以弹窗形态打开同一组件。上传前按类别选择(报关单类别带日期录入);勾选行后可下载/删除/预览;开「已审核」锁定上传与删除。「分享」是 actions 插槽自定义按钮。
显示代码 ▼

接口契约

组件不绑后端,上传 / 下载 / 删除 / 预览全走 props 契约,复用业务侧现有请求封装与鉴权:

ts
// 上传:接后端上传接口,成功后组件自动调 load 刷新
upload: (file: File, meta: { type?: string; date?: string }) => Promise<void>
// 删除:接后端删除接口
remove: (uids: (string | number)[]) => Promise<void>
// 下载:不传则按 file.url 直接下载
download?: (files: AttachmentFile[]) => void | Promise<void>
// 预览:返回 URL 则组件新窗口打开,或业务侧自行处理(对齐旧版 PreviewFile 取临时 URL)
preview?: (file: AttachmentFile) => void | string | Promise<void | string>
// 刷新列表(对齐旧版 GetFileList)
load?: () => void | Promise<void>

类别 / 审核 / 权限

能力说明(对齐旧项目)
categories附件类别;上传前弹类别选择,hasDate 类别附带日期录入(旧版 have-date
approved已审核锁定:禁用上传 / 删除(旧版 approved 逻辑)
permissions权限位 { upload, download, delete, preview } 按位显隐工具栏(旧版 CompanyAttach* 权限),不传视为全部允许
batch-upload允许多选文件批量上传
#actions 插槽自定义工具栏按钮,作用域参数拿到 selected

API

属性 Props

属性说明类型默认值
v-model:visiblebooleanfalse
files附件列表(受控)AttachmentFile[]() => []
upload上传实现:接后端上传接口,成功后组件触发 refreshFunction
remove删除实现:接后端删除接口Function
download下载实现:不传则用 file.url 直接下载Function
preview预览实现:返回 URL 则组件新窗口打开,或业务侧自行处理Function
load上传 / 删除后重新拉列表(对齐旧版 GetFileList)Function
categories附件类别;非空时上传前弹类别选择AttachmentCategory[]() => []
batch-upload允许批量上传(多选文件)boolean
approved已审核:禁用上传 / 删除boolean
permissions权限位;不传视为全部允许AttachmentPermissions
inline内联块形态(默认弹窗)boolean
titlestring"附件管理"
widthstring | number720
heightnumber | string360

事件 Events

事件说明回调参数
@closed弹窗关闭动画结束
@upload-error上传失败(File)

方法 Expose

方法(ref 调用)说明
getSelected当前多选行
gridRef

插槽 Slots

插槽说明作用域参数
actionsselected