# 室内装修工程污染物预测系统(复刻版) 基于原 [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 已按原站抓取)。