From 8a74a576c0d5acf98acabe47fa43cbdbbe3c41d1 Mon Sep 17 00:00:00 2001 From: dmy Date: Tue, 3 Mar 2026 18:06:01 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD=E5=B9=B6=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加版本管理脚本和文件,更新webui依赖至最新版本,优化参数表单显示 --- Makefile | 8 +- VERSION | 1 + metadata.yml | 4 + package-lock.json | 6 ++ update_version.py | 76 +++++++++++++++ webui/index.html | 2 +- webui/package-lock.json | 130 ++++++++++++------------- webui/package.json | 2 +- webui/src/components/ParameterForm.vue | 4 +- webui/src/types/index.ts | 1 + 10 files changed, 159 insertions(+), 75 deletions(-) create mode 100644 VERSION create mode 100644 metadata.yml create mode 100644 package-lock.json create mode 100644 update_version.py diff --git a/Makefile b/Makefile index 2c3bebf..eca80c5 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,14 @@ target: dist build - create-version-file metadata.yml --outfile build/file_version_info.txt + uv run python update_version.py + cd webui && npm run build + cd .. + uv run create-version-file metadata.yml --outfile build/file_version_info.txt uv run pyinstaller -F main.py --version-file build/file_version_info.txt -n Lightening gui: build + uv run python update_version.py + cd webui && npm run build + cd .. uv run pyinstaller webview_app.py -n LighteningGUI --noconsole --add-data "webui/dist;webui/dist" -y dist: diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..bb83058 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +1.0.12 diff --git a/metadata.yml b/metadata.yml new file mode 100644 index 0000000..380852c --- /dev/null +++ b/metadata.yml @@ -0,0 +1,4 @@ +version: 1.0.12 +company_name: EGM +file_description: EGM Lightning Protection Calculator +product_name: Lightening diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..625743a --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "EGM", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/update_version.py b/update_version.py new file mode 100644 index 0000000..d6f3558 --- /dev/null +++ b/update_version.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python3 +"""更新版本号脚本""" +import re +import sys +from pathlib import Path + + +def get_version(): + """从 VERSION 文件读取版本号""" + version_file = Path(__file__).parent / "VERSION" + return version_file.read_text().strip() + + +def increment_version(version: str) -> str: + """递增版本号的修订号""" + parts = version.split(".") + if len(parts) == 3: + parts[2] = str(int(parts[2]) + 1) + return ".".join(parts) + return version + + +def update_index_html(version: str): + """更新 webui/index.html 中的标题版本号""" + index_file = Path(__file__).parent / "webui" / "index.html" + content = index_file.read_text(encoding="utf-8") + + # 替换标题中的版本号 + new_content = re.sub( + r"EGM 输电线路绕击跳闸率计算( v[\d.]+)?", + f"EGM 输电线路绕击跳闸率计算 v{version}", + content + ) + + index_file.write_text(new_content, encoding="utf-8") + print(f"Updated version in {index_file} to v{version}") + + +def update_version_file(version: str): + """更新 VERSION 文件""" + version_file = Path(__file__).parent / "VERSION" + version_file.write_text(version + "\n") + + +def create_metadata(version: str): + """创建 metadata.yml 文件""" + metadata_file = Path(__file__).parent / "metadata.yml" + content = f"""version: {version} +company_name: EGM +file_description: EGM Lightning Protection Calculator +product_name: Lightening +""" + metadata_file.write_text(content) + print(f"Created metadata.yml with version {version}") + + +def main(): + # 检查是否只获取版本号 + if len(sys.argv) > 1 and sys.argv[1] == "--get": + print(get_version()) + return + + # 获取当前版本并递增 + current_version = get_version() + new_version = increment_version(current_version) + + # 更新所有文件 + update_version_file(new_version) + update_index_html(new_version) + create_metadata(new_version) + + print(f"Version updated: {current_version} -> {new_version}") + + +if __name__ == "__main__": + main() diff --git a/webui/index.html b/webui/index.html index 4b952a6..1e96b22 100644 --- a/webui/index.html +++ b/webui/index.html @@ -4,7 +4,7 @@ - EGM 输电线路绕击跳闸率计算 + EGM 输电线路绕击跳闸率计算 v1.0.12
diff --git a/webui/package-lock.json b/webui/package-lock.json index 567371f..cff800e 100644 --- a/webui/package-lock.json +++ b/webui/package-lock.json @@ -21,7 +21,7 @@ "tailwindcss": "^3.4.0", "typescript": "^5.3.0", "vite": "^5.0.0", - "vue-tsc": "^1.8.0" + "vue-tsc": "^2.0.0" } }, "node_modules/@alloc/quick-lru": { @@ -1218,34 +1218,32 @@ } }, "node_modules/@volar/language-core": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.11.1.tgz", - "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "version": "2.4.15", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-2.4.15.tgz", + "integrity": "sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==", "dev": true, "license": "MIT", "dependencies": { - "@volar/source-map": "1.11.1" + "@volar/source-map": "2.4.15" } }, "node_modules/@volar/source-map": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.11.1.tgz", - "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "version": "2.4.15", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-2.4.15.tgz", + "integrity": "sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg==", "dev": true, - "license": "MIT", - "dependencies": { - "muggle-string": "^0.3.1" - } + "license": "MIT" }, "node_modules/@volar/typescript": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.11.1.tgz", - "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "version": "2.4.15", + "resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-2.4.15.tgz", + "integrity": "sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "1.11.1", - "path-browserify": "^1.0.1" + "@volar/language-core": "2.4.15", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" } }, "node_modules/@vue/compiler-core": { @@ -1298,22 +1296,32 @@ "@vue/shared": "3.5.29" } }, - "node_modules/@vue/language-core": { - "version": "1.8.27", - "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.27.tgz", - "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "~1.11.1", - "@volar/source-map": "~1.11.1", - "@vue/compiler-dom": "^3.3.0", - "@vue/shared": "^3.3.0", - "computeds": "^0.0.1", + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/@vue/language-core": { + "version": "2.2.12", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-2.2.12.tgz", + "integrity": "sha512-IsGljWbKGU1MZpBPN+BvPAdr55YPkj2nB/TBNGNC32Vy2qLG25DYu/NBN2vNtZqdRbTRjaoYrahLrToim2NanA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.15", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^1.0.3", "minimatch": "^9.0.3", - "muggle-string": "^0.3.1", - "path-browserify": "^1.0.1", - "vue-template-compiler": "^2.7.14" + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" }, "peerDependencies": { "typescript": "*" @@ -1374,6 +1382,13 @@ "integrity": "sha512-w7SR0A5zyRByL9XUkCfdLs7t9XOHUyJ67qPGQjOou3p6GvBeBW+AVjUUmlxtZ4PIYaRvE+1LmK44O4uajlZwcg==", "license": "MIT" }, + "node_modules/alien-signals": { + "version": "1.0.13", + "resolved": "https://registry.npmmirror.com/alien-signals/-/alien-signals-1.0.13.tgz", + "integrity": "sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==", + "dev": true, + "license": "MIT" + }, "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", @@ -1616,13 +1631,6 @@ "node": ">= 6" } }, - "node_modules/computeds": { - "version": "0.0.1", - "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", - "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", - "dev": true, - "license": "MIT" - }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", @@ -2033,9 +2041,9 @@ } }, "node_modules/muggle-string": { - "version": "0.3.1", - "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz", - "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", "dev": true, "license": "MIT" }, @@ -2881,19 +2889,6 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", @@ -3235,6 +3230,13 @@ } } }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, "node_modules/vue": { "version": "3.5.29", "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.29.tgz", @@ -3257,33 +3259,21 @@ } } }, - "node_modules/vue-template-compiler": { - "version": "2.7.16", - "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", - "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, "node_modules/vue-tsc": { - "version": "1.8.27", - "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.27.tgz", - "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", + "version": "2.2.12", + "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-2.2.12.tgz", + "integrity": "sha512-P7OP77b2h/Pmk+lZdJ0YWs+5tJ6J2+uOQPo7tlBnY44QqQSPYvS0qVT4wqDJgwrZaLe47etJLLQRFia71GYITw==", "dev": true, "license": "MIT", "dependencies": { - "@volar/typescript": "~1.11.1", - "@vue/language-core": "1.8.27", - "semver": "^7.5.4" + "@volar/typescript": "2.4.15", + "@vue/language-core": "2.2.12" }, "bin": { "vue-tsc": "bin/vue-tsc.js" }, "peerDependencies": { - "typescript": "*" + "typescript": ">=5.0.0" } } } diff --git a/webui/package.json b/webui/package.json index ca8dd9e..eee3637 100644 --- a/webui/package.json +++ b/webui/package.json @@ -1 +1 @@ -{"name":"egm-webui","version":"0.1.0","type":"module","scripts":{"dev":"vite","build":"vue-tsc && vite build","preview":"vite preview"},"dependencies":{"@quasar/extras":"^1.17.0","@quasar/vite-plugin":"^1.10.0","quasar":"^2.14.0","vue":"^3.4.0"},"devDependencies":{"@vitejs/plugin-vue":"^5.0.0","autoprefixer":"^10.4.0","postcss":"^8.4.0","sass-embedded":"^1.97.3","tailwindcss":"^3.4.0","typescript":"^5.3.0","vite":"^5.0.0","vue-tsc":"^1.8.0"}} \ No newline at end of file +{"name":"egm-webui","version":"0.1.0","type":"module","scripts":{"dev":"vite","build":"vue-tsc && vite build","preview":"vite preview"},"dependencies":{"@quasar/extras":"^1.17.0","@quasar/vite-plugin":"^1.10.0","quasar":"^2.14.0","vue":"^3.4.0"},"devDependencies":{"@vitejs/plugin-vue":"^5.0.0","autoprefixer":"^10.4.0","postcss":"^8.4.0","sass-embedded":"^1.97.3","tailwindcss":"^3.4.0","typescript":"^5.3.0","vite":"^5.0.0","vue-tsc":"^2.0.0"}} \ No newline at end of file diff --git a/webui/src/components/ParameterForm.vue b/webui/src/components/ParameterForm.vue index ff58fee..2584720 100644 --- a/webui/src/components/ParameterForm.vue +++ b/webui/src/components/ParameterForm.vue @@ -135,7 +135,7 @@ 导、地线挂点垂直坐标 (m)
-
+
-
+