feat: 任务列表显示店铺名和执行用时 (#136)

This commit is contained in:
chengma
2026-08-11 11:17:44 +08:00
parent 6d30115c7e
commit e354dddad6
10 changed files with 163 additions and 28 deletions
+27 -12
View File
@@ -67,12 +67,15 @@ class TaskRow:
task_type: str
goods_id: str = ""
title: str = ""
shop_name: str = ""
color: str = ""
size: str = ""
price_cents: Optional[int] = None
price_is_starting: bool = False
quantity: Optional[int] = None
status: str = "待执行"
latest_run_status: str = ""
duration_seconds: Optional[int] = None
updated_at: str = ""
@@ -86,11 +89,13 @@ class TaskTableModel(QAbstractTableModel):
"选择",
"任务类型",
"商品标题",
"店铺名",
"颜色",
"尺码",
"价格",
"数量",
"状态",
"用时",
"更新时间",
)
@@ -133,9 +138,9 @@ class TaskTableModel(QAbstractTableModel):
return self._display_value(task, column)
if role == Qt.TextAlignmentRole:
if column in (0, 1, 7):
if column in (0, 1, 8, 9):
return Qt.AlignCenter
if column in (5, 6):
if column in (6, 7):
return Qt.AlignRight | Qt.AlignVCenter
return Qt.AlignLeft | Qt.AlignVCenter
@@ -367,19 +372,27 @@ class TaskTableModel(QAbstractTableModel):
if column == 2:
return task.title or "尚未获取标题"
if column == 3:
return task.color or "—"
return task.shop_name or "—"
if column == 4:
return task.size or "—"
return task.color or "—"
if column == 5:
return task.size or "—"
if column == 6:
if task.price_cents is None:
return "—"
suffix = " 起" if task.price_is_starting else ""
return f"¥{task.price_cents / 100:.2f}{suffix}"
if column == 6:
return "—" if task.quantity is None else str(task.quantity)
if column == 7:
return task.status
return "—" if task.quantity is None else str(task.quantity)
if column == 8:
return task.status
if column == 9:
if task.latest_run_status == "running":
return "进行中"
if task.duration_seconds is None:
return "—"
return f"{max(0, task.duration_seconds)} 秒"
if column == 10:
return task.updated_at or "—"
return ""
@@ -567,11 +580,13 @@ class PDDTaskPage(QWidget):
self.taskTable.setColumnWidth(0, 64)
self.taskTable.setColumnWidth(1, 82)
self.taskTable.setColumnWidth(3, 108)
self.taskTable.setColumnWidth(4, 82)
self.taskTable.setColumnWidth(5, 96)
self.taskTable.setColumnWidth(6, 70)
self.taskTable.setColumnWidth(7, 116)
self.taskTable.setColumnWidth(8, 156)
self.taskTable.setColumnWidth(4, 108)
self.taskTable.setColumnWidth(5, 82)
self.taskTable.setColumnWidth(6, 96)
self.taskTable.setColumnWidth(7, 70)
self.taskTable.setColumnWidth(8, 116)
self.taskTable.setColumnWidth(9, 82)
self.taskTable.setColumnWidth(10, 156)
self.taskTable.viewport().installEventFilter(self)
self.emptyStateCard = CardWidget(self)