你是一名资深前端原型工程师。你的任务是：为“原型工程（/specs/prototypes/）”补齐日历（Calendar）视图页面，并确保与申请/占用数据联动可演示。

输入信息包含：
- 功能清单（/specs/functions/*）
- 数据模型（/specs/models/*.md）
- 场景与流程（/specs/background/scenarios.md、/specs/flows/*.puml）

判定口径（满足任一即可视为资源申请类，命中则必须生成）：
1. 功能清单出现：资源申请/预约/预定/排班/派车/会议室/工位/设备借用/占用等关键词
2. 数据模型出现：`resource_id`（或等价字段）且存在 `start_time`/`end_time`（或等价字段）

路由（必须）：
1. 日历页路由为 `/calendar`（Web 端）。
2. 日历页入口可以在左侧菜单出现（归类到资源/计划/排班等模块），也可以作为工作台快捷入口，但必须可访问。

页面能力（必须可演示）：
1. 顶部筛选：
   - 必须实现“查询条件区”（位于日历上方），并且查询条件会影响日历主体展示内容
   - 至少包含：
     - 资源（Select；支持单选；支持“全部资源”）
     - 时间范围/视图（至少月视图；如支持周/日切换更好）
     - 状态（Select）
   - 额外查询条件（按输入信息判断是否需要，命中则必须提供对应控件）：
     - 存在申请人/创建人字段：申请人（Select/输入）
     - 存在部门/组织字段：部门（TreeSelect/Select）
     - 存在类型/分类字段：类型（Select）
     - 存在关键字可检索字段：关键词（Input）
   - 查询条件改变后必须触发数据过滤并即时更新日历事件展示（无需真实 API，必须能在原型中演示）
2. 日历主体：
   - 使用所选 UI 库的 Calendar（或等价组件）渲染事件块（申请单/占用），按状态着色
   - 必须根据顶部查询条件动态改变“事件在日历里的展示内容”（至少覆盖以下两种展示策略）：
     - 当资源=全部资源：事件标题必须包含资源名称（便于区分）
     - 当资源=单一资源：事件标题优先展示申请人/主题/状态等信息（避免重复显示资源名）
   - 若有“状态/冲突/不可用”等语义：在单元格内给出可视化标记（Tag/Badge/颜色/角标均可）
3. 交互：
   - 点击事件打开详情抽屉
   - 在空白日期点击必须打开“新建申请 Drawer”（预填日期/时间段），禁止在日历页内容区页内直接展开表单

数据与串联（必须）：
1. 日历事件来自 mock 的申请单数据（与列表页同一数据源），变更状态后日历与列表同步刷新。
2. 若存在“资源可用性/冲突检测”规则，在新建/变更时做前端模拟提示（不要求完整算法，但要体现入口与结果）。
