Commit Graph

6 Commits

Author SHA1 Message Date
Simon 2fd2e7df02 feat(backend/h5): 回流 qrConnect 扫码登录分支
将生产服务器 api/h5.py 的 OAuth2 authorize 端点逻辑合回本地 src/backend:
- 移除对非企微 UA 的硬拒(_require_wework_ua),改为 UA 检测分流
- 生产环境 + 外部浏览器返回 wwopen/sso/qrConnect 扫码登录 URL
- 企微内 / 非生产环境仍走静默授权(snsapi_base)
- 闭环「生产代码未入版本库」治理缺口(选项B部署时为保全扫码登录能力保留)

Co-Authored-By: SeniorDeveloper <expert>
2026-08-08 22:48:01 +08:00
Simon b80ebf1d7c feat(agent): 工具栏纯图标化 + AI回复模式选项加对应图标
- 移除 InputBox/ReplyBox/AiReplyModeSwitch 工具栏内 .tb-tip 文字气泡,按钮收敛为固定正方形,hover 提示保留 title 原生属性

- AiReplyModeSwitch popover 每个模式项前加对应图标(👤/👥/⏸️),ai-reply-mode.ts 的 AiReplyModeOption 新增 icon 字段

- 纯前端改动,未触碰后端与开关逻辑
2026-08-08 21:59:57 +08:00
Simon bdc5a3be50 fix(src): 从版本库移除 node_modules_old 依赖缓存污染
此前提交误将 src/frontend-h5/node_modules_old(11071 个依赖缓存文件)纳入版本控制。
本次基于已净化的索引生成新树, 彻底剔除该污染:
- .gitignore 新增 **/node_modules_*/ 排除规则, 防止再次误入
- .gitignore 根 data/ 锚定为 /data/, 避免误伤 src/.../data/ 真实源码
- 补入被误伤源码: seed_quiz.py / seed_rbac.py / qrData.ts
2026-08-08 19:07:33 +08:00
Simon 35c5580c3d feat(src): 将活跃前端/后端源码纳入版本控制
此前 src/ 整个目录未纳入版本库,Gitea 远端仅含 2 个文件,
活跃前端源码处于裸奔状态(本地丢失即无法恢复)。

本次提交:
- 将 src/(frontend-h5 / frontend-agent / frontend-admin /
  frontend-terminal / backend 源码)完整纳入版本控制(12112 文件)
- 同步补充 .gitignore 规则,排除构建产物与运行期数据:
  src/backend/uploads/、src/frontend-*/dist*/

node_modules / dist / venv / __pycache__ / *.zip 等已由既有规则忽略。
2026-08-08 18:55:59 +08:00
Simon 6c60fb81db feat(h5/chat): InputBar v2.0 服务蓝扁平服务舱重铸
按 PRD-REQ-通用-001-前端设计系统 v1.2 将 H5 输入栏主题由企微绿迁至
服务蓝 #1769E0(员工端新角色主题),并把工具栏从「水晶玻璃主导」
改为「扁平蓝色服务舱主导 + 玻璃增强可降级」。

主要改动:
- 色板迁移:文件/语音/群聊图标渐变、轨道渐变、坐席描边、在线徽标
  全部由紫粉/主绿改为服务蓝 #1769E0 + 青蓝 #0E9FBA(AI 能力语义色)
- 工具栏三态实现:
  · 默认 实色 #E7F0FF 浅蓝 + #1769E0 实色描边(稳定对比度、低性能成本)
  · 增强 @supports (backdrop-filter) 内启用蓝色水晶玻璃 blur(20px) saturate(160%)
  · 降级 @supports not (backdrop-filter) 实色回退,布局与对比度不变
- 装饰性外阴影收敛:3 层 feDropShadow → 1 层 --shadow-sm(PRD §4.1.3 约束 ≤2 层)
- 坐席按钮:移除紫粉渐变 ::before 描边,改 2px 服务蓝实色边框
- 在线徽标:#10B981 → 语义成功绿 #15803D(PRD §4.1.6 浅色主题成功色)
- glass-btn hover:半透明白 → #E7F0FF 主题浅背景 + #1769E0 边框(PRD §4.2.2)
- Token 三层架构落地:基础色板 → 角色主题 → 语义用途,组件只消费语义层
- v20260807f:去除工具栏容器药丸底色,保留拱形 SVG 玻璃与按钮

行为契约不变:5 按钮布局 + handleCallAgentClick + 6 态徽标。

变更规模:166 insertions(+), 149 deletions(-)
2026-08-08 12:54:36 +08:00
Simon ad8fd18d85 feat(chat): 工具栏统一设计 v1.9 落地 — 圆润拱形 + 5 按钮 + 三区无边框融合
[REQ-会话-001] 员工端会话窗口输入区工具栏视觉重构

改动概览:
- 工具栏容器:.glass-toolbar(玻璃胶囊)→ .gem-toolbar(拱形轨道)
- 按钮顺序:emoji / 文件 / 坐席(居中 60px) / 语音 / 群聊(5 按钮)
- 坐席按钮:44px → 60px(较 40px 工具图标大 50%),新增 .agent-btn.gem 修饰符
- 三区融合:消息区 / 工具栏 / 输入区融为连续浅色表面(input-bar 容器透明)
- 拱形轨道 SVG:viewBox 0 0 312 84,宽穹顶 x 84..216,顶点 (156, 4) 圆肩水平切线
- 可访问性:aria-label / title / focus-visible 蓝环 / 装饰 SVG aria-hidden
- 响应式 ≤480px fallback:隐藏拱形 SVG、改胶囊(坐席缩至 52px)
- 深色模式骨架:prefers-color-scheme: dark 颜色变量预留

测试:
- InputBar.test.ts 保留 v1.3 历史契约,新增 v1.9 专项测试套(共 91/91 通过)
- 覆盖 5 按钮顺序 / 坐席 60px / SVG 路径关键控制点 / 三区融合 / 键盘可达性 / 响应式 fallback

验收:
- vitest: 91/91 通过
- vite build: 528 modules transformed, build OK
- 6 态坐席入口契约不变(callAgent/cancelQueue/endConversation/reopenConversation)
- 群聊按钮:toast 占位(store 暂无 groupChat action),后续接入时替换 handleGroupChat

ref: 原型-REQ-会话-001-工具栏统一设计v1.9-员工端落地版.html
ref: 交付-REQ-会话-001-工具栏统一设计v1.9-开发交付清单.md
2026-08-06 00:12:45 +08:00