From 0927c94a23b7aa7c3b9663b2f3080486ea033279 Mon Sep 17 00:00:00 2001 From: dmy Date: Tue, 3 Mar 2026 17:36:19 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0GUI=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E7=9B=AE=E6=A0=87=E5=B9=B6=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加Makefile中的GUI构建目标,更新README文档结构,调整默认参数值,优化webview应用的生产环境检测逻辑 --- Makefile | 5 ++++- README.md | 34 +++++++++++++++++++--------------- main-batch.py | 2 +- main.py | 2 +- webui/vite.config.ts | 1 + webview_app.py | 9 ++++++++- 6 files changed, 34 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index d0d0757..2c3bebf 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,9 @@ target: dist build 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: mkdir dist diff --git a/README.md b/README.md index 444d650..4149bda 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ ### 环境要求 - Python >= 3.12 +- Node.js >= 18(图形界面开发需要) ### 安装依赖 @@ -122,10 +123,10 @@ python webview_app.py rated_voltage = 750 # 额定电压等级 (kV) h_c_sag = 14.43 # 导线弧垂 (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_g_len = 0.5 # 地线串长 (m) -h_arm = [150, 130] # 导、地线挂点垂直距离 (m),第一个值为地线挂点高度 +h_arm = [130, 100] # 导、地线挂点垂直距离 (m),第一个值为地线挂点高度 gc_x = [17.9, 17] # 导、地线水平坐标 (m) ground_angels = [0] # 地面倾角 (°),向下为正,支持多个角度 altitude = 1000 # 海拔高度 (m) @@ -141,7 +142,7 @@ Ip_a = -1 # 雷电流概率密度曲线系数a,大于0时使用此 Ip_b = -1 # 雷电流概率密度曲线系数b,大于0时使用此值 ``` -注意:当 `ng` > 0 时,不会通过雷暴日计算地闪密度;当 `Ip_a` 和 `Ip_b` > 0 时,不会使用默认雷暴日对应的概率密度。 +**注意**:当 `ng` > 0 时,不会通过雷暴日计算地闪密度;当 `Ip_a` 和 `Ip_b` > 0 时,不会使用默认雷暴日对应的概率密度。 ### [optional] - 可选参数 @@ -189,25 +190,28 @@ EGM/ ├── animation.py # 动画演示模块 ├── webview_app.py # pywebview 图形界面后端 ├── article.toml # 示例配置文件 +├── default.toml # 默认配置文件 ├── Makefile # 构建脚本 ├── pyproject.toml # 项目配置 ├── README.md # 说明文档 ├── webui/ # 图形界面前端项目 │ ├── src/ │ │ ├── components/ -│ │ │ └── ParameterForm.vue +│ │ │ ├── ParameterForm.vue # 参数表单组件 +│ │ │ ├── Animation.vue # 动画可视化组件 +│ │ │ └── Log.vue # 日志显示组件 │ │ ├── types/ -│ │ │ └── index.ts -│ │ ├── App.vue -│ │ ├── main.ts -│ │ └── style.css -│ ├── package.json -│ ├── vite.config.ts -│ ├── tsconfig.json -│ ├── tailwind.config.js -│ ├── postcss.config.js -│ └── index.html -└── CSharp/ # C# 版本实现 +│ │ │ └── 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 入口 +├── CSharp/ # C# 版本实现 +└── 历史/ # 历史配置文件和DXF文件 ``` ## 技术支持 diff --git a/main-batch.py b/main-batch.py index fd120b0..cf864a2 100644 --- a/main-batch.py +++ b/main-batch.py @@ -1,7 +1,7 @@ import math import os.path import sys -import tomli +import tomllib as tomli from loguru import logger from core import * import timeit diff --git a/main.py b/main.py index 7a59414..05bbbbe 100644 --- a/main.py +++ b/main.py @@ -2,7 +2,7 @@ import math import os.path import sys import time -import tomli +import tomllib as tomli from loguru import logger from core import * import timeit diff --git a/webui/vite.config.ts b/webui/vite.config.ts index 1cd15f5..ba97e79 100644 --- a/webui/vite.config.ts +++ b/webui/vite.config.ts @@ -4,6 +4,7 @@ import { quasar, transformAssetUrls } from '@quasar/vite-plugin' import { fileURLToPath, URL } from 'node:url' export default defineConfig({ + base: './', plugins: [ vue({ template: { transformAssetUrls } diff --git a/webview_app.py b/webview_app.py index 19249e3..defb604 100644 --- a/webview_app.py +++ b/webview_app.py @@ -562,7 +562,14 @@ def start_webview(): # 确定前端 URL # 在开发环境中使用 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: # 开发模式:使用 Vite 开发服务器