feat: 重新执行支持当前行兜底 (#176)

This commit is contained in:
chengma
2026-08-12 10:23:27 +08:00
parent 62da4fdef4
commit bb7a5023b5
4 changed files with 97 additions and 18 deletions
+30 -15
View File
@@ -503,11 +503,11 @@ class PDDTaskPage(QWidget):
self.invertSelectionButton.setEnabled(False)
self.rerunButton = PushButton(FIF.UPDATE, "重新采集", self)
self.rerunButton.setAccessibleName("重新采集勾选的采集任务")
self.rerunButton.setAccessibleName("重新采集勾选任务或当前任务")
self.rerunButton.setEnabled(False)
self.purchaseRerunButton = PushButton(FIF.SHOPPING_CART, "重新采购", self)
self.purchaseRerunButton.setAccessibleName("重新采购勾选的采购任务")
self.purchaseRerunButton.setAccessibleName("重新采购勾选任务或当前任务")
self.purchaseRerunButton.setEnabled(False)
self.resubmitButton = PushButton(FIF.SEND, "重新上报", self)
@@ -802,16 +802,35 @@ class PDDTaskPage(QWidget):
return
if self._rerun_state != "idle":
return
task_ids = self.taskModel.checked_task_ids()
if task_ids:
self.rerunRequested.emit(task_ids)
task_ids = self._rerun_target_task_ids()
if not task_ids:
self._show_missing_rerun_target()
return
self.rerunRequested.emit(task_ids)
def _request_purchase_rerun(self) -> None:
if self._rerun_state != "idle":
return
task_ids = self.taskModel.checked_task_ids()
if task_ids:
self.purchaseRerunRequested.emit(task_ids)
task_ids = self._rerun_target_task_ids()
if not task_ids:
self._show_missing_rerun_target()
return
self.purchaseRerunRequested.emit(task_ids)
def _rerun_target_task_ids(self) -> tuple[str, ...]:
"""返回重新执行目标;勾选集优先,没有勾选时使用当前行。"""
checked_task_ids = self.taskModel.checked_task_ids()
if checked_task_ids:
return checked_task_ids
current_task_id = self.current_task_id()
return (current_task_id,) if current_task_id else ()
def _show_missing_rerun_target(self) -> None:
"""在没有勾选和当前行时给出可操作的中文提示。"""
self.statusLabel.setText("请勾选任务或单击选择一行")
def _request_resubmit(self) -> None:
if self._resubmit_running or self._remove_running:
@@ -852,19 +871,15 @@ class PDDTaskPage(QWidget):
return
self.rerunButton.setText("重新采集")
self.rerunButton.setAccessibleName("重新采集勾选的采集任务")
self.rerunButton.setAccessibleName("重新采集勾选任务或当前任务")
self.purchaseRerunButton.setText("重新采购")
idle = not self._resubmit_running and not self._remove_running
has_tasks = self.taskModel.data_row_count() > 0
self.autoFetchButton.setEnabled(idle)
self.selectAllButton.setEnabled(idle and has_tasks)
self.invertSelectionButton.setEnabled(idle and has_tasks)
self.rerunButton.setEnabled(
idle and bool(self.taskModel.checked_task_ids())
)
self.purchaseRerunButton.setEnabled(
idle and bool(self.taskModel.checked_task_ids())
)
self.rerunButton.setEnabled(idle and has_tasks)
self.purchaseRerunButton.setEnabled(idle and has_tasks)
self.resubmitButton.setEnabled(
idle and bool(self.taskModel.checked_task_ids())
)