Appearance
BizExpenseClaim 费用报销单
企业内部报销单据复合件:单据头(编号 / 报销人 / 部门 / 事由)+ 费用明细行(类型 · 日期 · 金额 · 发票号 · 备注,行增删复制)+ 合计(千分位 + 人民币大写)+ 发票夹(代码 + 号码重复拦截 / 查验标记)+ 发票影像附件 + 提交审批 / 暂存草稿。readonly 只读快照供审批详情页回显,model-value 支持快照 / 草稿恢复。
基础用法
单号BX20261026-975报销人王小明 部门
报销事由
0 / 100
费用明细
合计(1 笔)¥ 0.00零元整
发票夹
发票代码 开票日期
发票号码
金额(元)
¥
同「发票代码 + 号码」重复登记会被拦截(防重复报销);登记后可标记查验状态随单提交。
明细行金额支持千分位与失焦规整(内嵌 BizAmountInput);合计实时汇总并联动人民币大写;「暂存草稿」将数据经 draft 事件外抛。
明细校验与单笔上限
单号BX20261026-482报销人李雷
报销事由
16 / 100
费用明细
合计(2 笔)¥ 7,000.00柒仟元整
发票夹
发票代码 开票日期
发票号码
金额(元)
¥
同「发票代码 + 号码」重复登记会被拦截(防重复报销);登记后可标记查验状态随单提交。
amount-limit=5000:第二行 4680 元在输入框失焦时回弹受限;即便绕过,提交校验仍按行拦截并提示行号。
发票夹与重复拦截
单号BX20261026-355报销人韩梅梅
报销事由
0 / 100
费用明细
合计(1 笔)¥ 0.00零元整
发票夹
发票代码 开票日期
发票号码
金额(元)
¥
同「发票代码 + 号码」重复登记会被拦截(防重复报销);登记后可标记查验状态随单提交。
先完整登记一张发票(代码 / 号码 / 金额 / 日期均必填),再用相同代码+号码登记第二次——将被拦截并提示「防重复报销」;登记后可切换查验状态。
附件上传
单号BX20261026-563报销人赵敏
报销事由
0 / 100
费用明细
合计(1 笔)¥ 0.00零元整
发票夹
发票代码 开票日期
发票号码
金额(元)
¥
同「发票代码 + 号码」重复登记会被拦截(防重复报销);登记后可标记查验状态随单提交。
发票影像 / 凭证附件
支持 Ctrl + V 粘贴截图
支持截图 Ctrl+V 粘贴上传
未注入 uploadRequest 时隐藏上传入口;注入后复用 BizUploadFile 全链路(类型 / 大小校验、失败重传、Ctrl+V 截图粘贴)。
合计与人民币大写
单号BX20261026-716报销人财务共享中心
报销事由
11 / 100
费用明细
合计(3 笔)¥ 15,008,449.80壹仟伍佰万零捌仟肆佰肆拾玖元捌角
发票夹
发票代码 开票日期
发票号码
金额(元)
¥
同「发票代码 + 号码」重复登记会被拦截(防重复报销);登记后可标记查验状态随单提交。
首行 15,005,000 元演示跨节零口径:壹仟伍佰万零伍仟元整;修改任意行金额,合计与大写即时重算。
部门与费用类型定制
单号CW20261026-656报销人车队·马强 部门
报销事由
0 / 100
费用明细
合计(1 笔)¥ 0.00零元整
发票夹
发票代码 开票日期
发票号码
金额(元)
¥
同「发票代码 + 号码」重复登记会被拦截(防重复报销);登记后可标记查验状态随单提交。
提交载荷
单号BX20261026-115报销人陈晨 部门
报销事由
11 / 100
费用明细
合计(2 笔)¥ 1,720.00壹仟柒佰贰拾元整
发票夹
发票代码 开票日期
发票号码
金额(元)
¥
提交失败停留
单号BX20261026-488报销人测试账号
报销事由
0 / 100
费用明细
合计(1 笔)¥ 0.00零元整
发票夹
发票代码 开票日期
发票号码
金额(元)
¥
同「发票代码 + 号码」重复登记会被拦截(防重复报销);登记后可标记查验状态随单提交。
事由填写「模拟失败」提交可看到:错误提示 + 表单停留(数据不丢);改为其他事由即可提交成功进入成功页。
只读审查(审批快照)
readonly 下渲染审批快照:明细 / 发票夹 / 附件均为纯展示,合计与大写随快照计算,适合审批流详情页。
插槽扩展
单号BX20261026-196报销人吴迪 部门 部门月度预算余量:¥ 12000
报销事由
0 / 100
费用明细
合计(1 笔)¥ 0.00零元整
发票夹
发票代码 开票日期
发票号码
金额(元)
¥
同「发票代码 + 号码」重复登记会被拦截(防重复报销);登记后可标记查验状态随单提交。
header-extra 作用域提供实时合计 total;footer 作用域提供当前 payload,可挂自定义动作。
Props
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| code-prefix | string | 'BX' | 单据编号前缀(后接日期 + 随机序号) |
| applicant | string | '当前用户' | 报销人(快照可覆盖) |
| departments | string[] | — | 部门候选(传入即渲染部门下拉) |
| department | string | '' | 默认选中部门 |
| expense-types | BizExpenseType[] | 差旅·交通 / 差旅·住宿 / 业务招待 / 办公用品 / 通讯网络 / 培训会议 / 其他 | 费用类型口径 |
| reason-required | boolean | true | 事由必填 |
| reason-placeholder | string | — | 事由占位文案 |
| amount-limit | number | — | 单笔金额上限(元):金额输入失焦回弹 + 提交校验拦截 |
| show-invoices | boolean | true | 发票夹区块 |
| invoice-required | boolean | false | 提交时至少登记一张发票 |
| upload-request | (file: File) => Promise<string> | — | 附件上传实现(复用 BizUploadFile 契约;未注入时隐藏上传入口) |
| upload-limit | number | 9 | 附件数量上限 |
| submit-request | (payload: BizExpenseClaimPayload) => Promise<void> | — | 提交实现:resolve 进入成功页;reject 提示失败停留;不配置时外抛 submit 后直接成功 |
| readonly | boolean | false | 只读审查(审批快照) |
| model-value | BizExpenseClaimSnapshot | — | 回显快照(审批快照 / 草稿恢复;submitted: true 直接渲染成功态) |
| success-text | string | '请留意审批进度通知' | 提交成功副文案 |
Events
| 事件名 | 参数 | 说明 |
|---|---|---|
| submit | (payload: BizExpenseClaimPayload) | 提交审批(先于 submitRequest 抛出) |
| draft | (payload: BizExpenseClaimPayload) | 暂存草稿(不做校验,数据完整外抛) |
Slots
| 插槽名 | 说明 |
|---|---|
| header-extra | 单据头右侧扩展(作用域:total 实时合计) |
| footer | 底部操作区扩展(作用域:payload 当前载荷) |
Expose
| 属性/方法 | 说明 |
|---|---|
| validate | () => Promise<boolean> 表单校验(明细行 / 上限 / 发票要求数) |
| getPayload | () => BizExpenseClaimPayload 取当前载荷(不校验) |
| reset | () => void 重置为空白单据(重新生成编号) |
口径说明
- 单据编号:
{code-prefix}{YYYYMMDD}-{3 位随机序号},reset 重新生成;快照携带 code 时以快照为准。 - 合计与大写:合计 = 明细行金额求和(两位精度规整);大写使用库内
toRmbUppercase(元角分 / 零整 / 跨节零压缩,如 15005000 → 壹仟伍佰万零伍仟元整)。 - 发票重复口径:按「发票代码 + 发票号码」二元组判重,登记入口即时拦截;查验状态为本地标记随 payload 提交(真实查验可基于该字段对接税局接口回写)。
- 明细行至少一行:删除到最后一行时按钮降级为拦截提示。