Files
goodbuddy/docs/features/office-document-editing/ui-design.md
T

84 lines
4.2 KiB
Markdown

# Office 协同编辑界面设计
## 1. 信息架构
Office 文档不是一级页面,也不是成果面板中的内嵌卡片。它是助手工作栏中可创建多个实例的
“文档”应用。打开文件后新增文档页签,页签关闭只结束对应编辑会话。
```text
助手工作栏 Tab 行
[任务] [工作区] [预算.xlsx] [方案.docx] [+]
└─ 当前文档编辑器
```
“+”能力目录持续提供“文档”入口。用户从目录打开时选择已授权文件;从工作区、成果或会话文件
引用打开时直接创建实例。
## 2. 页签
- 图标按文档、表格和演示文稿类型显示,使用现有图标库。
- 可见标题使用文件名,不显示完整路径。
- 同名实例依次显示 `预算.xlsx`、`预算.xlsx · 2`。
- Tooltip 显示完整文件名、项目或成果来源、ShareServer 名称和只读状态,不显示本机绝对路径。
- `aria-label` 包含文件名、序号和状态。
- 加载、未保存、保存中、冲突和断线使用状态图标及可访问名称,不只依赖颜色。
- 文档应用为 `multiple`,不因已有文档页签而聚焦或替换其他实例。
## 3. 文档标题栏
编辑器上方保留 GoodBuddy 控制的紧凑标题栏:
- 左侧:文件名、来源范围、只读或冲突状态。
- 中部:最近一次源文件保存结果。
- 右侧:保存、另存为、刷新状态、在独立窗口打开和更多菜单。
撤销、重做、格式、查找和文档内部编辑命令使用 ONLYOFFICE 工具栏,不在 GoodBuddy 标题栏
重复。保存按钮必须区分“正在保存到 ShareServer”和“已写回源文件”。
## 4. 尺寸与停靠
文档页签沿用工作栏右侧、底部和独立窗口三种停靠方式,但编辑器有额外宽度要求:
| 可用宽度 | 行为 |
| --- | --- |
| `>= 720px` | 完整编辑器与完整工具栏 |
| `480px - 719px` | 编辑器精简工具栏,保留核心编辑命令 |
| `< 480px` | 不加载可编辑画布,显示文件摘要、状态和“展开编辑”命令 |
右侧工作栏达到普通 `300px` 最小宽度时不能把完整 Office 工具栏压缩到重叠。用户选择“展开
编辑”时切换到主内容区或独立窗口,仍复用原文档页签和编辑会话,不创建第二份文档。
文档画布、公式栏、幻灯片缩略图和滚动区域使用稳定尺寸;编辑器加载、状态文字或长文件名不得
推动 Tab 行和标题栏重新布局。
## 5. 状态与反馈
| 状态 | 可见反馈 | 允许操作 |
| --- | --- | --- |
| 上传中 | 上传进度、目标 ShareServer、取消 | 取消 |
| 编辑中 | 编辑器、来源和最近保存时间 | 编辑、AI 编辑、保存 |
| 只读 | 持续只读标识和原因 | 查看、另存为 |
| 保存中 | “正在创建检查点”或“正在写回源文件” | 不重复保存,可继续查看 |
| 冲突 | 持续警告和两个版本的时间、大小 | 打开外部版本、另存、替换 |
| 断线 | 明确失败阶段和重试 | 查看最后已加载内容、重连 |
| 会话过期 | 修改是否存在稳定检查点 | 恢复检查点或关闭 |
通知不能代替页签内持续状态。后台文档保存完成只更新页签状态和应用通知,不抢占当前页签。
## 6. AI 编辑
- AI 编辑入口出现在 ONLYOFFICE 选区工具栏或 GoodBuddy 编辑器插件中。
- 点击后使用紧凑指令输入框;当前选区类型和范围持续可见。
- 发送前显示将使用的 Conversation、模型和 ShareServer,不展示内部选区 ID。
- 处理中锁定本次选区事务,不锁定整个文档的阅读和滚动。
- 成功后高亮所有修改位置,并显示可用的撤销命令。
- 文档 revision 已变化时不静默套用旧结果,要求重新选择或重新生成。
## 7. 可访问性与主题
- GoodBuddy 外壳遵循根级 `UI-DESIGN.md` 的主题和焦点规则。
- 编辑器主题跟随应用主题,但第三方编辑器无法完整匹配时优先保证可读性,不注入脆弱的 DOM
样式覆盖。
- Tab、标题栏和冲突对话框支持完整键盘操作及明确焦点恢复。
- 第三方编辑器页面必须提供可识别标题;加载失败后焦点回到重试命令。