2026-10-16-mobile-ui-polish.md 7.6 KB

2026-10-16 移动端 UI 细节优化方案

目标

在不改变业务数据、路由契约和 ui-kit 底座的前提下,统一 mobile 端 11 个页面的视觉节奏与触达体验,重点处理首页、列表、详情、工作台、成果预览和底部导航。

设计决策

  • 页面背景使用 --canvas,内容面使用 --surface,搜索框、筛选栏和信息块分别保留层级,不再连续使用同一背景色。
  • 标题、区块和列表统一采用移动端间距令牌;列表优先使用轻分隔线,卡片只用于需要聚焦的任务、统计和预览内容。
  • 所有按钮、返回、下载、刷新和关闭操作保持 --touch-min 触达尺寸,并补齐 active/focus-visible 状态。
  • 二级页面继续使用统一的 app-m-back-bar;底部导航使用安全区和半透明表面,页面内容预留导航高度。
  • 只调整模板中的展示结构和组件局部样式,不改服务层、数据字段和路由行为。

影响范围

src/app/mobile/shell、src/app/mobile/components、src/app/mobile/pages 下的移动端页面样式与少量展示标记。

验收口径

  • 390px 宽视口下页面无横向溢出,底部导航不遮挡最后一项内容。
  • 搜索、筛选、列表、详情返回、下载和底部 sheet 的触达区域不小于 44px。
  • 亮色和暗色主题下文字、边界、选中态和错误态均沿用语义令牌。
  • npm run build 通过,且不产生新增 TypeScript 模板错误。

第二轮交互收敛(2026-10-16)

  • 工作台采用固定标题、搜索、摘要与告警区,数字生命卡片进入独立滚动容器;卡片压缩为移动端单列紧凑信息卡。
  • 首页存在独立品牌顶栏时,不再让问候标题参与全局 sticky,避免下拉后两层顶栏互相覆盖。
  • 全局移动 toast 统一从顶部进入,避开底部 TabBar 与安全区。
  • mobile 页面内部导航固定使用 /mobile 路径,直接打开移动 URL 时不受桌面浏览器 UA 影响。

登录页双端综合优化(2026-10-16)

  • 移动端采用「品牌说明 + 单一登录面板」:减少首屏空白,保留 Fmode、数字生命消息中枢和会话/任务/成果功能说明。
  • 桌面端保持左右分区,但收紧品牌说明层级、登录面板宽度和表单间距,让登录动作成为右侧唯一主任务。
  • 验证码与 Token 直登继续复用同一认证逻辑;按钮根据手机号、验证码和 Token 的有效状态明确启用/禁用。
  • 发送验证码只在手机号格式正确时可用,登录按钮只在当前方式的必填项完成时可用;错误、发送中、倒计时和登录中状态保留明确反馈。
  • 输入说明、错误提示和自动登录状态补充无障碍语义,所有颜色、字号、间距、圆角和阴影继续使用项目令牌。
  • 审核阶段临时开启 AUTH_REVIEW_BYPASS,允许直接访问桌面和移动页面;正式发布前关闭该开关恢复登录守卫。

任务看板与移动弹层优化(2026-10-16)

  • 任务看板采用固定页头、数字生命筛选和状态筛选,只有任务列表区域滚动;列表增加任务数量和阻塞状态的明确层级。
  • 工作台通道详情统一为底部 sheet:顶部显示对象和连接状态,主体显示连接信息,打开时隐藏底部 TabBar,避免导航与弹层重叠。
  • 会话成果弹层统一标题区、当前项目区、成果列表区和底部动作区;保留预览、下载和查看全部成果逻辑。
  • 三类弹层继续使用语义颜色、移动触达尺寸和安全区,不修改 ui-kit 底座。

第三轮交互收敛(2026-10-16)

  • 工作台刷新按钮补齐移动端按压缩放、刷新中主色态、旋转反馈和减少动效适配;刷新过程继续通过顶部全局 Toast 告知状态。
  • 退出登录入口恢复为整行危险主按钮,确认弹层保持居中二次确认、遮罩关闭和安全区留白,避免纯文字危险按钮在页面底部被忽略。
  • 通讯录采用与会话页一致的固定标题、搜索、筛选结构,只有联系人列表区域滚动;联系人展开动画保留在列表内部,不影响顶部操作区。

会话成果与任务详情路由(2026-10-16)

  • 桌面功能基准:任务看板对齐 src/app/desktop/pages/tasks/tasks.ts,保留七态筛选、任务更新时间排序、状态/阻塞信息、任务说明、运行流水、附件、历史评论和进入会话;一期只读。会话成果对齐 src/app/desktop/pages/chat/chat.ts 右侧成果栏及预览,保留当前项目、成果列表、预览/下载和查看全部。
  • 移动任务列表:标题、只读标识、数字生命选择、状态筛选、任务数量固定在顶部;仅列表内部滚动。保持卡片/行的状态信息、负责人、更新时间和阻塞提示。
  • 移动任务详情:任务从内联 signal 切换改为 /mobile/tasks/:id?agent=:agentId 独立路由。返回操作走路由历史,直接打开 URL 时以 agent 查询参数加载所属任务;详情固定返回栏,其余详情信息在唯一内容区滚动。布局用单列,信息顺序对应桌面详情,不新增写操作。
  • 移动成果弹层:采用视口内底部 Sheet,标题区与“查看全部成果”操作固定,当前项目与成果卡列表置于唯一滚动区;预览/下载保留为独立触控入口,适配安全区、窄宽、明暗主题和减少动效。
  • 文件范围:修改 src/app/mobile/pages/tasks/tasks.ts、src/app/mobile/pages/tasks/task-detail.ts、src/app/mobile/mobile.routes.ts、src/app/mobile/pages/chat/chat.ts;任务仍消费既有 TasksService,不修改数据模型和后端契约。
  • 验收:390×844 下任务标题与筛选不随列表滚动;列表点击和直达详情 URL 均显示同一任务;返回恢复列表路由;任务详情字段完整且只有内容区滚动;成果 Sheet 窄屏不横溢出,顶部/底部固定、成果列表可独立滚动;构建、UI 静态断言和现有测试通过。

跨端收尾优化(2026-10-16)

  • 移动工作台手动刷新时,卡片区切换为语义骨架屏;刷新按钮保留旋转反馈,完成或失败通过顶部全局 Toast 告知。
  • 移动通讯录的 AI 数字生命与同事区域分别使用固定可视高度和内部滚动,顶部标题、搜索和分类筛选保持固定。
  • 移动与桌面个人页的退出动作改用业务层危险色按钮,文字使用 --on-danger,保证深色和浅色主题均有稳定对比;桌面个人页补充账户分区、入场动效和焦点/按压状态。
  • 桌面侧栏折叠态的按钮改为品牌图标右上角悬浮定位,保持图标中心不被挤压。
  • 移动外壳监听窗口宽度;宽度达到 768px 时显示桌面端切换提示,用户确认后写入端偏好并跳转桌面入口。桌面窄窗仍保留已有移动端切换提示。

任务详情与独立任务看板收敛(2026-10-16)

  • 任务看板与任务详情移出 MobileShell 子路由,作为全屏移动页面加载,避免底部 TabBar 与任务操作区竞争空间;两页统一使用固定返回栏,任务看板默认返回工作台。
  • 任务详情保持唯一纵向滚动主体;说明正文使用可换行的长文本块,不设置嵌套滚动,避免移动端滚动手势冲突。
  • 任务详情的说明、运行流水、附件和历史评论使用独立表面、边界和语义图标区分;附件在存在 url 时提供符合触达尺寸的下载入口,无地址时明确显示不可下载状态。
  • 演示任务 T-108 增加长说明、多个评论、运行记录和两个可下载的 data URL 附件,用于验证窄屏长内容、列表分隔和下载交互。