This commit is contained in:
Your Name
2026-10-08 18:03:11 +08:00
parent 4dac39c4c2
commit 19ea2dadeb
26 changed files with 1131 additions and 28 deletions
@@ -89,6 +89,7 @@ from ..dialogs.prescription_ai import (
)
from ..filter_disclosure import FilterDisclosure
from ..reception_style import body_family, heading_family, number_family
from ..report_provenance import report_provenance_lines
from ..theme import mark_business_dialog
from ..widgets import (
EmptyState,
@@ -3335,6 +3336,14 @@ class _ReceptionAiAnalysisDialog(QDialog):
"",
"ReceptionAiAnalysisDialogTreatmentText",
)
source_label = QLabel("", body)
source_label.setObjectName("ReceptionAiAnalysisDialogSources")
source_label.setTextFormat(Qt.TextFormat.PlainText)
source_label.setTextInteractionFlags(Qt.TextInteractionFlag.TextSelectableByMouse)
source_label.setWordWrap(True)
source_label.setStyleSheet("color: #555B68; font-size: 12px; padding: 10px 14px; background: #F7F8FC; border: 1px solid #E4E8F2; border-radius: 8px;")
body_layout.addWidget(source_label)
self.source_label = source_label
body_layout.addStretch(1)
scroll.setWidget(body)
surface_layout.addWidget(scroll, 1)
@@ -3525,6 +3534,7 @@ class _ReceptionAiAnalysisDialog(QDialog):
" | ".join(part for part in (model, f"第 {version} 版", generated_at) if part)
)
self.meta_label.setVisible(bool(self.meta_label.text()))
self.source_label.setText("报告出处\n" + "\n".join(report_provenance_lines(payload)))
self.scroll_area.verticalScrollBar().setValue(0)
@@ -5198,6 +5208,13 @@ class ReceptionPage(QWidget):
state_layout.addStretch(1)
self.ai_analysis_stack.addWidget(analysis_state)
analysis_layout.addWidget(self.ai_analysis_stack)
self.ai_source_label = QLabel("", analysis_card)
self.ai_source_label.setObjectName("ReceptionAiSourceSummary")
self.ai_source_label.setTextFormat(Qt.TextFormat.PlainText)
self.ai_source_label.setTextInteractionFlags(Qt.TextInteractionFlag.TextSelectableByMouse)
self.ai_source_label.setWordWrap(True)
self.ai_source_label.setStyleSheet("color: #5B6474; font-size: 11px;")
analysis_layout.addWidget(self.ai_source_label)
self.ai_detail_actions_host = QWidget(analysis_card)
report_footer = QHBoxLayout(self.ai_detail_actions_host)
@@ -5432,6 +5449,7 @@ class ReceptionPage(QWidget):
self.ai_analysis_stack.setCurrentWidget(
self.ai_analysis_content_page if success else self.ai_analysis_state_page
)
self.ai_source_label.setVisible(success)
if success and payload is not None:
if (
self._ai_analysis_rendered_model != model
@@ -5559,6 +5577,9 @@ class ReceptionPage(QWidget):
)
self.ai_analysis_snapshot_meta.setVisible(bool(meta_text))
self.ai_analysis_card.setToolTip("")
source_lines = report_provenance_lines(payload)
self.ai_source_label.setText("报告出处:" + ";".join(source_lines[:2]))
self.ai_source_label.setToolTip("\n".join(source_lines))
def _render_ai_risk_chips(self, risks: Sequence[Mapping[str, Any]]) -> None:
_clear_ai_layout(self.ai_risk_chip_layout)