feat: 添加GUI构建目标并更新文档
添加Makefile中的GUI构建目标,更新README文档结构,调整默认参数值,优化webview应用的生产环境检测逻辑
This commit is contained in:
5
Makefile
5
Makefile
@@ -1,6 +1,9 @@
|
|||||||
target: dist build
|
target: dist build
|
||||||
create-version-file metadata.yml --outfile build/file_version_info.txt
|
create-version-file metadata.yml --outfile build/file_version_info.txt
|
||||||
pyinstaller -F main.py --version-file build/file_version_info.txt -n Lightening
|
uv run pyinstaller -F main.py --version-file build/file_version_info.txt -n Lightening
|
||||||
|
|
||||||
|
gui: build
|
||||||
|
uv run pyinstaller webview_app.py -n LighteningGUI --noconsole --add-data "webui/dist;webui/dist" -y
|
||||||
|
|
||||||
dist:
|
dist:
|
||||||
mkdir dist
|
mkdir dist
|
||||||
|
|||||||
34
README.md
34
README.md
@@ -18,6 +18,7 @@
|
|||||||
### 环境要求
|
### 环境要求
|
||||||
|
|
||||||
- Python >= 3.12
|
- Python >= 3.12
|
||||||
|
- Node.js >= 18(图形界面开发需要)
|
||||||
|
|
||||||
### 安装依赖
|
### 安装依赖
|
||||||
|
|
||||||
@@ -122,10 +123,10 @@ python webview_app.py
|
|||||||
rated_voltage = 750 # 额定电压等级 (kV)
|
rated_voltage = 750 # 额定电压等级 (kV)
|
||||||
h_c_sag = 14.43 # 导线弧垂 (m)
|
h_c_sag = 14.43 # 导线弧垂 (m)
|
||||||
h_g_sag = 11.67 # 地线弧垂 (m)
|
h_g_sag = 11.67 # 地线弧垂 (m)
|
||||||
insulator_c_len = 7.02 # 导线串子绝缘长度 (m)
|
insulator_c_len = 7.4 # 导线串子绝缘长度 (m)
|
||||||
string_c_len = 9.2 # 导线串长 (m)
|
string_c_len = 9.2 # 导线串长 (m)
|
||||||
string_g_len = 0.5 # 地线串长 (m)
|
string_g_len = 0.5 # 地线串长 (m)
|
||||||
h_arm = [150, 130] # 导、地线挂点垂直距离 (m),第一个值为地线挂点高度
|
h_arm = [130, 100] # 导、地线挂点垂直距离 (m),第一个值为地线挂点高度
|
||||||
gc_x = [17.9, 17] # 导、地线水平坐标 (m)
|
gc_x = [17.9, 17] # 导、地线水平坐标 (m)
|
||||||
ground_angels = [0] # 地面倾角 (°),向下为正,支持多个角度
|
ground_angels = [0] # 地面倾角 (°),向下为正,支持多个角度
|
||||||
altitude = 1000 # 海拔高度 (m)
|
altitude = 1000 # 海拔高度 (m)
|
||||||
@@ -141,7 +142,7 @@ Ip_a = -1 # 雷电流概率密度曲线系数a,大于0时使用此
|
|||||||
Ip_b = -1 # 雷电流概率密度曲线系数b,大于0时使用此值
|
Ip_b = -1 # 雷电流概率密度曲线系数b,大于0时使用此值
|
||||||
```
|
```
|
||||||
|
|
||||||
注意:当 `ng` > 0 时,不会通过雷暴日计算地闪密度;当 `Ip_a` 和 `Ip_b` > 0 时,不会使用默认雷暴日对应的概率密度。
|
**注意**:当 `ng` > 0 时,不会通过雷暴日计算地闪密度;当 `Ip_a` 和 `Ip_b` > 0 时,不会使用默认雷暴日对应的概率密度。
|
||||||
|
|
||||||
### [optional] - 可选参数
|
### [optional] - 可选参数
|
||||||
|
|
||||||
@@ -189,25 +190,28 @@ EGM/
|
|||||||
├── animation.py # 动画演示模块
|
├── animation.py # 动画演示模块
|
||||||
├── webview_app.py # pywebview 图形界面后端
|
├── webview_app.py # pywebview 图形界面后端
|
||||||
├── article.toml # 示例配置文件
|
├── article.toml # 示例配置文件
|
||||||
|
├── default.toml # 默认配置文件
|
||||||
├── Makefile # 构建脚本
|
├── Makefile # 构建脚本
|
||||||
├── pyproject.toml # 项目配置
|
├── pyproject.toml # 项目配置
|
||||||
├── README.md # 说明文档
|
├── README.md # 说明文档
|
||||||
├── webui/ # 图形界面前端项目
|
├── webui/ # 图形界面前端项目
|
||||||
│ ├── src/
|
│ ├── src/
|
||||||
│ │ ├── components/
|
│ │ ├── components/
|
||||||
│ │ │ └── ParameterForm.vue
|
│ │ │ ├── ParameterForm.vue # 参数表单组件
|
||||||
|
│ │ │ ├── Animation.vue # 动画可视化组件
|
||||||
|
│ │ │ └── Log.vue # 日志显示组件
|
||||||
│ │ ├── types/
|
│ │ ├── types/
|
||||||
│ │ │ └── index.ts
|
│ │ │ └── index.ts # TypeScript 类型定义
|
||||||
│ │ ├── App.vue
|
│ │ ├── App.vue # 主应用组件
|
||||||
│ │ ├── main.ts
|
│ │ ├── main.ts # 应用入口
|
||||||
│ │ └── style.css
|
│ │ └── style.css # 全局样式
|
||||||
│ ├── package.json
|
│ ├── package.json # 前端依赖配置
|
||||||
│ ├── vite.config.ts
|
│ ├── vite.config.ts # Vite 配置
|
||||||
│ ├── tsconfig.json
|
│ ├── tsconfig.json # TypeScript 配置
|
||||||
│ ├── tailwind.config.js
|
│ ├── tailwind.config.js # Tailwind CSS 配置
|
||||||
│ ├── postcss.config.js
|
│ └── index.html # HTML 入口
|
||||||
│ └── index.html
|
├── CSharp/ # C# 版本实现
|
||||||
└── CSharp/ # C# 版本实现
|
└── 历史/ # 历史配置文件和DXF文件
|
||||||
```
|
```
|
||||||
|
|
||||||
## 技术支持
|
## 技术支持
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import math
|
import math
|
||||||
import os.path
|
import os.path
|
||||||
import sys
|
import sys
|
||||||
import tomli
|
import tomllib as tomli
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
from core import *
|
from core import *
|
||||||
import timeit
|
import timeit
|
||||||
|
|||||||
2
main.py
2
main.py
@@ -2,7 +2,7 @@ import math
|
|||||||
import os.path
|
import os.path
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import tomli
|
import tomllib as tomli
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
from core import *
|
from core import *
|
||||||
import timeit
|
import timeit
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { quasar, transformAssetUrls } from '@quasar/vite-plugin'
|
|||||||
import { fileURLToPath, URL } from 'node:url'
|
import { fileURLToPath, URL } from 'node:url'
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
|
base: './',
|
||||||
plugins: [
|
plugins: [
|
||||||
vue({
|
vue({
|
||||||
template: { transformAssetUrls }
|
template: { transformAssetUrls }
|
||||||
|
|||||||
@@ -562,7 +562,14 @@ def start_webview():
|
|||||||
# 确定前端 URL
|
# 确定前端 URL
|
||||||
# 在开发环境中使用 Vite 开发服务器
|
# 在开发环境中使用 Vite 开发服务器
|
||||||
# 在生产环境中使用构建后的文件
|
# 在生产环境中使用构建后的文件
|
||||||
dev_mode = os.getenv('EGM_DEV_MODE', 'true').lower() == 'true'
|
|
||||||
|
# 检查是否在打包环境中运行
|
||||||
|
if getattr(sys, 'frozen', False):
|
||||||
|
# 打包环境:强制使用生产模式,禁用调试
|
||||||
|
dev_mode = False
|
||||||
|
else:
|
||||||
|
# 开发环境:通过环境变量控制
|
||||||
|
dev_mode = os.getenv('EGM_DEV_MODE', 'true').lower() == 'true'
|
||||||
|
|
||||||
if dev_mode:
|
if dev_mode:
|
||||||
# 开发模式:使用 Vite 开发服务器
|
# 开发模式:使用 Vite 开发服务器
|
||||||
|
|||||||
Reference in New Issue
Block a user