EGM Web 界面
基于 pywebview 的输电线路绕击跳闸率计算程序图形界面。
技术栈
- 后端: Python + pywebview
- 前端: Vue 3 + Quasar + TypeScript + Tailwind CSS
- 构建工具: Vite
安装步骤
1. 安装 Python 依赖
# 在项目根目录
uv sync
# 或
pip install pywebview
2. 安装前端依赖
cd webui
npm install
运行方式
开发模式
- 启动前端开发服务器:
cd webui
npm run dev
- 在另一个终端启动 pywebview:
cd ..
python webview_app.py
生产模式
- 构建前端:
cd webui
npm run build
- 启动 pywebview:
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 入口
功能说明
参数配置
界面提供三个参数分组:
-
基本参数:
- 额定电压等级 (kV)
- 导线弧垂 (m)
- 地线弧垂 (m)
- 导线串子绝缘长度 (m)
- 导线串长 (m)
- 地线串长 (m)
- 导、地线挂点垂直距离 (m)
- 导、地线水平坐标 (m)
- 地面倾角 (°)
- 海拔高度 (m)
- 雷暴日 (d)
-
高级参数:
- 地闪密度 (次/(km²·a))
- 雷电流概率密度曲线系数 a
- 雷电流概率密度曲线系数 b
-
可选参数:
- 计算时电压分成多少份
- 最大尝试雷电流 (kA)
操作功能
- 开始计算: 执行 EGM 计算
- 重置参数: 恢复默认参数值
- 导出配置: 将当前配置导出为 JSON 文件
开发说明
添加新功能
- 在
src/types/index.ts中添加类型定义 - 在
src/components/ParameterForm.vue中添加 UI 组件 - 在
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 等)