# 北京维康慈善基金会官网项目
## 项目概述
这是北京维康慈善基金会官方网站项目,基于 ThinkJS 3.x 框架开发。项目包含前台官网展示和后台管理系统两部分。
## 技术栈
- 后端框架:ThinkJS 3.x (Node.js)
- 模板引擎:Nunjucks
- 数据库:MySQL
- 缓存:文件缓存 (think-cache-file)
- 会话:文件会话 (think-session-file)
- 进程管理:PM2
## 项目结构
```
pap_web/
├── src/
│ ├── bootstrap/ # 启动配置 (master/worker)
│ ├── config/ # 配置文件
│ │ ├── adapter.js # 适配器配置
│ │ ├── config.js # 基础配置
│ │ ├── middleware.js # 中间件配置
│ │ └── router.js # 路由配置
│ ├── controller/ # 控制器
│ ├── logic/ # 逻辑层 (参数校验)
│ └── model/ # 数据模型
├── view/ # 视图模板 (Nunjucks)
├── www/static/ # 静态资源
└── runtime/ # 运行时文件
```
## 原型参考
项目原型位于 `pap_web_pm` 目录:
- `pap_web_pm/web/` - 前台官网原型
- `pap_web_pm/admin/` - 后台管理原型
## 功能模块
### 前台官网
| 栏目 | 子栏目 |
|------|--------|
| 首页 | Banner轮播、数据看板、药品援助公示、公益项目、新闻动态、合作伙伴 |
| 关于我们 | 基金会简介、组织架构、理事会&监事、资质证书、联系我们 |
| 公益项目 | 妇幼健康促进、"安心医"患者关爱、卫生健康促进、医疗科普公益、品牌建设与传播 |
| 党建专栏 | 党建规章、党建活动、党建学习 |
| 信息公示 | 管理制度、机构年报、审计报告、财务报告、关联方信息、项目执行报告 |
| 新闻中心 | 基金会动态、行业资讯、通知公告 |
| 联系我们 | 基本信息、关注我们、人才招聘、志愿者中心、合作申请 |
### 后台管理
- 控制台 (Dashboard)
- 内容管理 (文章、图片、文本、页面、人员)
- 数据管理 (药品援助记录、捐赠数据)
- 系统设置 (栏目管理、网站配置、用户管理、角色权限、操作日志)
## 内容类型映射
| 类型 | 说明 | 管理页面 |
|------|------|----------|
| article | 文章内容 | article-list.html |
| image | 图片内容 | image-list.html |
| text | 文本/文档 | text-list.html |
| page | 单页内容 | page-manage.html |
| person | 人员信息 | person-list.html |
| form | 表单数据 | form-data.html |
| donation | 捐赠数据 | donation.html |
| job | 招聘信息 | job-manage.html |
## 开发规范
### 前端组件规范 (Element Plus + Vue 3)
- `el-table-column` 必须使用完整闭合标签,不能使用自闭合:
- 正确:``
- 错误:``
- Vue 3 使用 CDN 引入时,delimiters 设置为 `['${', '}']` 避免与 Nunjucks 冲突
- Element Plus 组件使用 `ElementPlus.ElMessage` 和 `ElementPlus.ElMessageBox`
### 路由规范
- 前端页面跳转 (`window.location.href`、``) 加 `.html` 后缀,如 `/admin/login.html`、`/admin/dashboard.html`
- 后端 `this.redirect()` 也加 `.html` 后缀
- `router.js` 路由配置不加 `.html`
- API 接口路径不加后缀,如 `/admin/auth/login`
### 命名约定
- Controller: 小写,如 `index.js`
- Model: 小写,如 `article.js`
- View: `{controller}_{action}.html`,如 `index_index.html`
- 路由: RESTful 风格
### 代码风格
- 使用 ESLint 进行代码检查
- 运行 `npm run lint` 检查代码
- 运行 `npm run lint-fix` 自动修复
### 常用命令
```bash
# 开发环境启动
npm start
# 代码检查
npm run lint
# 生产环境部署
pm2 startOrReload pm2.json
```
## 数据库设计建议
### 核心表
- `column` - 栏目表
- `article` - 文章表
- `image` - 图片表
- `page` - 单页表
- `person` - 人员表
- `donation` - 捐赠记录表
- `medicine_aid` - 药品援助记录表
- `job` - 招聘信息表
- `form_data` - 表单提交数据表
- `user` - 管理员用户表
- `role` - 角色表
- `log` - 操作日志表
- `config` - 网站配置表
### 通用字段规范
- `is_deleted`: 软删除 (0=正常, 1=已删除)
- `status`: 状态 (1=启用, 0=停用)
- `create_by/update_by`: 创建人/修改人ID
- `create_time/update_time`: 创建/更新时间
- JSON字段存储多选值 (如 `disease_ids`, `delivery_methods`)
- 生成的sql文件放到sql文件夹
## 注意事项
1. 所有涉及金额的字段使用 DECIMAL 类型
2. 患者姓名等敏感信息需脱敏处理显示
3. 图片上传需限制大小和格式
4. 后台操作需记录日志
5. 前台页面需考虑 SEO 优化
## 生成说明
- 无特殊要求,请使用中文回复
- 无特殊要求,不要生成说明文档