# EGM Web 界面 基于 pywebview 的输电线路绕击跳闸率计算程序图形界面。 ## 技术栈 - **后端**: Python + pywebview - **前端**: Vue 3 + Quasar + TypeScript + Tailwind CSS - **构建工具**: Vite ## 安装步骤 ### 1. 安装 Python 依赖 ```bash # 在项目根目录 uv sync # 或 pip install pywebview ``` ### 2. 安装前端依赖 ```bash cd webui npm install ``` ## 运行方式 ### 开发模式 1. 启动前端开发服务器: ```bash cd webui npm run dev ``` 2. 在另一个终端启动 pywebview: ```bash cd .. python webview_app.py ``` ### 生产模式 1. 构建前端: ```bash cd webui npm run build ``` 2. 启动 pywebview: ```bash cd .. python webview_app.py ``` ## 项目结构 ``` webui/ ├── src/ │ ├── components/ │ │ └── ParameterForm.vue # 参数表单组件 │ ├── types/ │ │ └── index.ts # TypeScript 类型定义 │ ├── App.vue # 主应用组件 │ ├── main.ts # 应用入口 │ └── style.css # 全局样式 ├── package.json # 前端依赖配置 ├── vite.config.ts # Vite 配置 ├── tsconfig.json # TypeScript 配置 ├── tailwind.config.js # Tailwind CSS 配置 └── index.html # HTML 入口 ``` ## 功能说明 ### 参数配置 界面提供三个参数分组: 1. **基本参数**: - 额定电压等级 (kV) - 导线弧垂 (m) - 地线弧垂 (m) - 导线串子绝缘长度 (m) - 导线串长 (m) - 地线串长 (m) - 导、地线挂点垂直距离 (m) - 导、地线水平坐标 (m) - 地面倾角 (°) - 海拔高度 (m) - 雷暴日 (d) 2. **高级参数**: - 地闪密度 (次/(km²·a)) - 雷电流概率密度曲线系数 a - 雷电流概率密度曲线系数 b 3. **可选参数**: - 计算时电压分成多少份 - 最大尝试雷电流 (kA) ### 操作功能 - **开始计算**: 执行 EGM 计算 - **重置参数**: 恢复默认参数值 - **导出配置**: 将当前配置导出为 JSON 文件 ## 开发说明 ### 添加新功能 1. 在 `src/types/index.ts` 中添加类型定义 2. 在 `src/components/ParameterForm.vue` 中添加 UI 组件 3. 在 `webview_app.py` 中添加后端 API 方法 ### 样式定制 - 使用 Tailwind CSS 类名进行样式定制 - Quasar 组件自带 Material Design 风格 ## 常见问题 ### Q: pywebview 窗口无法打开? A: 请确保已安装 pywebview:`pip install pywebview` ### Q: 前端开发服务器无法连接? A: 请确保先运行 `npm run dev`,然后再启动 `python webview_app.py` ### Q: 计算功能不工作? A: 当前版本仅提供界面框架,需要进一步集成 core.py 中的计算逻辑。 ## 后续开发 - [ ] 集成 core.py 中的实际计算函数 - [ ] 添加计算结果可视化 - [ ] 支持导入/导出 TOML 配置文件 - [ ] 添加批量计算功能 - [ ] 添加结果导出(DXF、PDF 等)