11 KiB
11 KiB
交互清单
交互总表
| ID | 用户故事 | 页面/组件 | 触发 | 预期结果 | 优先级 | 状态 |
|---|---|---|---|---|---|---|
| IX-001 | US-007 | 管理 Web 登录 | 提交账号密码 | 建立管理会话或显示通用错误 | P0 | 已定 |
| IX-002 | US-001 | 新建任务表单 | 填写并提交 | 创建 PENDING 任务 |
P0 | 已定 |
| IX-003 | US-002 | 任务列表/详情 | 打开、刷新、取消 | 查看最新状态、证据和允许动作 | P0 | 已定 |
| IX-004 | US-007 | App 登录/设备绑定 | 登录或会话恢复 | 建立人员+设备身份 | P0 | 已定 |
| IX-005 | US-003 | App 任务页 | 点击“获取任务” | 就绪检查后领取一条任务或显示原因 | P0 | 已定 |
| IX-006 | US-004 | App 执行页 | 确认开始/自动步骤 | 显示步骤并有界执行搜索与候选判断 | P0 | 已定 |
| IX-007 | US-005 | App 候选确认 | 接受/拒绝/转人工 | 停止自动化并回传人员结论 | P0 | 已定 |
| IX-008 | US-006 | App/管理端错误状态 | 自动失败、取消、重试上传 | 显示结构化原因和恢复动作 | P0 | 已定 |
IX-001 管理 Web 登录
- 页面:
/login - 角色:采购管理员
- 前置条件:种子管理账号已建立。
- 服务依赖:管理会话创建。
- 关联原型:管理登录(T-202)。
正常路径
- 用户输入账号和密码并提交。
- 提交期间按钮禁用并显示进度,密码不回显。
- 成功后进入原目标页或
/tasks。
状态与异常
- 默认:账号框自动聚焦;密码可切换显示但默认隐藏。
- 校验:空字段在字段附近提示;服务端仍执行完整校验。
- 失败:统一显示“账号或密码不正确”,不暴露账号是否存在。
- 网络错误:保留账号,清空密码,允许重试。
- 会话过期:跳转登录并保留安全的返回路径。
可访问性
- 标签与输入框显式关联;错误摘要可被读屏感知。
- Enter 提交;焦点移到首个错误字段。
IX-002 创建采购任务
- 页面:
/tasks/new - 角色:采购管理员
- 服务依赖:
POST /api/v1/assets、POST /api/v1/tasks - 关联原型:新建任务(T-202)。
正常路径
- 输入标题、SKU、描述、数量、可选商品总预算并选择一张图片。
- 浏览器展示图片预览、文件名和大小。
- 提交期间锁定重复提交并显示“正在创建”。
- 成功后进入任务详情,显示编号和
PENDING。
状态与异常
- 标题和 SKU 必填,描述可空;数量默认 1,只接受正整数。
- 商品总预算为空表示不设置上限;填写时表示当前任务全部数量的商品金额上限。
- 图片类型、大小或解码失败时在图片控件旁提示。
- 上传成功但创建失败时重用已上传 asset,不重复上传。
- 网络状态不确定时使用幂等键查询结果,不直接再创建。
- 离开含未提交内容的表单时提示确认。
可访问性与小屏
- 字段错误使用文本说明,不只使用颜色。
- 图片选择有可访问名称;预览提供来源文件名。
- 小屏下表单单列,提交按钮不遮挡最后一个字段。
IX-003 查看任务与证据
正常路径
- 列表按最近创建时间展示编号、标题、状态、设备和更新时间。
- 进入详情查看原始输入、状态时间线、AI 派生结果、候选和证据。
- 仅
PENDING/允许状态展示取消命令,取消前二次确认。
状态与异常
- 加载:保留页面框架和筛选条件,显示明确进度。
- 空状态:说明还没有任务并提供“新建任务”入口。
- 失败:保留上一次内容但标明可能过期,提供重试。
- 权限不足/不存在:分别处理,但都不泄露任务内容。
- 截图加载失败:显示占位和重试,不影响其他证据查看。
SUCCEEDED详情必须醒目展示“验证完成,未提交订单”。
可访问性
- 状态同时使用文字,不只用颜色。
- 时间线使用有序列表语义;图片有描述性替代文本。
- 列表在窄屏转换为可扫描行,不使用水平溢出遮挡操作。
IX-004 App 登录与设备绑定
正常路径
- 用户输入采购账号并确认后端已预授权的当前设备身份。
- 成功后令牌存入 Android 安全存储,进入任务页。
- App 上报版本和就绪能力,不上传敏感设备内容。
状态与异常
- 账号或设备被禁用:解释联系管理员,不反复重试。
- 未预授权、token 错误或已绑定其他采购员的设备不能在 App 中“重新登记”,联系 管理员重新预置。
- 网络错误:保留非敏感账号字段,密码清空。
- 会话恢复失败:退出到登录页;活跃任务先查询服务端再决定状态。
- 退出登录:有运行任务时禁止直接退出,先安全停止。T-204 只实现服务端 token 签发和验证;本地清除与服务端撤销接入属于 T-206。
可访问性
- 支持系统字体缩放;输入与错误不重叠。
- 软键盘不遮挡提交按钮,返回键不会静默丢失运行状态。
IX-005 手动获取任务
正常路径
- 页面显示无障碍、拼多多、网络和当前任务的就绪状态。
- 全部就绪时“获取任务”可用;点击后立即禁用防重复。
- 成功后展示任务预览和“开始采购”,此时状态为
CLAIMED。
状态与异常
- 无任务:显示安静的空状态和手动刷新,不循环弹错。
- 权限缺失:提供打开对应系统设置的命令。
- 已有任务:显示“继续任务”,不再领取。
- 请求超时:保留请求前已安全保存的 claim token/幂等 key,先用同一请求重放并通过 heartbeat 对比服务端活跃任务,再允许生成新请求。
- 租约到期:预览页提示任务已释放,返回任务页。
可访问性
- 就绪状态使用图标加文字;系统设置命令有明确名称。
- 主要控件满足 Android 最小触控区域,加载不改变控件尺寸。
IX-006 执行采购任务
- 页面:Android“任务执行”及拼多多前台
- 角色:采购执行员
- 服务依赖:start、heartbeat、AI、event API 和 Android 自动化。
- 关联原型:任务预览、 任务执行(T-202)。
正常路径
- 用户检查原始需求并点击“开始采购”。
- App 启动前台服务,进入预检并显示当前步骤。
- 解析需求,打开拼多多,搜索并检查最多 5 个候选。
- 每一步上报事件;找到结果后进入
WAITING_CONFIRMATION。
状态与异常
- 运行中禁止第二次开始;持续通知提供“返回任务”和“停止”。
- App 切换到拼多多时,通知是回到执行页的稳定入口。
- 用户请求停止后进入“正在安全停止”,不立即在动作中间销毁状态。
- 进程重启时查询任务和 execution;无法证明可安全恢复则标记失败。
- 验证码、风控、登录、支付和未知页面立即停止,不展示“自动继续”。
- AI 超时最多按配置重试;输出无效或低置信度转人工。
- 候选商品价乘以任务数量达到总预算上限校验失败,或运费/优惠导致总价无法确认时, 不能进入接受状态。
可访问性与反馈
- 当前步骤使用文字和进度列表,不显示虚假百分比。
- 错误、暂停和等待人工使用不同语义,不只依赖颜色。
- 通知操作名称明确;动态更新通过适度的 live region/无障碍播报。
IX-007 人工确认候选
正常路径
- 展示原始需求、候选标题/价格、匹配项、缺失项和证据截图。
- 用户选择“接受候选”“拒绝候选”或“需人工处理”。
- 每种选择要求确认,必要时填写简短原因。
- 结果幂等回传,页面显示“验证完成,未提交订单”。
状态与异常
- 没有候选时只允许确认“无匹配”或“需人工处理”。
- 存在商品总价超预算、最终商品金额无法确认或关键属性未知时禁用“接受候选”并 说明原因。
- 回传超时:保留选择和原因,查询最终状态后再重试。
- 返回键不能恢复自动点击;等待确认一旦到达就是硬停止点。
- 所有结果都写入
order_submitted=false。
可访问性
- 候选信息按标题、价格、匹配和风险分组。
- 确认对话框默认焦点在取消;破坏性/拒绝动作不能与接受动作混淆。
IX-008 失败、取消和恢复
- 页面:Android“任务执行/结果”、Web 任务详情
- 角色:采购执行员、采购管理员
- 服务依赖:fail、event、asset API。
- 关联原型:管理任务详情、 App 任务执行、 App 任务结果(T-202)。
正常路径
- 系统停止动作,保存失败步骤和错误类别。
- App 显示发生了什么、是否已停止和建议下一步。
- 证据上传成功后,管理详情显示相同结论。
状态与异常
- 上传失败:本地加密/受控保留待传证据,显示“结果待同步”。
- 取消:说明不会自动恢复;服务端终态后清理前台服务。
- 可恢复设备问题:只提供“修复后重新领取/新建尝试”,不原地猜测继续。
- 安全错误
SAFETY_*不允许自动重试。 - 清理本地证据仅在服务端确认接收或超过明确保留策略后发生。
验收证据
- 每类错误至少有一个自动化或 fake 测试。
- 验证码/未知页/支付边界至少在受控环境各验证一次安全停止。
通用交互约束
- Web 和 App 的所有提交都防重复,网络超时后以服务端状态为准。
- 状态名称使用用户可理解中文,同时保留稳定机器状态码。
- 不在 UI 暴露模型密钥、设备令牌、内部堆栈或文件绝对路径。
- 字体放大、窄屏、软键盘和系统返回操作下,主要命令和错误不能被遮挡。
- P0 页面实现前按
design/README.md生成低保真原型并人工确认。