fix: 历史记录加载方法优化

This commit is contained in:
DLmaster361
2025-04-21 19:21:27 +08:00
parent f3af6ddbbc
commit 39876832f3
9 changed files with 100 additions and 29 deletions

View File

@@ -543,7 +543,7 @@ class UserLableSettingCard(SettingCard):
text_list.append("未通过人工排查")
text_list.append(
f"今日已代理{self.qconfig.get(self.configItems["ProxyTimes"])}"
if Config.server_date()
if Config.server_date().strftime("%Y-%m-%d")
== self.qconfig.get(self.configItems["LastProxyDate"])
else "今日未进行代理"
)
@@ -553,7 +553,7 @@ class UserLableSettingCard(SettingCard):
self.qconfig.get(self.configItems["LastAnnihilationDate"]),
"%Y-%m-%d",
).isocalendar()[:2]
== datetime.strptime(Config.server_date(), "%Y-%m-%d").isocalendar()[:2]
== Config.server_date().isocalendar()[:2]
else "本周剿灭未完成"
)

View File

@@ -38,9 +38,14 @@ from qfluentwidgets import (
PushButton,
ExpandGroupSettingCard,
TextBrowser,
CardWidget,
ComboBox,
ZhDatePicker,
SubtitleLabel,
)
from PySide6.QtCore import Signal
from PySide6.QtCore import Signal, QDate
import os
from datetime import datetime
from functools import partial
from pathlib import Path
from typing import List
@@ -58,20 +63,22 @@ class History(QWidget):
content_widget = QWidget()
self.content_layout = QVBoxLayout(content_widget)
self.history_top_bar = self.HistoryTopBar(self)
self.history_top_bar.search_history.connect(self.reload_history)
scrollArea = ScrollArea()
scrollArea.setWidgetResizable(True)
scrollArea.setWidget(content_widget)
layout = QVBoxLayout()
layout.addWidget(self.history_top_bar)
layout.addWidget(scrollArea)
self.setLayout(layout)
self.history_card_list = []
self.refresh()
def refresh(self):
"""刷新脚本实例界面"""
def reload_history(self, start_date: QDate, end_date: QDate, mode: str) -> None:
"""加载历史记录界面"""
while self.content_layout.count() > 0:
item = self.content_layout.takeAt(0)
@@ -84,13 +91,61 @@ class History(QWidget):
history_dict = Config.search_history()
for date, user_list in history_dict.items():
selected_history = filter(
lambda item: datetime(
start_date.year(), start_date.month(), start_date.day()
)
<= datetime.strptime(item[0], "%Y年 %m月 %d")
<= datetime(end_date.year(), end_date.month(), end_date.day()),
history_dict.items(),
)
for date, user_list in selected_history:
self.history_card_list.append(HistoryCard(date, user_list, self))
self.content_layout.addWidget(self.history_card_list[-1])
self.content_layout.addStretch(1)
class HistoryTopBar(CardWidget):
"""历史记录顶部工具栏"""
search_history = Signal(QDate, QDate, str)
def __init__(self, parent=None, name: str = None):
super().__init__(parent)
Layout = QHBoxLayout(self)
self.lable_1 = SubtitleLabel("查询范围:")
self.start_date = ZhDatePicker()
self.start_date.setDate(QDate(2019, 5, 1))
self.lable_2 = SubtitleLabel("")
self.end_date = ZhDatePicker()
server_date = Config.server_date()
self.end_date.setDate(
QDate(server_date.year, server_date.month, server_date.day)
)
self.mode = ComboBox()
self.mode.setPlaceholderText("请选择查询模式")
self.mode.addItems(["按日期分类"])
self.button = PushButton(FluentIcon.SEARCH, "查询")
self.button.clicked.connect(
lambda: self.search_history.emit(
self.start_date.getDate(),
self.end_date.getDate(),
self.mode.currentText(),
)
)
Layout.addWidget(self.lable_1)
Layout.addWidget(self.start_date)
Layout.addWidget(self.lable_2)
Layout.addWidget(self.end_date)
Layout.addWidget(self.mode)
Layout.addStretch(1)
Layout.addWidget(self.button)
class HistoryCard(ExpandGroupSettingCard):

View File

@@ -140,9 +140,6 @@ class AUTO_MAA(MSFluentWindow):
self.dispatch_center.update_top_bar() if index == 3 else None
)
)
self.stackedWidget.currentChanged.connect(
lambda index: (self.history.refresh() if index == 4 else None)
)
# 创建系统托盘及其菜单
self.tray = QSystemTrayIcon(
@@ -324,7 +321,7 @@ class AUTO_MAA(MSFluentWindow):
logger.info("自动添加任务调度队列_1")
TaskManager.add_task(
"自动代理_主调度台",
"主任务队列",
"调度队列_1",
Config.queue_dict["调度队列_1"]["Config"].toDict(),
)
@@ -332,7 +329,7 @@ class AUTO_MAA(MSFluentWindow):
logger.info("自动添加任务脚本_1")
TaskManager.add_task(
"自动代理_主调度台", "主任务队列", {"Queue": {"Member_1": "脚本_1"}}
"自动代理_主调度台", "自定义队列", {"Queue": {"Member_1": "脚本_1"}}
)
else:

View File

@@ -1099,7 +1099,7 @@ class MemberManager(QWidget):
text_list.append("未通过人工排查")
text_list.append(
f"今日已代理{config.get(config.Data_ProxyTimes)}"
if Config.server_date()
if Config.server_date().strftime("%Y-%m-%d")
== config.get(config.Data_LastProxyDate)
else "今日未进行代理"
)
@@ -1109,9 +1109,7 @@ class MemberManager(QWidget):
config.get(config.Data_LastAnnihilationDate),
"%Y-%m-%d",
).isocalendar()[:2]
== datetime.strptime(
Config.server_date(), "%Y-%m-%d"
).isocalendar()[:2]
== Config.server_date().isocalendar()[:2]
else "本周剿灭未完成"
)