27 lines
1.5 KiB
Python
27 lines
1.5 KiB
Python
"""PDD 任务页的界面结构。
|
||||
|
|
|
|||
|
|
这一页显示**本机已领取的全部任务**(正在做的和早已做完的),
|
|||
|
|
提供搜索、筛选、详情,以及启动/停止自动获取。
|
|||
|
|
完整规范见 `docs/client/05-ui-specification.md`。
|
|||
|
|
|
|||
|
|
改动本文件前必读 `client/AGENTS.md`。以下几条最容易踩:
|
|||
|
|
|
|||
|
|
- 本文件只负责显示和把用户操作转发出去,**不写业务逻辑**,
|
|||
|
|
不发 Admin 请求、不查数据库、不碰手机。这些放 `pdd_ui_event.py`。
|
|||
|
|
- 任务表格必须用**模型/视图**(`QAbstractTableModel` + `TableView`),
|
|||
|
|
并用 `remote_task_id` 作为任务身份。**不要用表格行号**——
|
|||
|
|
行号会随排序和筛选变化,拿它当身份必出错。
|
|||
|
|
- 不要为每个单元格创建常驻 `QWidget`(几万行会把内存吃光)。
|
|||
|
|
“详情”那一列用委托绘制。
|
|||
|
|
- 不要把完整的 `pdd_data` 放进表格模型,那是详情数据,
|
|||
|
|
查看详情时再从数据库读。
|
|||
|
|
- 表格数据只增不减(已完成任务永久保留),所以增量加载是必须的,
|
|||
|
|
照抄 `docs/client/05-ui-specification.md` §5.3 的模板。
|
|||
|
|
- 空状态要分情况:从没领过任务、筛选无结果、加载失败,文案不能一样。
|
|||
|
|
- 图标用 `FluentIcon`,**不得用表情符号**。
|
|||
|
|
- 页面 `objectName` 固定为 `pddTaskPage`,不要改。
|
|||
|
|
|
|||
|
|
注意:本页唯一会产生外部后果(真的去操作手机、可能下单)的命令是
|
|||
|
|
“开始自动获取”。其余操作全部只读本地数据库。
|
|||
|
|
"""
|