Enable build support by adding .onedev-buildspec.yml
| .vscode | Loading last commit info... | |
| backup | ||
| electron | ||
| example | ||
| interface | ||
| plugins | ||
| .gitignore | ||
| .python-version | ||
| README.md | ||
| app.py | ||
| pyproject.toml | ||
| uv.lock |
README.md
SWMM 海绵城市指标分解系统
一个基于SWMM(Storm Water Management Model)的海绵城市指标分解软件,提供Python后端API和Electron桌面应用前端。
🚀 项目特性
- SWMM模拟引擎: 基于 pyswmm 和 swmm-api 的雨水管理模型
- 多进程计算: 支持批量 inp 文件并行处理
- 现代化UI: 基于 Vue 3 + Element Plus 的桌面应用界面
- 跨平台支持: 支持 Windows、macOS 和 Linux 系统
- RESTful API: 提供标准化的 HTTP 接口
🏗️ 项目结构
swmm/
├── app.py # Python Flask后端API服务
├── electron/ # Electron桌面应用
│ ├── src/
│ │ ├── renderer/ # Vue前端界面
│ │ ├── main/ # Electron主进程
│ │ └── preload/ # 预加载脚本
│ └── package.json # 前端依赖配置
├── backup/ # 备份代码(已废弃)
├── pyproject.toml # Python项目配置
└── README.md # 项目说明文档
📋 系统要求
- Python: 3.12.11
- Node.js: 22.0.0+
- 操作系统: Windows 10+, macOS 10.15+, Ubuntu 18.04+
🛠️ 安装说明
1. 安装Python后端
使用 uv 包管理器
uv sync
2. 安装前端依赖
使用 pnpm 包管理器
cd electron
pnpm i
🚀 使用方法
启动桌面应用
后端服务将自动在 http://127.0.0.1:9700 启动
cd electron
pnpm dev
打包服务端文件
在项目根目录
pyinstaller .\app.py -F --clean --distpath .\electron\resources\server\ -y
构建可执行文件
cd electron
# Windows
pnpm build:win
# macOS
pnpm build:mac
# Linux
pnpm build:linux
🔌 API接口
运行SWMM模拟
POST /run_swmm
请求体示例:
{
"inps": [
{
"name": "项目1",
"file": "INP文件内容..."
},
{
"name": "项目2",
"file": "INP文件内容..."
}
]
}
响应示例:
{
"code": 0,
"data": [
{
"name": "项目1",
"raw": "..."
}
],
"message": "success"
}
🧩 技术栈
后端
- Flask: Web框架
- pyswmm: SWMM Python接口
- swmm-api: SWMM文件处理库
- multiprocessing: 多进程支持
前端
- Electron: 跨平台桌面应用框架
- Vue 3: 前端框架
- Element Plus: UI组件库
- TypeScript: 类型安全
- UnoCSS: 原子化CSS框架
📦 依赖管理
- Python: 使用uv包管理器,支持阿里云镜像源
- Node.js: 使用npm/pnpm管理依赖
🔧 开发说明
代码检查
cd electron
# TypeScript类型检查
pnpm typecheck
# ESLint代码检查
pnpm lint
项目配置
pyproject.toml: Python项目配置和依赖electron/package.json: 前端项目配置electron/electron-builder.yml: Electron构建配置
📝 许可证
本项目暂未开源
注意: 本项目基于 EPA SWMM5 模型,适用于城市雨水管理和海绵城市建设相关应用场景。