258 lines
12 KiB
Plaintext
258 lines
12 KiB
Plaintext
╔══════════════════════════════════════════════════════════════════════════════╗
|
||
║ 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
|