╔══════════════════════════════════════════════════════════════════════════════╗ ║ 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