Appearance
BizResourceBooking 资源预约
资源维度 × 日期的时段网格预约组件:资源清单切换(含停用置灰)、半点/整点粒度时段表(空闲 / 已占 / 已过三态)、点选两格圈定区间并即时冲突拦截、事由与参与人表单(时长边界 + 容纳上限校验)、我的预约取消与变更(变更 = 预填 + 提交自动替换旧约)、周期预约(每周 / 每两周 × N 期,整组冲突检测与整组取消)。与 BizAppointmentPicker(个人时段选择表单件)互补:本组件面向「多资源 + 多人冲突」的业务面板层,适用于会议室预订、车辆调度、共享设备与场地预约等场景。
基础用法
资源预约
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
08:00 – 08:30已过
08:30 – 09:00已过
09:00 – 09:30已过
09:30 – 10:00已过
10:00 – 10:30已过
10:30 – 11:00已过
11:00 – 11:30已过
11:30 – 12:00已过
12:00 – 12:30已过
12:30 – 13:00已过
13:00 – 13:30已过
13:30 – 14:00已过
14:00 – 14:30已过
14:30 – 15:00已过
15:00 – 15:30已过
15:30 – 16:00已过
16:00 – 16:30已过
16:30 – 17:00已过
17:00 – 17:30空闲可约
17:30 – 18:00空闲可约
18:00 – 18:30空闲可约
18:30 – 19:00空闲可约
19:00 – 19:30空闲可约
19:30 – 20:00空闲可约
新建预约
时段点击左侧空闲时段圈定区间
事由
参与人
输入姓名回车添加
我的预约(近 1 条)
2026-10-27 09:00~10:30长江会议室待使用
车辆调度(容量校验)
公务车辆预约
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
08:00 – 09:00已过
09:00 – 10:00已过
10:00 – 11:00已过
11:00 – 12:00已过
12:00 – 13:00已过
13:00 – 14:00已过
14:00 – 15:00已过
15:00 – 16:00已过
16:00 – 17:00已过
17:00 – 18:00空闲可约
18:00 – 19:00空闲可约
19:00 – 20:00空闲可约
新建预约
时段点击左侧空闲时段圈定区间
事由
参与人
输入姓名回车添加
冲突拦截
资源预约
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
08:00 – 08:30已过
08:30 – 09:00已过
09:00 – 09:30已过
09:30 – 10:00已过
10:00 – 10:30已过
10:30 – 11:00已过
11:00 – 11:30已过
11:30 – 12:00已过
12:00 – 12:30已过
12:30 – 13:00已过
13:00 – 13:30已过
13:30 – 14:00已过
14:00 – 14:30已过
14:30 – 15:00已过
15:00 – 15:30已过
15:30 – 16:00已过
16:00 – 16:30已过
16:30 – 17:00已过
17:00 – 17:30空闲可约
17:30 – 18:00空闲可约
18:00 – 18:30空闲可约
18:30 – 19:00空闲可约
19:00 – 19:30空闲可约
19:30 – 20:00空闲可约
新建预约
时段点击左侧空闲时段圈定区间
事由
参与人
输入姓名回车添加
09:00~12:00 已被占用:选中起点后跨越占用格,终点即被拦截;成功提交 0 次。
远程模式(三接口)
资源预约
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
08:00 – 08:30已过
08:30 – 09:00已过
09:00 – 09:30已过
09:30 – 10:00已过
10:00 – 10:30已过
10:30 – 11:00已过
11:00 – 11:30已过
11:30 – 12:00已过
12:00 – 12:30已过
12:30 – 13:00已过
13:00 – 13:30已过
13:30 – 14:00已过
14:00 – 14:30已过
14:30 – 15:00已过
15:00 – 15:30已过
15:30 – 16:00已过
16:00 – 16:30已过
16:30 – 17:00已过
17:00 – 17:30空闲可约
17:30 – 18:00空闲可约
18:00 – 18:30空闲可约
18:30 – 19:00空闲可约
19:00 – 19:30空闲可约
19:30 – 20:00空闲可约
新建预约
时段点击左侧空闲时段圈定区间
事由
参与人
输入姓名回车添加
我的预约(取消 / 变更)
资源预约
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
08:00 – 08:30已过
08:30 – 09:00已过
09:00 – 09:30已过
09:30 – 10:00已过
10:00 – 10:30已过
10:30 – 11:00已过
11:00 – 11:30已过
11:30 – 12:00已过
12:00 – 12:30已过
12:30 – 13:00已过
13:00 – 13:30已过
13:30 – 14:00已过
14:00 – 14:30已过
14:30 – 15:00已过
15:00 – 15:30已过
15:30 – 16:00已过
16:00 – 16:30已过
16:30 – 17:00已过
17:00 – 17:30空闲可约
17:30 – 18:00空闲可约
18:00 – 18:30空闲可约
18:30 – 19:00空闲可约
19:00 – 19:30空闲可约
19:30 – 20:00空闲可约
新建预约
时段点击左侧空闲时段圈定区间
事由
参与人
输入姓名回车添加
我的预约(近 3 条)
2026-10-26 16:00~17:00洽谈室 1使用中
2026-10-27 09:30~11:00洽谈室 1待使用
2026-10-28 14:00~15:30洽谈室 2待使用
周期预约(每周)
资源预约
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
08:00 – 08:30已过
08:30 – 09:00已过
09:00 – 09:30已过
09:30 – 10:00已过
10:00 – 10:30已过
10:30 – 11:00已过
11:00 – 11:30已过
11:30 – 12:00已过
12:00 – 12:30已过
12:30 – 13:00已过
13:00 – 13:30已过
13:30 – 14:00已过
14:00 – 14:30已过
14:30 – 15:00已过
15:00 – 15:30已过
15:30 – 16:00已过
16:00 – 16:30已过
16:30 – 17:00已过
17:00 – 17:30空闲可约
17:30 – 18:00空闲可约
18:00 – 18:30空闲可约
18:30 – 19:00空闲可约
19:00 – 19:30空闲可约
19:30 – 20:00空闲可约
新建预约
时段点击左侧空闲时段圈定区间
重复
事由
参与人
输入姓名回车添加
周期预约(每两周)
双周例会预约
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
08:00 – 08:30已过
08:30 – 09:00已过
09:00 – 09:30已过
09:30 – 10:00已过
10:00 – 10:30已过
10:30 – 11:00已过
11:00 – 11:30已过
11:30 – 12:00已过
12:00 – 12:30已过
12:30 – 13:00已过
13:00 – 13:30已过
13:30 – 14:00已过
14:00 – 14:30已过
14:30 – 15:00已过
15:00 – 15:30已过
15:30 – 16:00已过
16:00 – 16:30已过
16:30 – 17:00已过
17:00 – 17:30空闲可约
17:30 – 18:00空闲可约
18:00 – 18:30空闲可约
18:30 – 19:00空闲可约
19:00 – 19:30空闲可约
19:30 – 20:00空闲可约
新建预约
时段点击左侧空闲时段圈定区间
重复
事由
参与人
输入姓名回车添加
整组冲突拦截
周期冲突演示(第 3 / 5 期被占)
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
08:00 – 08:30已过
08:30 – 09:00已过
09:00 – 09:30已过
09:30 – 10:00已过
10:00 – 10:30已过
10:30 – 11:00已过
11:00 – 11:30已过
11:30 – 12:00已过
12:00 – 12:30已过
12:30 – 13:00已过
13:00 – 13:30已过
13:30 – 14:00已过
14:00 – 14:30已过
14:30 – 15:00已过
15:00 – 15:30已过
15:30 – 16:00已过
16:00 – 16:30已过
16:30 – 17:00已过
17:00 – 17:30空闲可约
17:30 – 18:00空闲可约
18:00 – 18:30空闲可约
18:30 – 19:00空闲可约
19:00 – 19:30空闲可约
19:30 – 20:00空闲可约
新建预约
时段点击左侧空闲时段圈定区间
重复
事由
参与人
输入姓名回车添加
系列整组取消
系列预约整组取消
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
08:00 – 08:30已过
08:30 – 09:00已过
09:00 – 09:30已过
09:30 – 10:00已过
10:00 – 10:30已过
10:30 – 11:00已过
11:00 – 11:30已过
11:30 – 12:00已过
12:00 – 12:30已过
12:30 – 13:00已过
13:00 – 13:30已过
13:30 – 14:00已过
14:00 – 14:30已过
14:30 – 15:00已过
15:00 – 15:30已过
15:30 – 16:00已过
16:00 – 16:30已过
16:30 – 17:00已过
17:00 – 17:30空闲可约
17:30 – 18:00空闲可约
18:00 – 18:30空闲可约
18:30 – 19:00空闲可约
19:00 – 19:30空闲可约
19:30 – 20:00空闲可约
新建预约
时段点击左侧空闲时段圈定区间
事由
参与人
输入姓名回车添加
我的预约(近 3 条)
2026-11-02 09:30~10:30长江会议室系列待使用
2026-11-09 09:30~10:30长江会议室系列待使用
2026-11-16 09:30~10:30长江会议室系列待使用
期数上限与载荷
期数上限演示(2~4 期)
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
08:00 – 08:30已过
08:30 – 09:00已过
09:00 – 09:30已过
09:30 – 10:00已过
10:00 – 10:30已过
10:30 – 11:00已过
11:00 – 11:30已过
11:30 – 12:00已过
12:00 – 12:30已过
12:30 – 13:00已过
13:00 – 13:30已过
13:30 – 14:00已过
14:00 – 14:30已过
14:30 – 15:00已过
15:00 – 15:30已过
15:30 – 16:00已过
16:00 – 16:30已过
16:30 – 17:00已过
17:00 – 17:30空闲可约
17:30 – 18:00空闲可约
18:00 – 18:30空闲可约
18:30 – 19:00空闲可约
19:00 – 19:30空闲可约
19:30 – 20:00空闲可约
新建预约
时段点击左侧空闲时段圈定区间
重复
事由
参与人
输入姓名回车添加
远程周期预约
周期预约(远程模式)
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
08:00 – 08:30已过
08:30 – 09:00已过
09:00 – 09:30已过
09:30 – 10:00已过
10:00 – 10:30已过
10:30 – 11:00已过
11:00 – 11:30已过
11:30 – 12:00已过
12:00 – 12:30已过
12:30 – 13:00已过
13:00 – 13:30已过
13:30 – 14:00已过
14:00 – 14:30已过
14:30 – 15:00已过
15:00 – 15:30已过
15:30 – 16:00已过
16:00 – 16:30已过
16:30 – 17:00已过
17:00 – 17:30空闲可约
17:30 – 18:00空闲可约
18:00 – 18:30空闲可约
18:30 – 19:00空闲可约
19:00 – 19:30空闲可约
19:30 – 20:00空闲可约
新建预约
时段点击左侧空闲时段圈定区间
重复
事由
参与人
输入姓名回车添加
营业时段与整点粒度
羽毛球场预约
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
10:00 – 11:00已过
11:00 – 12:00已过
12:00 – 13:00已过
13:00 – 14:00已过
14:00 – 15:00已过
15:00 – 16:00已过
16:00 – 17:00已过
17:00 – 18:00空闲可约
18:00 – 19:00空闲可约
19:00 – 20:00空闲可约
20:00 – 21:00空闲可约
21:00 – 22:00空闲可约
新建预约
时段点击左侧空闲时段圈定区间
事由
参与人
输入姓名回车添加
时长边界
专家咨询预约(每场 1~2 小时)
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
08:00 – 08:30已过
08:30 – 09:00已过
09:00 – 09:30已过
09:30 – 10:00已过
10:00 – 10:30已过
10:30 – 11:00已过
11:00 – 11:30已过
11:30 – 12:00已过
12:00 – 12:30已过
12:30 – 13:00已过
13:00 – 13:30已过
13:30 – 14:00已过
14:00 – 14:30已过
14:30 – 15:00已过
15:00 – 15:30已过
15:30 – 16:00已过
16:00 – 16:30已过
16:30 – 17:00已过
17:00 – 17:30空闲可约
17:30 – 18:00空闲可约
18:00 – 18:30空闲可约
18:30 – 19:00空闲可约
19:00 – 19:30空闲可约
19:30 – 20:00空闲可约
新建预约
时段点击左侧空闲时段圈定区间
事由
参与人
输入姓名回车添加
min-duration / max-duration 按「格数 × 粒度」换算时长,提交前即时校验。
停用资源
共享设备预约
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
08:00 – 08:30已过
08:30 – 09:00已过
09:00 – 09:30已过
09:30 – 10:00已过
10:00 – 10:30已过
10:30 – 11:00已过
11:00 – 11:30已过
11:30 – 12:00已过
12:00 – 12:30已过
12:30 – 13:00已过
13:00 – 13:30已过
13:30 – 14:00已过
14:00 – 14:30已过
14:30 – 15:00已过
15:00 – 15:30已过
15:30 – 16:00已过
16:00 – 16:30已过
16:30 – 17:00已过
17:00 – 17:30空闲可约
17:30 – 18:00空闲可约
18:00 – 18:30空闲可约
18:30 – 19:00空闲可约
19:00 – 19:30空闲可约
19:30 – 20:00空闲可约
新建预约
时段点击左侧空闲时段圈定区间
事由
参与人
输入姓名回车添加
过去日期防护
默认:禁止回看
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
08:00 – 08:30已过
08:30 – 09:00已过
09:00 – 09:30已过
09:30 – 10:00已过
10:00 – 10:30已过
10:30 – 11:00已过
11:00 – 11:30已过
11:30 – 12:00已过
12:00 – 12:30已过
12:30 – 13:00已过
13:00 – 13:30已过
13:30 – 14:00已过
14:00 – 14:30已过
14:30 – 15:00已过
15:00 – 15:30已过
15:30 – 16:00已过
16:00 – 16:30已过
16:30 – 17:00已过
17:00 – 17:30空闲可约
17:30 – 18:00空闲可约
18:00 – 18:30空闲可约
18:30 – 19:00空闲可约
19:00 – 19:30空闲可约
19:30 – 20:00空闲可约
新建预约
时段点击左侧空闲时段圈定区间
事由
参与人
输入姓名回车添加
allow-past:可回看历史占用
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
08:00 – 08:30空闲可约
08:30 – 09:00空闲可约
09:00 – 09:30空闲可约
09:30 – 10:00空闲可约
10:00 – 10:30空闲可约
10:30 – 11:00空闲可约
11:00 – 11:30空闲可约
11:30 – 12:00空闲可约
12:00 – 12:30空闲可约
12:30 – 13:00空闲可约
13:00 – 13:30空闲可约
13:30 – 14:00空闲可约
14:00 – 14:30空闲可约
14:30 – 15:00空闲可约
15:00 – 15:30空闲可约
15:30 – 16:00空闲可约
16:00 – 16:30空闲可约
16:30 – 17:00空闲可约
17:00 – 17:30空闲可约
17:30 – 18:00空闲可约
18:00 – 18:30空闲可约
18:30 – 19:00空闲可约
19:00 – 19:30空闲可约
19:30 – 20:00空闲可约
新建预约
时段点击左侧空闲时段圈定区间
事由
参与人
输入姓名回车添加
只读占用总览
前台值班 · 占用总览
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
08:00 – 08:30已过
08:30 – 09:00已过
09:00 – 09:30已过
09:30 – 10:00已过
10:00 – 10:30已过
10:30 – 11:00已过
11:00 – 11:30已过
11:30 – 12:00已过
12:00 – 12:30已过
12:30 – 13:00已过
13:00 – 13:30已过
13:30 – 14:00已过
14:00 – 14:30已过
14:30 – 15:00已过
15:00 – 15:30已过
15:30 – 16:00已过
16:00 – 16:30已过
16:30 – 17:00已过
17:00 – 17:30空闲可约
17:30 – 18:00空闲可约
18:00 – 18:30空闲可约
18:30 – 19:00空闲可约
19:00 – 19:30空闲可约
19:30 – 20:00空闲可约
插槽
资源预约
请选择资源 · 2026-10-26 时段表空闲 已占 已选
时段状态
08:00 – 08:30已过
08:30 – 09:00已过
09:00 – 09:30已过
09:30 – 10:00已过
10:00 – 10:30已过
10:30 – 11:00已过
11:00 – 11:30已过
11:30 – 12:00已过
12:00 – 12:30已过
12:30 – 13:00已过
13:00 – 13:30已过
13:30 – 14:00已过
14:00 – 14:30已过
14:30 – 15:00已过
15:00 – 15:30已过
15:30 – 16:00已过
16:00 – 16:30已过
16:30 – 17:00已过
17:00 – 17:30空闲可约
17:30 – 18:00空闲可约
18:00 – 18:30空闲可约
18:30 – 19:00空闲可约
19:00 – 19:30空闲可约
19:30 – 20:00空闲可约
新建预约
时段点击左侧空闲时段圈定区间
事由
参与人
输入姓名回车添加
我的预约(近 1 条)
2026-10-27 10:00~11:30共享工位 A 区待使用单号 t1
Props
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| title | string | '资源预约' | 面板标题 |
| resources | BizBookingResource[] | [] | 资源清单:{ id, name, capacity?, location?, tags?, disabled? };capacity 为数字时参与人数上限校验 |
| bookings | BizBookingRecord[] | [] | 预约记录(本地模式数据源):{ id, resourceId, date, start, end, booker, purpose?, status?, mine?, seriesId? } |
| day-start | number | 8 | 网格起始小时 |
| day-end | number | 20 | 网格结束小时(不含) |
| granularity | 30 | 60 | 30 | 时段粒度(分钟) |
| date | string | 今天 | 初始查看日期(YYYY-MM-DD) |
| allow-past | boolean | false | 允许选择过去日期与已过时段(历史回看) |
| min-duration | number | 30 | 单次预约最小时长(分钟) |
| max-duration | number | 240 | 单次预约最大时长(分钟) |
| require-purpose | boolean | true | 事由必填 |
| current-user | string | '当前用户' | 当前用户名(新预约归属) |
| request | () => Promise<BizBookingRecord[]> | — | 远端拉取预约记录(远程模式) |
| submit-request | (payload) => Promise<void> | — | 预约提交(远程模式,失败提示后中止) |
| cancel-request | (record) => Promise<void> | — | 取消预约(远程模式) |
| my-limit | number | 5 | 我的预约面板展示条数 |
| allow-recurring | boolean | false | 开启周期预约(重复:每周 / 每两周 × N 期) |
| max-repeat-count | number | 8 | 周期预约最大期数(期数钳制 2 ~ 该值) |
| readonly | boolean | false | 只读模式:仅查看占用,隐藏表单与取消 |
Events
| 事件名 | 参数 | 说明 |
|---|---|---|
| submit | (payload: BizBookingPayload) | 预约提交(先于 submitRequest 外抛);payload 携带 replaceOf 时为变更提交,携带 repeat 时为周期预约(dates 含全期日期) |
| cancel | (record: BizBookingRecord) | 预约取消(含变更提交后的旧约自动取消;系列整组取消时逐期外抛) |
Slots
| 插槽名 | 说明 |
|---|---|
| resource-extra | { resource } 资源卡底部追加内容(建议非交互元素,卡片本身为按钮) |
| my-booking-extra | { record } 我的预约行尾部追加内容 |
Expose
| 属性/方法 | 说明 |
|---|---|
| refresh | () => Promise<void> 重新拉取预约(request 注入时) |
| prefillFrom | (record: BizBookingRecord) => void 以既有记录预填新建表单(「变更」的程序化入口) |
口径说明
- 时段占用:
[start, end)左闭右开;status为canceled/done的记录不占时段。 - 冲突拦截:三层——圈区终点校验、提交前兜底校验、远程模式
submitRequest服务端复验(示例中的 reject 分支)。 - 变更:不直接改旧约,而是「预填 +
replaceOf提交」:新约落库后旧约置canceled并外抛cancel事件,保证审计可追溯;系列预约成员不支持单期变更(提示整组取消后重提)。 - 周期预约:首期 = 当前查看日期,之后按每周 / 每两周步进;提交前整组冲突检测(任一期次冲突即整组拒绝,消息标出冲突期次与日期,被替换旧约不计冲突);落库为共享
seriesId的多期记录,取消走「整组取消」二次确认。 - 已过判定:仅当查看日期为今天且时段结束时刻 ≤ 当前分钟时置灰;跨天与
allow-past场景不受影响。