# 文档驾驶舱双视图交互规格 r1 状态:待评审;这是界面与交互规格,不是实现稿。 ## 1. 信息架构 ```text 项目文档驾驶舱 ├── 顶部:项目名 / 视图切换 / 密度 / 全局筛选 / 刷新状态 ├── 项目统计带:完成度、空缺、未核实、冲突、待确认、最近更新 ├── 左栏:文档结构树(文档→章节→小节→段落) ├── 中栏: │ ├── 全景:项目/文档概览、章节状态、关系摘要 │ └── 阅读器:目录定位、正文、段落状态和版本变化 └── 右栏:依据、历史、影响、冲突(同一选中节点) ``` 不新增第四栏。窄屏时三栏变为同一工作区内的单栏导航:树、内容、依据面板依次进入,始终提供明确返回按钮和当前节点标题。 ## 2. 顶部统计带 统计卡只展示数值和一句解释,不做装饰性大卡片。每个统计项可点击,点击后只改变共享筛选: - 完成度:已知完成节点 / 已知节点;数据不足时显示“部分计算”。 - 空缺段落:内容为空或结构缺失的叶节点。 - 未核实来源:有来源但验证状态不是 `verified` 的节点数。 - 冲突:开放或待裁定冲突数。 - 待确认变更:最近变化中需要人工确认的变更数。 - 最近更新:最近一次可见变更时间和操作者。 点击统计不得直接执行写入或裁定;它只定位待处理内容。 ## 3. 左侧结构树 ### 默认显示 每行显示标题、层级缩进、内容状态、来源数、冲突/待确认徽标和最近更新时间。内部 ID、数据库类型名和技术状态码不显示。文档节点可以展开,章节和段落按需加载;加载失败只影响当前分支并保留重试。 ### 交互 - 单击节点:更新共享 `selectedNodeRef`,中央和右侧同步加载。 - 展开箭头:只加载子节点,不改变选中内容。 - 键盘:方向键移动,Enter 选择,Space 展开,左/右折叠/展开。 - 搜索:按标题、路径和可见摘要检索;搜索结果仍受项目权限和当前筛选约束。 - 状态徽标:可作为筛选入口,但不隐藏结构树的其他节点。 ## 4. 结构全景 ### 中央内容 未选中节点时显示项目/文档概览:文档列表、章节完成度条、缺项摘要、最近变化和风险分布。选中节点时显示: 1. 节点标题和路径。 2. 一句话状态总结(内容、验证、冲突、影响)。 3. 当前可见正文摘要或章节概览。 4. 子节点状态表,可按缺项/冲突/负责人排序。 5. “在阅读器中打开”按钮,带同一 `nodeRef` 和阅读锚点。 ### 关系摘要 只在选中节点附近显示来源数量、影响对象数量和冲突数量;关系详情在右栏展开。大规模网络图不是默认内容。 ## 5. 文档阅读器 ### 中央内容 阅读器按章节连续渲染正文,段落之间显示轻量状态线:来源类型、验证状态、最近修改人/时间和冲突标记。版本变化默认以“当前版本 + 前一版本摘要”呈现,完整差异使用 `Collapsible` 展开。被权限过滤的段落显示“内容受限”,而不是空白。 ### 阅读行为 - 从全景进入阅读器时定位到选中节点并保留章节滚动锚点。 - 从对话卡片或来源跳转时,若目标是关系解释,进入全景;若目标是交付正文,进入阅读器。 - 切换筛选后保留选中节点;若节点被筛掉,显示“当前节点不在筛选范围”并提供清除筛选。 - 后台更新不抢占滚动位置;仅在标题旁显示“内容已更新”,用户选择刷新。 ## 6. 右侧依据与影响面板 右侧使用四个标签,默认打开“内容来源”。每个标签显示数量和状态,详情按需展开。 ### 内容来源 显示来源类型图标/文字、摘要、采集时间、核实状态、置信度和可见定位。私人来源只显示脱敏元数据;不展示隐藏原文或内部提示词。 ### 修改历史 以自然语言时间线显示创建、正文修改、来源变化、验证变化和冲突状态变化。每条记录显示操作者、时间、版本和差异摘要;完整 diff 折叠。 ### 影响对象 显示受影响要求、文档、风险、任务和追溯关系。默认一跳,显示关系类型、方向、状态和置信度;继续展开前提示数量上限。 ### 冲突与风险 显示冲突双方摘要、各自来源、发现时间和当前裁定状态。没有权限看到一侧原文时仍显示“另一侧受限”,不把冲突误判成单方事实。 ## 7. 状态与空态 | 状态 | 文案方向 | 禁止行为 | |---|---|---| | 加载中 | 加载项目文档概览 / 加载依据 | 不显示虚假的 0 统计 | | 空项目 | 暂无受控文档 | 不显示导入或生成按钮,除非另有已批准入口 | | 部分加载 | 已显示已读取内容,部分依据暂不可用 | 不把部分数据标为完整 | | 受限 | 你可以看到节点状态,但正文受权限限制 | 不泄露原文存在性以外的私密信息 | | 过期 | 内容来自某时间的快照,刷新以获取最新状态 | 不静默自动改写用户正在阅读的正文 | | 失败 | 该面板暂时不可用,可重试 | 不清空其它已成功面板 | | 截断 | 已显示前 N 条,继续展开有上限 | 不假装显示全部关系 | ## 8. 视觉与可访问性门禁 - 颜色、圆角、字号只消费 `@ui/tokens.css`;字号使用 `--fs-ui-*`。 - 折叠只使用 `@ui` `Collapsible`,动效只使用 `@ui/motion.css` 的 `mk-*` 类。 - 主操作采用单色反色按钮;状态色只表达成功、警告、错误、等待和差异语义。 - 320/390/736/1024/1440 宽度下不横向溢出;18px UI 字号下标题、按钮和徽标不重叠。 - 所有图标按钮有可访问名称;树节点和标签页有键盘焦点;减少动效时只保留状态变化。 - 不把三栏做成互相嵌套的卡片墙;页面区域使用无框布局,重复来源/变化项才使用轻量条目容器。 ## 9. 视图切换规则 | 触发来源 | 默认视图 | 定位 | |---|---|---| | 第一次进入项目 | 结构全景 | 项目根节点 | | 用户上次有偏好 | 上次视图 | 上次项目/节点锚点(仍需重新授权) | | 对话解释关系 | 结构全景 | 目标关系节点 | | 对话交付正文 | 文档阅读器 | 目标章节/段落 | | 来源或冲突跳转 | 当前视图保持 | 选中节点 + 右栏对应标签 | | 节点无正文但有关系 | 结构全景 | 节点摘要和影响面板 | ## 10. 交互验收场景 1. 进入有多个文档的项目,首屏看到统计和树,不需要逐个打开弹窗。 2. 在全景点选段落,切换阅读器后正文和右栏仍是同一段落。 3. 从阅读器打开来源,返回后保持滚动位置和筛选。 4. 一个来源被撤回或标为未核实,统计、树徽标、正文状态和来源面板一致变化。 5. 两个来源冲突时,冲突面板显示双方摘要;无权限的一侧只显示脱敏状态。 6. 读取超时或断线后,保留旧快照并明确显示过期,不出现空白页面。 7. 在窄屏和键盘操作下,树、正文和依据面板都可进入和返回。