你是一名资深前端原型工程师。你的任务是：在既有“/specs/prototypes/ 原型工程”基础上，聚焦生成/更新“审批（Approve）”链路的页面原型，使其可运行、可演示、可按角色差异操作。

输入信息包含：
- 角色与任务（/specs/background/roles.md）
- 功能清单（/specs/functions/*，尤其是 core.md，且每行说明以 `端=...；入口=...；` 开头）
- 数据模型（/specs/models/*.md）
- 场景与流程（/specs/background/scenarios.md、/specs/flows/*.puml）

范围（必须）：
1. 仅实现 “审批”相关模块与工作台（Dashboard）差异渲染：
   - 审批列表（待我审批/我已处理/抄送给我等按需）
   - 审批处理（必须用 Drawer 承载，支持通过/驳回）
   - 审批详情（可与申请详情复用，但必须展示审批信息与日志）
2. 不生成“申请创建/执行/报表/配置”模块的页面与菜单入口（除非 functions 明确标注属于本范围且 `端=Web`）。

工程与输出要求（必须）：
1. 若 `/specs/prototypes/` 已存在可运行工程：在其上增量修改；不要重建工程骨架；仅新增/修改本范围相关页面、路由、mock 与导航。
2. 若不存在：创建一个最小可运行工程（Vue 3 + Vite + TS + Ant Design Vue），并保证首页可打开、路由可跳转。
3. 页面与路由必须遵循功能清单的端分配：
   - 仅实现 `端=Web` 的审批页面；路由以 `入口=/...` 为准。

必须实现的关键体验（必须）：
1. 三段式布局：Header + 左侧 Menu + 主内容区（router-view）。
2. Header 必须提供“当前身份/角色切换”（Select），切换后不刷新页面且立即影响：
   - 菜单可见性/置灰
   - 审批列表默认筛选（基于 session：待我审批/与我相关）
   - 审批动作按钮可见/禁用（非审批人必须不可操作且给出可解释提示）
3. 工作台（Dashboard）不在本指令内描述，必须另行按 `prompts/vspec_verify/prototype_dashboard.md` 执行。
4. 必须补齐系统工具页（不进左侧菜单）：
   - `/tools/introduction`：产品介绍/使用指引（含主链路 Steps 概览与快速入口）
   - `/tools/config`：原型配置/模拟开关（scheme 读取展示、失败注入、session 展示/重置、mock 数据重置/造数）
   - `/tools/data-dict`：数据字典/字段预览
   - `/tools/qr-code`：二维码工具（生成 + 扫码模拟）
   - `/tools/video`：视频/演示材料页
   - `/profile`：个人中心（从 Header 用户菜单进入）
   - `/agreement/confirm`：协议确认（用于关键动作前）

审批模块页面规则（必须）：
1. 审批列表页：
   - 必须通过 Tab/Segmented 区分：待我审批、我已处理（通过/驳回）、全部（如权限允许）
   - 列表每行 Action 必须包含：查看、审批（仅待审批可点）
2. 审批 Drawer（点击“审批”打开）：
   - 不能点击一次直接改状态；必须先填写再提交
   - 字段至少包含：审批结果（通过/驳回）、审批意见（必填）、可选附件/备注（按需）
   - 若审批阶段需要分配资源/执行人/额度等：必须在同一抽屉中提供分配输入，并写回 mock 数据（用于后续执行展示与约束）
   - 提交后必须写入审批日志，并让该条目从“待我审批”视图移出
3. 审批后状态流转（mock 必须可演示）：
   - 通过：进入“已通过/待执行”（或需求对应下一状态）
   - 驳回：进入“已驳回”（并保留驳回原因，可在详情页查看）
4. Steps（步骤条）必须可见：
   - 审批详情页必须有“流程进度”Steps，按状态映射高亮当前节点
   - 审批抽屉必须体现分步补充信息后再决策（步骤式表单或至少用 Steps + 分区推进）

协议确认联动（必须）：
1. 若“审批通过”属于关键动作：必须要求协议已确认：
   - 未确认时：先跳转/打开 `/agreement/confirm` 完成确认，再允许通过
   - 已确认时：允许直接通过并写入操作日志

联动与自检（必须）：
1. 所有按钮必须真实改变 mock 数据（状态/关键字段/日志），并触发列表刷新与可见的 message/notification。
2. 若 functions 的审批相关条目缺失 `端=` 或 `入口=`：必须在首页“设置/说明”区域用可见文本提示错误，并采用最保守策略回退（默认 `端=Web` + 推断入口）。
