feat(collect): show and filter product status
This commit is contained in:
+19
-1
@@ -114,6 +114,10 @@ class CollectTab(QWidget):
|
||||
self.status_filter.setObjectName("collectStatusFilter")
|
||||
for label, value in self.STATUS_FILTERS:
|
||||
self.status_filter.addItem(label, value)
|
||||
self.product_status_filter = QComboBox()
|
||||
self.product_status_filter.setObjectName("collectProductStatusFilter")
|
||||
for label, value in product_status.PRODUCT_STATUS_FILTER_ITEMS:
|
||||
self.product_status_filter.addItem(label, value)
|
||||
self.delete_batch_button = QPushButton("删除批次")
|
||||
self.delete_batch_button.setObjectName("deleteBatchButton")
|
||||
self.delete_batch_button.setStyleSheet(_danger_outline_button_style("deleteBatchButton"))
|
||||
@@ -134,7 +138,9 @@ class CollectTab(QWidget):
|
||||
filter_layout.addWidget(self.shop_filter, 1)
|
||||
filter_layout.addWidget(QLabel("商品ID"))
|
||||
filter_layout.addWidget(self.item_filter, 1)
|
||||
filter_layout.addWidget(QLabel("状态"))
|
||||
filter_layout.addWidget(QLabel("商品状态"))
|
||||
filter_layout.addWidget(self.product_status_filter, 1)
|
||||
filter_layout.addWidget(QLabel("处理状态"))
|
||||
filter_layout.addWidget(self.status_filter, 1)
|
||||
filter_layout.addWidget(self.delete_batch_button)
|
||||
|
||||
@@ -173,6 +179,8 @@ class CollectTab(QWidget):
|
||||
self.table.setSelectionMode(QAbstractItemView.SingleSelection)
|
||||
self.table.setEditTriggers(QAbstractItemView.NoEditTriggers)
|
||||
self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
|
||||
for column in (3, 4):
|
||||
self.table.horizontalHeader().setSectionResizeMode(column, QHeaderView.ResizeToContents)
|
||||
self.table.verticalHeader().setVisible(False)
|
||||
|
||||
self.run_log_view = QPlainTextEdit()
|
||||
@@ -208,6 +216,7 @@ class CollectTab(QWidget):
|
||||
self.batch_filter.currentIndexChanged.connect(self.refresh_tasks)
|
||||
self.shop_filter.currentIndexChanged.connect(self.refresh_tasks)
|
||||
self.item_filter.textChanged.connect(self.refresh_tasks)
|
||||
self.product_status_filter.currentIndexChanged.connect(self.refresh_tasks)
|
||||
self.status_filter.currentIndexChanged.connect(self.refresh_tasks)
|
||||
self.delete_batch_button.clicked.connect(self.delete_current_batch)
|
||||
self.collect_button.clicked.connect(self.collect_old_data)
|
||||
@@ -556,6 +565,7 @@ class CollectTab(QWidget):
|
||||
selected_batch = self.batch_filter.currentData()
|
||||
selected_shop = self.shop_filter.currentData()
|
||||
selected_status = self.status_filter.currentData() or "all"
|
||||
selected_product_status = self.product_status_filter.currentData() or "all"
|
||||
item_query = self.item_filter.text().strip()
|
||||
if self.current_batch_id and self.batch_filter.findData(self.current_batch_id) < 0:
|
||||
selected_batch = self.current_batch_id
|
||||
@@ -570,6 +580,7 @@ class CollectTab(QWidget):
|
||||
task for task in task_rows
|
||||
if self._matches_shop(task, selected_shop)
|
||||
and self._matches_item(task, item_query)
|
||||
and self._matches_product_status(task, selected_product_status)
|
||||
and self._matches_status(task, selected_status, account_rows)
|
||||
]
|
||||
except Exception as exc:
|
||||
@@ -638,6 +649,11 @@ class CollectTab(QWidget):
|
||||
return True
|
||||
return item_query in str(getattr(task, "item_id", ""))
|
||||
|
||||
def _matches_product_status(self, task, selected_product_status):
|
||||
if selected_product_status in (None, "all"):
|
||||
return True
|
||||
return product_status.raw_status(getattr(task, "product_status", None)) == selected_product_status
|
||||
|
||||
def _matches_status(self, task, selected_status, account_rows):
|
||||
if selected_status in (None, "all"):
|
||||
return True
|
||||
@@ -837,6 +853,7 @@ class CollectTab(QWidget):
|
||||
self.batch_filter.setEnabled(not running)
|
||||
self.shop_filter.setEnabled(not running)
|
||||
self.item_filter.setEnabled(not running)
|
||||
self.product_status_filter.setEnabled(not running)
|
||||
self.status_filter.setEnabled(not running)
|
||||
self._update_delete_batch_button()
|
||||
|
||||
@@ -848,6 +865,7 @@ class CollectTab(QWidget):
|
||||
self.batch_filter.setEnabled(not running)
|
||||
self.shop_filter.setEnabled(not running)
|
||||
self.item_filter.setEnabled(not running)
|
||||
self.product_status_filter.setEnabled(not running)
|
||||
self.status_filter.setEnabled(not running)
|
||||
self._update_delete_batch_button()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user