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 模型,适用于城市雨水管理和海绵城市建设相关应用场景。

Please wait...
Page is in error, reload to recover