Trae Assistant 6250edb639
Deploy to Server / deploy (push) Successful in 1m35s
feat: 新增总合汇总导出 + 预览 KPI 卡片 + 独立总表 xlsx 按钮 + 管理台返回首页
- 管理台侧边栏 Layout:最后新增「返回首页」按钮(Home 图标 + navigate(/)),与 NavLink 菜单项视觉保持一致
- 数据导出 Excel(全部):
  * 新首 sheet「📌总合汇总」:顶行 6 条 KPI(部员/活动/累计时长/人次/人均/工作组分布)+ 分隔 + 全部时长明细汇总压缩版(每行一行登记以指标|数值|说明三列合并展示)
  * 新增第二 sheet「总合明细(平铺)」:最细粒度 11 列(序号/班级/姓名/义工号/工作组/活动名/活动开始/活动结束/时长/备注/登记时间)
- 独立导出按钮「一键总表 xlsx」:产出精简版总表 xlsx(文件名:义工时长-总合汇总-YYYY-MM-DD.xlsx),包含 4 个 sheet:📌数据总览 KPI + 工作组分布 Top 排行 + 总合明细(平铺全字段) + 部员名册 + 活动列表
- 预览区最上方新增 2 个模块:
  * 00 关键数据总览(KPI):5 张渐变色 KPI 卡(部员/活动/累计时长/人次/人均),响应式 2/3/5 栅格(手机 2 列平板 3 列桌面 5 列)
  * 00+ 总合总表:10 列 MiniTable(含义工号、时长、登记时间),顶部加灰色小字说明可筛选/溯源/核对
- 工具栏按钮扩容:生成预览 / 一键总表 xlsx / 导出 Excel(全部) / 导出为图片,四个按钮按语义分层
- 移动端适配:KPI 栅格 grid-cols-2 → sm:cols-3 → md:cols-5,间距分档 gap-2.5/3.5;卡片 padding p-3 md:p-4;字号 text-xl md:text-2xl 分档
- build 通过
2026-10-05 09:42:23 +08:00
2026-10-04 18:06:24 +08:00

义工时长管理系统

功能概述

  • 管理台:活动设置、义工时长登记、用户管理、数据导出(表格/图片)
  • 用户端:输入姓名查询个人参与活动及累计义工时长
  • 响应式:同时适配移动设备与 PC 端

技术栈

  • 前端:React 18 + Vite 5 + TypeScript + TailwindCSS 3
  • 后端:Node.js + Express + TypeScript
  • 数据库:SQLite 3 (better-sqlite3)
  • 部署:Docker + Gitea Actions 自动部署
  • 域名:https://volunteer.bzw-hheb.top

初始管理员账号

  • 用户名:admin
  • 密码:admin123

首次登录后请立即修改密码。

本地开发

# 安装后端依赖
cd server && npm install

# 安装前端依赖
cd ../client && npm install

# 启动后端(端口 3001)
cd server && npm run dev

# 启动前端(端口 5173,代理 /api 到 3001)
cd client && npm run dev

Docker 本地运行

docker compose up -d --build

访问 http://localhost:3000

部署配置(Gitea Secrets)

在仓库 Settings -> Secrets 中配置:

名称 说明
SSH_HOST 服务器 IP/域名
SSH_PORT SSH 端口(默认 22)
SSH_USER SSH 用户名
SSH_PRIVATE_KEY SSH 私钥(对应服务器上的公钥需加入 authorized_keys)

数据持久化

SQLite 数据库文件位于容器 /app/server/data/volunteer.db,docker-compose.yml 中已配置为 bind mount 到 ./server/data。

S
Description
No description provided
Readme
664 KiB
Languages
TypeScript 98.8%
CSS 0.6%
Dockerfile 0.4%
HTML 0.2%