# 交付 - 工具栏统一设计 v1.9 · 开发交付清单 > **版本**: v1.9(员工端落地版 · 2026-08-05 最终微调) > **REQ 编号**: REQ-会话-001 > **负责人**: Duckula 主理人 > **状态**: ✅ 已拍板,正式交付开发 > **基线原型**: `原型-REQ-会话-001-工具栏统一设计v1.9-员工端落地版.html` > **历史版本**(已归档,仅供回溯): v1.3 / v1.4 / v1.5 / v1.6 / v1.7 / v1.8 --- ## 一、目标 把员工端会话窗口的输入区工具栏统一为: > 圆角长方形 + 中央圆润拱形轨道(人工坐席按钮 60px 居中), > 工具栏作为唯一浮起的玻璃元素,融于「会话消息区 ↔ 消息输入区」之间。 > 三区共享同一块连续浅色表面,无内部区隔线。 **业务目标**:让"转人工坐席"成为输入区里最显眼、可点、不突兀的主 CTA。 --- ## 二、需要修改/创建的文件 | # | 文件 | 类型 | 改动 | 影响范围 | |---|------|------|------|----------| | 1 | `src/frontend-h5/src/components/chat/InputBar.vue` | **改** | 工具栏容器重构为 `.gem-toolbar`;新增 SVG 轨道;坐席按钮 .agent-btn.gem(60px、居中、不探出、无光晕);工具按钮 .glass-btn 保持 40px 在轨道内不溢出;aria-label/title/focus-visible;装饰 SVG 加 aria-hidden | 仅本组件 | | 2 | `src/frontend-h5/src/components/chat/InputBar.test.ts` | **改** | 补充两端收口 + 坐席 60px 居中结构测试 | 测试同步 | | 3 | `src/frontend-h5/src/assets/images/agent-avatar.jpg` | **新建/替换** | 接入实际员工头像资源(占位图 `agent-avatar-v0.8.jpg` 替换) | 资源替换 | | 4 | `src/frontend-h5/src/styles/theme.scss`(或对应 token 文件) | **改** | 新增 gem 工具栏相关设计 token:`--gem-toolbar-height: 84px` / `--gem-btn-size: 40px` / `--gem-agent-size: 60px` / `--gem-radius: 18px` | 全局可复用 | **不动**: - `IntegrationZone.vue`(v1.3 已删除坐席按钮) - `inputBarCallAgentState.ts` / `integrationZoneLogic.ts`(helper 保留) - `IntegrationZone.test.ts`(无坐席按钮相关测试) - 其余无关组件 --- ## 三、SVG 轨道(必须严格按此 path 实现) **viewBox**: `0 0 312 84` **中心线 y**: `42` **关键几何**(不要改): - 坐席按钮 60px,y 区间 `12..72` - 工具按钮 40px,y 区间 `22..62` - 轨道左右端点 `x=0` / `x=312`,圆角端帽半径 `18` - 顶/底两端直线段:`y=18` / `y=66`,x 区间 `[18..84]` 与 `[216..294]` - 穹顶区间:`x 84..216` - 顶点:`y=4`(顶)/ `y=80`(底),位于 `x=156` ```html ``` **SVG defs(轨道渐变 + 已有图标渐变)** 全部沿用 v1.9 落地版文件中的 `` 块,复制即可。 --- ## 四、核心 CSS(按此实现) ```scss .gem-toolbar { position: relative; display: flex; align-items: center; justify-content: center; padding: 0 16px; width: fit-content; height: 84px; } .gem-toolbar-bg { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; overflow: visible; } .gem-row { position: relative; z-index: 2; display: flex; align-items: center; justify-content: center; gap: 12px; } .gem-toolbar .agent-btn.gem { width: 60px; height: 60px; margin: 0 6px; z-index: 3; box-shadow: none; /* 不探出 · 无光晕 */ } .gem-toolbar .glass-btn { z-index: 2; } /* 可见的键盘 focus 态(可达性) */ .glass-btn:focus-visible, .agent-btn:focus-visible { outline: 2px solid #6366f1; outline-offset: 2px; } ``` **三区融合关键**:消息区 / `.gem-band` / `.inputbar-mock` 都不要 `border-top`/`border-bottom`,且 `background: transparent`,让 `chatpanel` 自身的渐变背景透出来,仅窗口标题栏保留 chrome 分隔。 --- ## 五、可访问性(必做) - 每个 `