feat(prototype): redesign desktop procurement workspace
This commit is contained in:
+59
-2
@@ -87,8 +87,8 @@ desk 端将使用 PySide6 / Qt Widgets,但当前没有可确认的桌面应用
|
||||
危险、黄色不确定、绿色就绪。图标使用内联 SVG 或文字,不用 emoji。
|
||||
- 导航只保留两个固定页签;同一任务区只有一个主动作。开始 / 停止轮询的位置稳定,
|
||||
禁用时在控件附近说明原因。
|
||||
- 适配 compact / medium / wide:窄宽度改为单列,宽屏把当前任务与事件日志并排;不依赖
|
||||
hover 才能看到关键信息。
|
||||
- 适配 compact / medium / wide:窄宽度按当前任务、滚动日志、执行记录改为单列,宽屏显示
|
||||
左侧上下两块与右侧跨行记录表格;不依赖 hover 才能看到关键信息。
|
||||
- 支持键盘遍历、可见焦点、`aria-live`、高对比媒体查询、深浅色 token 与
|
||||
`prefers-reduced-motion`。原型可以提供主题 / 状态切换,但必须标注为演示工具。
|
||||
- 每个文件 CSS / JS 全内联、可复位假数据、零网络请求;不得调用 ADB、shell、API 或打开 App。
|
||||
@@ -140,6 +140,63 @@ desk 端将使用 PySide6 / Qt Widgets,但当前没有可确认的桌面应用
|
||||
|
||||
## 执行记录
|
||||
|
||||
### 2026-08-03 · 第二轮采购工具工作区实现
|
||||
|
||||
- 任务继续保持 `DOING`:第二轮自动验证已完成,但 `needs_human_review: true`,仍需人工确认
|
||||
三块布局、图片证据密度、执行记录表格和详情弹窗。
|
||||
- 两页应用壳统一为“采购工具”,固定页签改为“采购执行 / 配置”;HTML 文件名保持不变,避免
|
||||
无业务价值的路径迁移。采购执行仍为默认入口。
|
||||
- 删除底部轮询控制整行,把开始 / 停止轮询固定到顶部状态区右侧。按钮只控制会话:真机步骤、
|
||||
围栏申请、围栏后和结果不明确时按安全规则禁用;核查说明、诊断导出和前往配置改放状态
|
||||
Banner 的对象级动作区,不再借用会话按钮。
|
||||
- 宽屏工作区为左约 65% / 右约 35%:左上当前任务使用文字约 2/3、预览约 1/3;默认空态,
|
||||
有任务时只显示带来源和采集时间的内联假证据。左下改为滚动日志,并把倒计时、连续失败和
|
||||
本次完成压缩到标题区。右侧执行记录跨两块高度。
|
||||
- 执行记录以稳定记录 ID 管理当前行,按 ISO 采集时间倒序;可见列只有标题和状态,任务编号
|
||||
与时间放在标题次行。单击只选择,双击、Enter、可见按钮和右键菜单共用同一打开详情命令。
|
||||
- 详情 `dialog` 上部左侧显示原始文字和时间线、右侧显示图片证据,下部显示结构化采购结果;
|
||||
缺图时保持明确空态。关闭按钮、Esc 和窗口关闭后焦点回到原表格行。任何记录都没有提交订单、
|
||||
重试提交或付款控件。
|
||||
- `windows-ui-ux` 使本轮明确了静态 Tab 身份、会话 / 对象命令分区、当前行与焦点分离、指针与
|
||||
键盘等价入口、模态焦点恢复、紧凑宽度重排以及 HTML 不能替代 Qt 原生验收的边界。
|
||||
|
||||
**第二轮 HTML → PySide6 / Qt Widgets 交接增量**
|
||||
|
||||
| 原型项 | 核心交互契约 | 推荐 Qt Widgets 映射 | 状态 / 线程要求 |
|
||||
| --- | --- | --- | --- |
|
||||
| “采购执行 / 配置”固定页签 | 稳定 page id、默认采购执行、切换保留状态 | 不可关闭 `QTabWidget`;页面对象常驻或按明确策略缓存 | `currentChanged` 只切页面,不重置模型或运行任务 |
|
||||
| 顶部轮询控制 | 只控制普通轮询会话,位置稳定;禁用就近说明原因 | 共享 `QAction` + `QPushButton` + 状态 `QLabel` | enabled / label / reason 由会话状态机单向派生 |
|
||||
| 当前任务与商品预览 | 文字 2/3、图片 1/3;无可信图片保持空态,有图标来源与时间 | `QGridLayout` / `QSplitter` + 只读字段 + `QLabel` / `QPixmap` | 图片下载、解码和裁剪离开 GUI 线程;结果带任务 / 请求 ID,过期回调丢弃 |
|
||||
| 滚动日志与指标 | 最新在上;日志脱敏;高频事件不阻塞 UI | `QTableView` + `QAbstractTableModel`,指标使用只读 `QLabel` | 批量 / 节流更新,模型只在 GUI 线程发通知 |
|
||||
| 执行记录表格 | 仅标题 / 状态;时间倒序;稳定 ID 保留当前行 | `QTableView` + `QAbstractTableModel` + `QSortFilterProxyModel` | `clicked` 只选中,`doubleClicked` / `activated` 共用详情 `QAction`;不依赖视图行号 |
|
||||
| 记录详情 | 原始文字 / 图片 / 采购结果;Esc 与关闭统一;恢复原行焦点 | 有所有者的 `QDialog` + 布局容器 + `QDialogButtonBox` | 打开时传记录 ID 快照;关闭后按代理模型映射回稳定 ID,记录已删除则聚焦表格 |
|
||||
|
||||
PySide6 / Qt 的精确版本仍需 T-002 初始化后核对;这里不承诺特定材质、主题 API 或原生表格
|
||||
性能,也不把 HTML 的焦点 / 对话框行为当作 Narrator、UI Automation 或 DPI 验收证据。
|
||||
|
||||
**第二轮已运行验证**
|
||||
|
||||
- Node 内联静态检查:两个 `desk-*.html` 的 doctype、viewport、原型横幅、减少动画、唯一 id、
|
||||
内联脚本语法、相对页签链接和零外部资源均通过;执行记录表头严格为“标题 / 状态”,页面无
|
||||
`poll-bar`,按钮危险面未发现提交订单、重试提交、继续付款、免密支付或先用后付。
|
||||
- Playwright 逐项切换采购执行页 18 个状态:轮询命令保持会话语义;真机、围栏和不明确状态
|
||||
禁用原因正确;核查 / 导出 / 配置作为独立上下文动作;默认无图,有任务时显示内联假证据。
|
||||
- 表格交互:四条假记录按 13:52、12:24、10:06、09:18 倒序;双击与 Enter 打开对应记录,
|
||||
右键先选中命中行再显示查看菜单;详情三分区正确,缺图记录显示空态,Esc 关闭并恢复原行。
|
||||
- 采购执行 / 配置两页在 375 / 768 / 1024 / 1440 px 共 8 个组合无页面级水平溢出;执行详情
|
||||
在 1440 px 无内部滚动,在 375 px 单列且无水平溢出。浏览器累计 0 error / 0 warning,网络
|
||||
只有当前本地 HTML 文档。
|
||||
- `python scripts/validate_agent_context.py` 与 `git diff --check`:提交前运行并记录最终结果。
|
||||
|
||||
**未验证与待人工确认**
|
||||
|
||||
- 没有生产 PySide6、Model/View、图片采集、线程、ADB 或 web 代码,因此不证明真实图片能从
|
||||
拼多多取得,也未运行桌面端单元测试、编译或打包。
|
||||
- 待人确认:顶部状态区在常用窗口下的信息密度;当前任务 2/3 + 1/3、整体 65% + 35% 比例;
|
||||
两列执行记录是否够用;详情 940 px 宽屏尺寸及窄屏滚动;“执行记录”术语是否沿用。
|
||||
- 原生实现仍需验证 Windows 100%–200% DPI、多显示器、贴靠、浅 / 深 / 高对比、中文输入法、
|
||||
Narrator / Inspect、表格虚拟化、线程与最终打包产物。本轮没有真机验收。
|
||||
|
||||
### 2026-08-03 · 原型待人工确认
|
||||
|
||||
状态保持 `DOING`。本轮只完成 Phase 0 浏览器原型,不连接 web、ADB 或拼多多,也不把浏览器
|
||||
|
||||
Reference in New Issue
Block a user