# 房务日历「我的 / 全部」切换契约(前端对接) > 模块:房务管家 · 日历视图(管理后台) > 类型:**前端对接说明(后端无改动,能力早已具备)** > 日期:2026-06-28 > 背景:房务日历需要能看到「全部订单」,当前默认只看本人(我的)。后端 `GET /admin/house/calendar` **早已支持 `scope=all` 返回全部、且无任何角色门控**,前端把「全部」Tab 接到 `scope=all` 即可,无需后端改动。 --- ## 一、端点与参数(不变) `GET /admin/house/calendar` | 参数 | 必填 | 取值 | 说明 | |------|------|------|------| | `month` | 是 | `YYYY-MM`(如 `2026-06`) | 月份 | | `scope` | 否 | `mine`(**默认**)/ `all` | **「我的」=`mine`,「全部」=`all`** | | `status` | 否 | `inProgress,inquiry,pending,exception` 多选逗号分隔,不填=全部 | 状态点筛选 | ## 二、「我的 / 全部」怎么切换(核心) **同一个端点,切换 Tab 只改 `scope` 参数值、重新请求即可**,其余参数(month/status)不变: - 点「我的」→ 请求 `?month=2026-06&scope=mine` - 点「全部」→ 请求 `?month=2026-06&scope=all` 两个 scope 的差异(后端口径): | | `scope=mine`(我的) | `scope=all`(全部) | |---|---|---| | 数据范围 | **仅当前登录房务作为认领人(claimer)的订单** | **所有订单**,不按认领人过滤 | | 角色门控 | 无 | **无**(普通房务 / admin / 组长都能看全部,不需要组长权限) | | 待配房桶(pending,无归属房务) | **恒为空**(待配房还没认领人,不属于"我的") | 正常返回本月全部待配房 | | summary 各计数 / days 各天团数 | 按"我的"口径 | 按"全部"口径 | > 即:要让日历"看到全部订单",前端在「全部」Tab 下传 `scope=all` 即可。**建议日历默认进入时用 `scope=all`(一眼看全团),保留「我的」Tab 让房务切回 `scope=mine` 只看自己。** 是否默认全部由前端定,后端两种都支持。 ## 三、出参结构(随 scope 变化,结构不变) ``` { "month": "2026-06", "summary": { "totalNights": 64, "inProgress": 32, "pending": 0, "inquiry": 0, "exception": 0 }, "days": [ { "date": "2026-06-28", "isCurrentMonth": true, "isToday": true, "tourCount": 24, // 该日团数(DISTINCT order_id) "statusDots": [ // 右下角圆点 { "status": "inProgress", "label": "进行中", "count": 14, "color": "green" }, { "status": "inquiry", "label": "询房中", "count": 8, "color": "orange" }, { "status": "exception", "label": "异常", "count": 2, "color": "red" } ] } // ... 完整周排版 28~42 天, isCurrentMonth=false 的为补位的上/下月日期(灰显) ] } ``` - `summary` 与 `days` 都随 `scope` 变;`scope=mine` 且当前房务名下无认领时全为 0(`totalNights=0`、days 无点)。 - 状态点 `status` 取值:`inProgress`(进行中) / `inquiry`(询房中) / `pending`(待配房) / `exception`(异常)。 ## 四、测试服实测(已通过,证明能力具备) 同一 admin 账号、同月 `2026-06`: | scope | 实测结果 | 说明 | |-------|----------|------| | `mine` | `totalNights=0`、0 团 | 该账号名下无认领订单 → 我的为空 | | `all` | `totalNights=64`、`inProgress=32` 团 | **全部订单正常返回**,无门控 | 接口 HTTP 200,结构如上。**后端无需任何改动,前端按本说明把「全部」Tab 接到 `scope=all` 即可。**