PCM_Report/配置类型选择流程图.txt

326 lines
16 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

╔══════════════════════════════════════════════════════════════════════════════╗
║ 配置类型选择功能 - 流程图 ║
╚══════════════════════════════════════════════════════════════════════════════╝
┌─────────────────────────────────────────────────────────────────────────────┐
│ 场景1配置设置 │
└─────────────────────────────────────────────────────────────────────────────┘
用户点击"配置"按钮
┌─────────────────────┐
│ 选择配置类型对话框 │
│ │
│ ○ 600泵 ✓ │
│ ● 1000泵 ✓ │
│ │
│ [确定] [取消] │
└─────────────────────┘
用户选择"1000泵"
┌─────────────────────┐
│ 配置设置 - 1000泵 │
│ │
│ [InfluxDB配置] │
│ [占位符配置] │
│ [设备配置] │
│ ... │
│ │
│ [保存] [取消] │
└─────────────────────┘
保存到 configs/1000泵/default.json
┌─────────────────────────────────────────────────────────────────────────────┐
│ 场景2开始工单 │
└─────────────────────────────────────────────────────────────────────────────┘
用户点击"开始工单"按钮
┌─────────────────────┐
│ 选择配置类型对话框 │
│ │
│ ● 600泵 ✓ │
│ ○ 1000泵 ✓ │
│ │
│ [确定] [取消] │
└─────────────────────┘
用户选择"600泵"
加载 configs/600泵/default.json
加载 configs/600泵/template.docx
┌─────────────────────┐
│ 开始工单 - 600泵 │
│ │
│ 工单号: _______ │
│ 操作员: _______ │
│ 备注: _______ │
│ │
│ [开始] [取消] │
└─────────────────────┘
开始工单
├─ 使用 600泵 的配置
└─ 使用 600泵 的模板
┌─────────────────────────────────────────────────────────────────────────────┐
│ 对话框详细界面 │
└─────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────┐
│ 选择配置类型 [_][□][X] │
├──────────────────────────────────────────────────┤
│ │
│ 请选择要使用的配置类型: │
│ │
│ ┌────────────────────────────────────────┐ │
│ │ 📁 600泵 ✓ │◄─── 配置完整
│ │ 📁 1000泵 ✓ │ 可以选择
│ │ 📁 新设备 ⚠ (缺少模板) │◄─── 缺少模板
│ │ 📁 测试 ✗ (配置缺失) │◄─── 配置缺失
│ │ │ 不可选择
│ └────────────────────────────────────────┘
│ │
│ ┌────────────────────────────────────────┐ │
│ │ 📋 类型名称: 600泵 │◄─── 详细信息
│ │ │
│ │ ✓ 配置文件: default.json │
│ │ ✓ 模板文件: template-001.docx │
│ │ │
│ │ 📂 路径: F:\...\configs\600泵 │
│ └────────────────────────────────────────┘
│ │
│ [确定] [取消] │
└──────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ 数据流向 │
└─────────────────────────────────────────────────────────────────────────────┘
ConfigCategoryManager
├─► scan_categories()
│ │
│ └─► 扫描 configs/ 目录
│ │
│ ├─► 发现 600泵/
│ │ ├─ default.json ✓
│ │ └─ template.docx ✓
│ │
│ └─► 发现 1000泵/
│ ├─ default.json ✓
│ └─ template.docx ✓
└─► 返回: [ConfigCategory, ConfigCategory]
ConfigTypeSelectorDialog
├─► 显示配置类型列表
│ ├─ 600泵 ✓
│ └─ 1000泵 ✓
├─► 用户选择 "600泵"
└─► 返回: ConfigCategory(name="600泵", ...)
MainWindow
├─► 接收选择结果
├─► 加载配置
│ └─ AppConfig.load(configs/600泵/default.json)
├─► 加载模板
│ └─ template_path = configs/600泵/template.docx
└─► 继续后续操作
┌─────────────────────────────────────────────────────────────────────────────┐
│ 代码调用流程 │
└─────────────────────────────────────────────────────────────────────────────┘
# 场景1配置设置
─────────────────────
def open_config_dialog(self):
# 1. 显示类型选择对话框
category = select_config_for_settings(self)
if category is None:
return # 用户取消
# 2. 加载配置
self.config = AppConfig.load(category.config_path)
self._autosave_path = category.config_path
# 3. 打开配置对话框
dlg = QDialog(self)
dlg.setWindowTitle(f"配置设置 - {category.name}")
# ...
# 场景2开始工单
─────────────────────
def _start_work_order(self):
# 1. 显示类型选择对话框
category = select_config_for_work_order(self)
if category is None:
return # 用户取消
# 2. 加载配置和模板
self.config = AppConfig.load(category.config_path)
self.template_path = category.template_path
# 3. 显示工单信息输入对话框
dlg = QDialog(self)
dlg.setWindowTitle(f"开始工单 - {category.name}")
# ...
# 4. 开始工单
# 使用当前配置和模板
┌─────────────────────────────────────────────────────────────────────────────┐
│ 配置类型状态 │
└─────────────────────────────────────────────────────────────────────────────┘
状态1: 完整配置 ✓
─────────────────
configs/600泵/
├── default.json ✓ 存在
└── template.docx ✓ 存在
→ 可以选择
→ 显示绿色 ✓
状态2: 缺少模板 ⚠
─────────────────
configs/新设备/
├── default.json ✓ 存在
└── template.docx ✗ 不存在
→ 可以选择(但有警告)
→ 显示橙色 ⚠
状态3: 配置缺失 ✗
─────────────────
configs/测试/
├── default.json ✗ 不存在
└── template.docx ? 不检查
→ 不可选择
→ 显示红色 ✗
→ 项目被禁用
┌─────────────────────────────────────────────────────────────────────────────┐
│ 用户体验对比 │
└─────────────────────────────────────────────────────────────────────────────┘
之前的流程:
───────────
点击"配置" → 打开配置对话框
编辑哪个配置?
保存到哪里?
不清楚!❌
现在的流程:
───────────
点击"配置" → 选择配置类型 → 打开该类型的配置对话框
(600泵/1000泵) ↓
清楚明了!✓
之前的流程:
───────────
点击"开始工单" → 使用哪个配置?
使用哪个模板?
不清楚!❌
现在的流程:
───────────
点击"开始工单" → 选择配置类型 → 使用该类型的配置和模板
(600泵/1000泵) ↓
清楚明了!✓
┌─────────────────────────────────────────────────────────────────────────────┐
│ 集成步骤 │
└─────────────────────────────────────────────────────────────────────────────┘
步骤1: 导入模块
─────────────────
from config_type_selector import (
select_config_for_work_order,
select_config_for_settings
)
步骤2: 修改"配置"按钮
─────────────────────
def open_config_dialog(self):
category = select_config_for_settings(self)
if category:
# 加载配置
# 打开配置对话框
步骤3: 修改"开始工单"按钮
─────────────────────────
def _start_work_order(self):
category = select_config_for_work_order(self)
if category:
# 加载配置和模板
# 显示工单信息输入
# 开始工单
步骤4: 测试
─────────────
✓ 点击"配置",验证类型选择
✓ 点击"开始工单",验证类型选择
✓ 验证配置保存到正确位置
┌─────────────────────────────────────────────────────────────────────────────┐
│ 完成! │
└─────────────────────────────────────────────────────────────────────────────┘
✅ 配置类型选择对话框已开发
✅ 演示程序已创建
✅ 集成代码已编写
✅ 文档已完成
📝 下一步:
1. 运行 python demo_type_selector.py 查看效果
2. 参考 集成类型选择对话框.py 集成到主程序
3. 测试功能
╔══════════════════════════════════════════════════════════════════════════════╗
║ 完成! ║
╚══════════════════════════════════════════════════════════════════════════════╝