Commit Graph
6 Commits
Author SHA1 Message Date
Trae Assistant b99cfa4d9f feat: 新增四小时核销批次撤回审计与定时备份管理页
Deploy to Server / deploy (push) Successful in 1m57s
2026-10-07 01:04:55 +08:00
Trae Assistant ef73970930 feat: 新增「四小时导出」核销功能
Deploy to Server / deploy (push) Successful in 1m58s
- 数据库: hours 表新增 exported_hours 字段(默认 0),支持部分核销与多次核销
- 后端: 新增 /export/four-hour/preview 预览接口与 /export/four-hour/confirm 事务确认接口
- 分配算法: 按部员累计未核销 ≥ 4h 筛选;单活动本次最多计 4h,超出标记「截断」;按活动时间正序抵扣
- 前端: 新增独立管理页面 FourHourExport,支持矩阵/平铺/汇总三视图、Excel/图片导出、核销确认
- 导航: 侧边栏新增「四小时导出」菜单项,图标使用新增 IconFourHour/IconCheck SVG
2026-10-07 00:45:14 +08:00
Trae Assistant 51b27bdfd4 feat: 管理台直接对部员加义工时(必填原因,独立多条记录)
Deploy to Server / deploy (push) Successful in 1m41s
- schema.sql + db/index.ts 迁移:hours 表移除 UNIQUE(activity_id,user_id)
  约束,改由 id 自增主键唯一定位;启动时检测到旧结构会自动
  RENAME+重建表+INSERT 搬迁历史数据;外部 FK pragma 仍生效
- hours.ts batch 接口:为兼容去掉 UNIQUE 后的行为等价,改成
  『先 DELETE 旧行 + 再 INSERT 新行』,同人同活动仍为一行覆盖语义
- 新增 POST /hours/direct-add:
  · items = [{user_id, hours, reason}],每条记录前置校验(uid 存在、
    hours>0、reason 非空),错误以分号拼接返回
  · 首次调用自动创建活动「【补录】直接加义工时长」(start/end
    2024-01-01 ~ 2099-12-31)作为虚拟承载活动,后续复用
  · 全事务 INSERT,每次加时独立写入多行(不合并)
  · 响应:{ ok, added, total_hours, results:[{class,name,...}], direct_add_activity_id }
- api/index.ts hoursApi.directAdd:新增带完整返回类型签名的 TS 封装
- Users.tsx 双入口:
  · 工具栏:选中部员后与『批量删除』并列,出现『批量加义工时(N)』
    主按钮 → 打开共用 Modal 一次加多人
  · 部员详情弹窗:「累计时长」卡片独立加『加义工时』小按钮,
    点后复用同一表单只为当前人录 1 条
- 共用 Direct Add Modal:
  · 顶部说明卡(每条原因独立保存;挂在【补录】活动;勾选人名 chip 列表)
  · 时长输入:number,min=0.1 step=0.1,前端校验 >0
  · 原因输入:textarea 必填,标红字星号,字数计数,提交前 trim 非空校验
  · 提交 loading 锁按钮;成功 toast 显示前 5 人名字 + 总人数 + 总小时;
    然后 load() 刷新列表累计时长列,若详情弹窗开着自动重新拉详情
2026-10-05 13:44:44 +08:00
Trae Assistant 30021d7b46 feat: 统一全链路时区为 UTC+8 (Asia/Shanghai)
Deploy to Server / deploy (push) Successful in 1m36s
- schema.sql created_at DEFAULT 改为 datetime(now,+8 hours)
- Dockerfile runtime 安装 tzdata ENV TZ=Asia/Shanghai 并软链 /etc/localtime
- docker-compose.yml 挂载宿主机 localtime 并传 TZ=Asia/Shanghai
- server index.ts 入口设置 process.env.TZ
- client utils/export 新增 utc8Now/utc8Input/utc8DateStamp/utc8DateTimeStamp
- Activities 默认活动开始/结束时间改用 UTC+8
- 导出文件名日期戳和报告生成时间统一 utc8DateStamp/utc8DateTimeStamp
2026-10-05 09:09:01 +08:00
Trae Assistant f42121d0bb feat: 部员多工作组归属 + 批量添加功能
Deploy to Server / deploy (push) Successful in 1m59s
- 数据库:新增 user_groups 多对多关联表,启动时自动迁移旧 group_id 数据
- 后端 users:所有查询聚合多工作组信息,增删改接口支持 group_ids 数组;新增 POST /users/batch 批量添加接口(事务+逐行错误反馈)
- 后端 export/hours/activities:全面兼容多工作组关联查询
- 前端 Users:新增/编辑改为工作组多选复选框;新增批量添加模态框(粘贴解析+实时校验表+提交汇总)
- 前端列表/详情:工作组以多标签形式展示,搜索支持工作组名称
2026-10-05 08:08:15 +08:00
Trae Assistant 25b2b8f381 feat: 初始化义工时长管理系统
- 管理台:活动设置、时长登记、用户管理、数据导出(Excel/PNG)
- 用户端:姓名查询个人义工时长与活动记录
- 技术栈:React + Vite + TailwindCSS / Node.js + Express + sql.js (SQLite)
- 支持 Docker 部署,附带 Gitea Actions 自动部署工作流
- 响应式界面,兼容移动端与 PC 端
- 默认管理员账号:admin / admin123
2026-10-04 18:06:24 +08:00