Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 
 

4.8 KiB

北京维康慈善基金会官网项目

项目概述

这是北京维康慈善基金会官方网站项目,基于 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 必须使用完整闭合标签,不能使用自闭合:
    • 正确:<el-table-column prop="id" label="ID" width="60"></el-table-column>
    • 错误:<el-table-column prop="id" label="ID" width="60" />
  • Vue 3 使用 CDN 引入时,delimiters 设置为 ['${', '}'] 避免与 Nunjucks 冲突
  • Element Plus 组件使用 ElementPlus.ElMessageElementPlus.ElMessageBox

路由规范

  • 前端页面跳转 (window.location.href<a 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 自动修复

常用命令

# 开发环境启动
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 优化

生成说明

  • 无特殊要求,请使用中文回复
  • 无特殊要求,不要生成说明文档