PCM_Report/修改对比图.txt

258 lines
12 KiB
Plaintext
Raw Normal View History

2025-12-19 10:18:51 +08:00
╔══════════════════════════════════════════════════════════════════════════════╗
║ ui_main.py 修改对比 ║
╚══════════════════════════════════════════════════════════════════════════════╝
┌─────────────────────────────────────────────────────────────────────────────┐
│ 修改前的流程 │
└─────────────────────────────────────────────────────────────────────────────┘
点击"配置"按钮
直接打开配置对话框
├─ 不知道编辑的是哪个配置
├─ 配置可能混淆
└─ 保存位置不明确
点击"开始工单"按钮
输入工单号
├─ 不知道用哪个配置
├─ 不知道用哪个模板
└─ 容易出错
┌─────────────────────────────────────────────────────────────────────────────┐
│ 修改后的流程 │
└─────────────────────────────────────────────────────────────────────────────┘
点击"配置"按钮
┌─────────────────────┐
│ 选择配置类型对话框 │
│ │
│ ○ 600泵 ✓ │
│ ● 1000泵 ✓ │
│ │
│ [确定] [取消] │
└─────────────────────┘
用户选择"1000泵"
加载 configs/1000泵/default.json
加载 configs/1000泵/template.docx
┌─────────────────────┐
│ 配置设置 - 1000泵 │ ◄─── 标题显示配置类型
│ │
│ [InfluxDB配置] │
│ [占位符配置] │
│ ... │
│ │
│ [保存] [取消] │
└─────────────────────┘
保存到 configs/1000泵/default.json ◄─── 明确的保存位置
点击"开始工单"按钮
┌─────────────────────┐
│ 选择配置类型对话框 │
│ │
│ ● 600泵 ✓ │
│ ○ 1000泵 ✓ │
│ │
│ [确定] [取消] │
└─────────────────────┘
用户选择"600泵"
加载 configs/600泵/default.json
加载 configs/600泵/template.docx
┌─────────────────────┐
│ 输入工单号 - 600泵 │ ◄─── 标题显示配置类型
│ │
│ 工单号: _______ │
│ │
│ [确定] [取消] │
└─────────────────────┘
开始工单
├─ 使用 configs/600泵/default.json ◄─── 明确的配置
└─ 使用 configs/600泵/template.docx ◄─── 明确的模板
┌─────────────────────────────────────────────────────────────────────────────┐
│ 代码修改对比 │
└─────────────────────────────────────────────────────────────────────────────┘
修改前open_config_dialog
─────────────────────────────
def open_config_dialog(self, preview: bool = False) -> None:
# 直接打开配置对话框
dlg = QDialog(self)
dlg.setWindowTitle("配置")
# ...
修改后open_config_dialog
─────────────────────────────
def open_config_dialog(self, preview: bool = False) -> None:
# 第一步:选择配置类型
if not preview:
category = select_config_for_settings(self)
if category is None:
return # 用户取消
# 加载配置
self.config = AppConfig.load(category.config_path)
self.template_path = category.template_path
# 第二步:打开配置对话框
dlg = QDialog(self)
dlg.setWindowTitle(f"配置设置 - {config_type_name}")
# ...
修改前_start_work_order
─────────────────────────────
def _start_work_order(self) -> None:
# 直接输入工单号
work_order_no, ok = QInputDialog.getText(...)
# ...
修改后_start_work_order
─────────────────────────────
def _start_work_order(self) -> None:
# 第一步:选择配置类型
category = select_config_for_work_order(self)
if category is None:
return # 用户取消
# 加载配置
self.config = AppConfig.load(category.config_path)
self.template_path = category.template_path
# 第二步:输入工单号
work_order_no, ok = QInputDialog.getText(
self,
f"输入工单号 - {category.name}", # 标题显示配置类型
...
)
# ...
┌─────────────────────────────────────────────────────────────────────────────┐
│ 修改的优势 │
└─────────────────────────────────────────────────────────────────────────────┘
修改前 修改后
────────────────────────────────────────────────────────
❌ 不知道编辑哪个配置 → ✅ 明确选择配置类型
❌ 配置可能混淆 → ✅ 配置完全隔离
❌ 保存位置不明确 → ✅ 保存到正确位置
❌ 不知道用哪个模板 → ✅ 模板自动关联
❌ 容易出错 → ✅ 清晰明了
┌─────────────────────────────────────────────────────────────────────────────┐
│ 文件修改统计 │
└─────────────────────────────────────────────────────────────────────────────┘
文件: ui_main.py
修改位置:
├─ 第 40 行: 添加导入语句
├─ 第 1412 行: 修改 open_config_dialog 函数
└─ 第 3868 行: 修改 _start_work_order 函数
代码统计:
├─ 新增代码: 约 60 行
├─ 删除代码: 约 10 行
└─ 净增加: 约 50 行
修改类型:
├─ 添加导入: 1 处
├─ 修改函数: 2 处
└─ 添加逻辑: 配置类型选择
┌─────────────────────────────────────────────────────────────────────────────┐
│ 测试验证 │
└─────────────────────────────────────────────────────────────────────────────┘
✅ 语法检查通过
✅ 导入语句正确
✅ 函数逻辑完整
✅ 错误处理完善
待测试:
□ 点击"配置"按钮
□ 选择配置类型
□ 编辑配置
□ 保存配置
□ 点击"开始工单"按钮
□ 选择配置类型
□ 输入工单号
□ 验证配置隔离
┌─────────────────────────────────────────────────────────────────────────────┐
│ 使用示例 │
└─────────────────────────────────────────────────────────────────────────────┘
场景1: 修改600泵的配置
─────────────────────────
1. 点击"配置"
2. 选择"600泵"
3. 修改 InfluxDB URL
4. 保存
5. 配置保存到 configs/600泵/default.json
场景2: 使用1000泵开始工单
─────────────────────────────
1. 点击"开始工单"
2. 选择"1000泵"
3. 输入工单号
4. 使用 configs/1000泵/ 的配置和模板
场景3: 验证配置隔离
─────────────────────
1. 修改"600泵"的配置
2. 打开"1000泵"的配置
3. 验证"1000泵"的配置没有被影响
4. 再次打开"600泵"
5. 验证之前的修改已保存
╔══════════════════════════════════════════════════════════════════════════════╗
║ 完成! ║
╚══════════════════════════════════════════════════════════════════════════════╝
✅ ui_main.py 已成功修改
✅ 配置类型选择功能已集成
✅ 代码语法检查通过
✅ 准备好测试
下一步: python ui_main.py