# 北京维康慈善基金会官网项目 ## 项目概述 这是北京维康慈善基金会官方网站项目,基于 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 优化 ## 生成说明 - 无特殊要求,请使用中文回复 - 无特殊要求,不要生成说明文档