certflow.views.output_view module

统一输出视图(OutputView)—— 打印/扫描合一(§11.5 阶段3)。

设计要点(方案A · 配置驱动 + 组合复用): - 顶部一个「输出目标」下拉,选项由 output.targets 配置驱动(打印/扫描),

默认值取 output.default_target;切换仅显隐对应子视图,不重建。

  • 打印子页复用既有 :class:`PrintView`(ESC/P 打印 + 完整表单 + 预览), 扫描子页复用既有 :class:`ScanView`(PIL 渲染),二者逻辑/测试零改动 → 行为零回归。

  • 护栏(阶段1 run_guard)、PrintLog 写点(阶段2 HistoryBackfillService)、 历史 diff 闸均为两子视图共享服务,本视图只负责目标切换与信号收敛。

  • 信号统一为 output_completed(target, payload)PrintView.navigate_to_scan (内部「生成扫描件」按钮)在本视图内直接切换目标并加载,不再外抛。

class certflow.views.output_view.OutputView(session, config=None, db_manager=None, parent=None)[源代码]

基类:QWidget

打印/扫描合一的统一输出视图(单 tab)

参数:
  • session (Any)

  • config (dict)

  • db_manager (Any)

  • parent (Any)

output_completed
set_target(key)[源代码]

切换输出目标(打印/扫描)并更新下拉。

参数:

key (str) -- 目标 key("print" / "scan"),未知 key 回退打印。

返回类型:

None

current_target()[源代码]

当前输出目标 key。

返回类型:

str

run_output(target, action='print', **kwargs)[源代码]

统一调度入口:委托 OutputController.run(§11.8 阶段4 显式 dispatch 表)。

参数:
  • target (str) -- "print" / "scan"

  • action (str) -- 目标内动作键(print→print_certificate;scan→generate/load)

  • **kwargs (Any) -- 透传给具体控制器方法

返回类型:

Any

load_selected_sale_plan_ids(sale_plan_ids)[源代码]

加载销售计划(委托打印子视图)。

参数:

sale_plan_ids (list[int])

返回类型:

None

load_certificates(certificate_ids)[源代码]

加载合格证(委托扫描子视图)。

参数:

certificate_ids (list[int])

返回类型:

None

staticMetaObject = PySide6.QtCore.QMetaObject("OutputView" inherits "QWidget": Methods:   #33 type=Signal, signature=output_completed(QString,QVariantList), parameters=QString, QVariantList )