airpredict/README.md

63 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 室内装修工程污染物预测系统(复刻版)
基于原 [indoorhealthair.com](https://indoorhealthair.com/iapip-web) 功能复刻。全栈 TypeScript。
## 技术栈
| 层 | 选型 |
|---|---|
| 前端 | Vue3 + Vite + Ant Design Vue + Pinia + Vue Router |
| 后端 | NestJS + Prisma |
| 数据库 | PostgreSQL |
| 包管理 | pnpm 单仓monorepo |
## 目录结构
```
apps/
api/ NestJS 后端
prisma/schema.prisma 数据模型
prisma/seed.ts 种子数据(组织 + 公共材料)
src/auth/ 登录鉴权 (JWT)
src/materials/ 材料库接口
web/ Vue3 前端
src/pages/ 页面(登录/首页/材料库/模板库/历史)
src/layouts/ 顶部导航布局
src/api/ 接口封装
src/stores/ Pinia 状态
packages/
shared/ 前后端共享:污染物/标准/枚举 + 预测引擎
research/ 对原站的功能抓取(截图+脚本,仅供参考)
```
## 快速开始
```bash
# 1. 安装依赖
pnpm install
# 2. 配置数据库连接
cp apps/api/.env.example apps/api/.env
# 编辑 .env填入 DATABASE_URL
# 3. 建表 + 种子数据
pnpm db:migrate # 创建数据库表
pnpm db:seed # 写入组织(YPJKKJ/CBMA123456) + 示例材料
# 4. 启动(前后端并行)
pnpm dev
# API: http://localhost:3000/api
# Web: http://localhost:5173 登录账号 YPJKKJ / CBMA123456
```
## 开发路线图
- [x] **阶段 0** 地基monorepo、共享域、登录、布局导航
- [x] **阶段 1** 数据底座:数据模型、材料库接口、种子数据
- [x] **阶段 2** 材料库 + 模板库(收藏、自建库 CRUD、新建材料表单
- [x] **阶段 3** 项目配置核心(新建项目、空间抽屉、选材/预计算、生成报告)
- [ ] **阶段 4** 预测引擎(接入标定散发公式、贡献率、评级)
- [ ] **阶段 5** 报告 + 历史记录(生成/查看/复用)
- [ ] **阶段 6** 联调打磨、部署
## ⚠️ 待补充的关键资产
1. **散发模型公式**`packages/shared/src/prediction.ts` 的 `emissionRate()` 目前为占位实现,需替换为你已标定的公式。
2. **材料检测数据**`apps/api/prisma/seed.ts` 中材料散发参数Y0/Yp/B为占位值需导入真实实验室检测数据。
3. **国标限值**`packages/shared/src/pollutants.ts` 中 GB39126-2020 / GB-T18883-2022 限值为草拟值需按官方标准核对GB50325-2020 已按原站抓取)。