feat: 完成Tab①任务导入列表
实现 CollectTab 与 TaskTableModel,Tab① 接入导入 Excel 按钮、QTableView 任务列表和未匹配别名略过标记。 新增 GUI 测试覆盖 Tab① 接入、任务展示、未匹配标记和导入刷新;同步任务状态、API 合约、当前状态与 progress。 加入标准空模板 shopee待处理任务模板.xlsx,并更新 ignore/文档规则:模板可提交,运营填写后的 Excel 业务文件默认忽略。
This commit is contained in:
+13
-4
@@ -95,8 +95,8 @@ class ExcelError(RuntimeError): ...
|
||||
OPENPYXL_IMPORT_ERROR: Exception | None
|
||||
|
||||
import_tasks(file_paths, path=None, note=None, write_db=True) -> dict
|
||||
# file_paths 可传单个路径或多个路径。
|
||||
# 只解析【输入列】:账号名(可选)、别名、商品id;并记录
|
||||
# file_paths 可传单个路径或多个路径;标准空模板为根目录 shopee待处理任务模板.xlsx。
|
||||
# 只解析【输入列】:账号名(可选)、别名、商品id;推荐表头固定为 账号名 | 别名 | 商品id,并记录
|
||||
# source_file/source_file_abs/source_sheet/source_row/row_key。
|
||||
# 默认 write_db=True:有有效行时创建 batch 并写入 tasks。
|
||||
# -> {
|
||||
@@ -124,7 +124,7 @@ export_copy(batch_id, out_dir_or_path, path=None) -> dict
|
||||
# T-201 仅保证函数存在;实际回写/另存实现留给 T-204/T-403。
|
||||
```
|
||||
|
||||
列模板见 [架构 5.3](04-architecture.md);别名以“别名”列为权威。
|
||||
列模板见 [架构 5.3](04-architecture.md);别名以“别名”列为权威,必须与 ④ 账号管理中的账号别名一致。`shopee待处理任务模板.xlsx` 是可提交的标准空模板;运营填写后的 Excel 副本属于业务数据,不提交。
|
||||
|
||||
## config 模块(`app/config.py`,已建)
|
||||
|
||||
@@ -271,13 +271,15 @@ render_prompt(template_text, task) -> str
|
||||
# GUI 入口
|
||||
main() -> int # 创建 QApplication + MainWindow
|
||||
class MainWindow(QMainWindow) # QTabWidget: ①②③④⑤;支持注入 db_path/config 便于测试
|
||||
class CollectTab(QWidget) # ① 导入采集:导入 Excel + QTableView 任务列表 + 未匹配略过标记
|
||||
class TaskTableModel(QAbstractTableModel) # 任务表格模型:账号/别名/商品ID/阶段;未匹配别名显示“略过”
|
||||
class AccountsTab(QWidget) # ④ 账号管理:表格 + 增删改 + 启动登录 + 检测登录 + 快捷方式
|
||||
class AccountDialog(QDialog) # 账号编辑弹窗;密码 QLineEdit.Password
|
||||
TAB_TITLES: list[str] # 固定 Tab 顺序
|
||||
TAB_STYLE: str # 顶层 Tab 栏防误点样式:最小宽度/padding/间距/当前态
|
||||
```
|
||||
|
||||
`MainWindow` 已实现五 Tab 与 ④ 账号管理;①②③⑤ 仍为空壳,业务控件按后续 Tab 任务逐步填充。缺 PySide6 时 `main()` 返回 1 并输出明确提示。
|
||||
`MainWindow` 已实现五 Tab、① 导入采集任务列表与 ④ 账号管理;②③⑤ 仍为空壳,业务控件按后续 Tab 任务逐步填充。缺 PySide6 时 `main()` 返回 1 并输出明确提示。
|
||||
|
||||
主 Tab 栏必须在 `MainWindow` 初始化时应用 `TAB_STYLE`:5 个 Tab 不使用 Qt 默认紧凑宽度,需保证点击区域稳定、间距清晰、当前 Tab 高亮明显。该样式属于全局导航基础,不归后续业务 Tab 任务重复实现。
|
||||
|
||||
@@ -287,6 +289,13 @@ TAB_STYLE: str # 顶层 Tab 栏防误点样式:
|
||||
- 弹窗字段:账号名、别名、地区、调试端口、密码、备注、slug、数据目录;密码框使用打码显示。
|
||||
- 「启动登录」只启动 Chrome,人工登录;「检测登录」用 worker 跑 `accounts.detect_login()` 并刷新状态列;「快捷方式」调用 `accounts.create_shortcut()` 生成默认桌面 `.lnk`。
|
||||
|
||||
① 导入采集当前要点(T-202):
|
||||
|
||||
- 「导入 Excel...」按钮调用 `excel.import_tasks(file_paths, path=db_path)`,导入成功后刷新当前批次任务。
|
||||
- 任务列表使用 `QTableView + TaskTableModel`,列为:账号、别名、商品ID、阶段。
|
||||
- 账号列优先显示匹配到的 `accounts.account_name`;未匹配账号时保留 Excel 输入账号名。
|
||||
- 别名未匹配 `accounts.alias` 时不立即写库为 skipped,只在表格阶段列显示“略过”,真正跳过入库留给采集执行阶段。
|
||||
|
||||
## workers 模块(`app/workers.py`,已建,PySide6)
|
||||
|
||||
```python
|
||||
|
||||
Reference in New Issue
Block a user