certflow.views.import_confirm_dialog module

销售计划导入「确认」对话框(ImportConfirmDialog)

承接 ImportConfigDialog 的第二步:展示分组/冲突预览,收集 5 选项冲突决议, 确认后执行导入。导入成功后通过 result_config_params 把配置交回设置对话框 (ImportConfigDialog)转发 config_confirmed 信号给主窗口刷新。

certflow.views.import_confirm_dialog.run_import(session, config_params)[源代码]

执行导入(配置可含 conflict_resolutions),返回统计 dict。

供「0 冲突直接导入」与「确认对话框导入」共用,保证两条路径落库完全一致。 经 ImportController 统一调用面(蓝图 M5:导入链路补齐 Controller 层)。

参数:
  • session (Any)

  • config_params (dict)

返回类型:

dict

certflow.views.import_confirm_dialog.should_skip_confirm_dialog(db_conflicts, intra_conflicts, skip_enabled=True)[源代码]

判定是否可跳过确认对话框(0 冲突时直接导入)。

参数:
  • db_conflicts (list) -- 跨库冲突列表(来自 _scan_conflicts)

  • intra_conflicts (list) -- 批内撞键冲突列表

  • skip_enabled (bool) -- import.skip_confirm_when_no_conflict 开关

返回:

开关开启且两类冲突均为空时为 True

返回类型:

bool

class certflow.views.import_confirm_dialog.ImportConfirmDialog(config_params, preview_records, db_conflicts, intra_conflicts, order_groups, parent=None, db_manager=None, session=None)[源代码]

基类:QDialog

导入确认对话框:冲突预览 + 5 选项决议 + 执行导入。

参数:
setup_ui()[源代码]
返回类型:

None

showEvent(event)[源代码]

首次显示后按内容撑开冲突表行高,并对过长行设上限。

行高由 resizeRowsToContents 按当前字体/DPI 推导,因此不同屏幕缩放下 表现一致(前提是应用启用了 AA_EnableHighDpiScaling)。

不再强制所有行等高——旧实现取 max_h 统一行高,一旦某行摘要换行较多, 会把所有短行也拉高,视觉上「行高变高」。现改为:内容高 ≤ 上限时按内容, 超过上限则截断到上限(配合 setWordWrap 长文本仍完整换行显示)。

列 3(导入动作)的单元格放的是 QWidget 容器,内部 combo 用 minimumHeight 占位并垂直居中,不依赖整行等高也能整齐对齐。

返回类型:

None

staticMetaObject = PySide6.QtCore.QMetaObject("ImportConfirmDialog" inherits "QDialog": )