Files

EGM Web 界面

基于 pywebview 的输电线路绕击跳闸率计算程序图形界面。

技术栈

  • 后端: Python + pywebview
  • 前端: Vue 3 + Quasar + TypeScript + Tailwind CSS
  • 构建工具: Vite

安装步骤

1. 安装 Python 依赖

# 在项目根目录
uv sync
# 或
pip install pywebview

2. 安装前端依赖

cd webui
npm install

运行方式

开发模式

  1. 启动前端开发服务器:
cd webui
npm run dev
  1. 在另一个终端启动 pywebview
cd ..
python webview_app.py

生产模式

  1. 构建前端:
cd webui
npm run build
  1. 启动 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 入口

功能说明

参数配置

界面提供三个参数分组:

  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: 请确保已安装 pywebviewpip install pywebview

Q: 前端开发服务器无法连接?

A: 请确保先运行 npm run dev,然后再启动 python webview_app.py

Q: 计算功能不工作?

A: 当前版本仅提供界面框架,需要进一步集成 core.py 中的计算逻辑。

后续开发

  • 集成 core.py 中的实际计算函数
  • 添加计算结果可视化
  • 支持导入/导出 TOML 配置文件
  • 添加批量计算功能
  • 添加结果导出DXF、PDF 等)