2.5 KiB
2.5 KiB
室内装修工程污染物预测系统(复刻版)
基于原 indoorhealthair.com 功能复刻。全栈 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/ 对原站的功能抓取(截图+脚本,仅供参考)
快速开始
# 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
开发路线图
- 阶段 0 地基:monorepo、共享域、登录、布局导航
- 阶段 1 数据底座:数据模型、材料库接口、种子数据
- 阶段 2 材料库 + 模板库(收藏、自建库 CRUD、新建材料表单)
- 阶段 3 项目配置核心(新建项目、空间抽屉、选材/预计算、生成报告)
- 阶段 4 预测引擎(接入标定散发公式、贡献率、评级)
- 阶段 5 报告 + 历史记录(生成/查看/复用)
- 阶段 6 联调打磨、部署
⚠️ 待补充的关键资产
- 散发模型公式:
packages/shared/src/prediction.ts的emissionRate()目前为占位实现,需替换为你已标定的公式。 - 材料检测数据:
apps/api/prisma/seed.ts中材料散发参数(Y0/Yp/B)为占位值,需导入真实实验室检测数据。 - 国标限值:
packages/shared/src/pollutants.ts中 GB39126-2020 / GB-T18883-2022 限值为草拟值,需按官方标准核对(GB50325-2020 已按原站抓取)。