Commit Graph
24 Commits
Author SHA1 Message Date
Trae Assistant 49985a96ab fix: 批量添加工工作组调试回显 + 完整验证写入
Deploy to Server / deploy (push) Successful in 1m37s
- 后端 /users/batch 返回每条成功记录的 groups_written/groups_expected/group_ids_out;失败记录返回 group_ids_seen/count
- 前端 submitBatch:console.log 打印发送 payload 和响应;弹窗汇总工作组实际/期望写入数;任何异常的行都显示后端实际解析出的 group_ids_out,失败行同时显示后端收到的 group_ids_seen
- 本地模拟后端 sql.js 写入 user_groups 100% 正确(场景A/B测试均 changes=1,聚合查询正确),此提交部署后通过控制台和弹窗即可精确定位问题在哪一跳(前端发送 vs 后端解析 vs 数据库写入)
- npm run build 通过
2026-10-05 08:46:25 +08:00
Trae Assistant f845d6b6a4 fix: 修复批量删除 undefined/失败问题(POST 替代 DELETE body)
Deploy to Server / deploy (push) Successful in 1m38s
- 批量删除改走 POST /users/batch-remove(稳定保证 body 可被 Express 解析),同时增强 DELETE /batch 兼容 query string 回退
- 前端 usersApi.batchRemove 改用 POST 请求;批量删除函数新增 ok 标志位校验 + ?? 0 防 undefined,catch 分支带前缀明确提示失败原因
- npm run build 通过
2026-10-05 08:35:24 +08:00
Trae Assistant 6d5932ff87 refactor: 管理登录页移除默认账号密码预填与文案提示
Deploy to Server / deploy (push) Successful in 1m38s
- 用户名初始值由 admin 改为空
- 删除页脚「默认账号:admin / admin123」文案
2026-10-05 08:32:27 +08:00
Trae Assistant 5e2a6adf06 fix: DataTable title 类型扩展支持 ReactNode 以兼容复选框表头
Deploy to Server / deploy (push) Successful in 1m36s
- DataTable Column.title 类型由 string 扩展为 string | ReactNode
- 与 Users 列表的全选表头(复选框+计数)兼容,修复 tsc 编译错误 TS2322
- npm run build 通过(tsc -b + vite build exit 0)
2026-10-05 08:30:47 +08:00
Trae Assistant 48ac08d19d fix: 修复批量导入义工号/工作组丢失 + 新增批量删除
Deploy to Server / deploy (push) Failing after 43s
- 批量解析:移除义工号强制纯数字校验(原 volunteerLooksLikeNo 逻辑错误导致 VOL-003、2024-A 等全部置空);改为列数驱动:3列时智能探测是否工作组命中,4+列保留义工号原值、剩余段统一合并为工作组解析
- 后端 batch:user_groups 插入语句改为事务内按用户编译;义工号判断改为 null/undefined 严格检查,避免真值判断丢弃空字符串或 0 开头的值
- 新增 DELETE /users/batch:事务性批量删除部员(含 user_groups/hours 级联),返回实际删除 count
- 前端列表新增复选框列(表头 indeterminate 半选态),选中 1+ 条后工具栏显示「删除选中(N)」红色按钮,确认弹窗二次校验
2026-10-05 08:27:34 +08:00
Trae Assistant 13dbff885d fix: 修复批量添加部员时工作组识别及列表排序问题
Deploy to Server / deploy (push) Successful in 1m51s
- 批量解析:智能区分字段分隔符(Tab优先,否则中英逗号/分号),避免竖线误伤;支持工作组被切到多个字段后自动合并
- 工作组匹配:新增多种分隔符与忽略空格匹配;当义工号字段非纯数字且命中工作组时自动识别为工作组(兼容3列格式:班级,姓名,工作组)
- 列表展示:前端二次按班级locale排序(中文+数字感知)+ 姓名,与后端SQL排序互补
2026-10-05 08:18:45 +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 d62f2e2ba4 ci(deploy): 修复OCI read-only只读启动失败=compose之前/app整个挂载加了:ro,但Docker尝试创建容器子目录/app/server/data时在只读overlay层mkdir报错;改成z flag(SELinux兼容)去掉ro,让docker可在/app内创建容器内子目录结构,/opt/volunteer/data持久化db仍在外层bind mount不会丢
Deploy to Server / deploy (push) Successful in 1m28s
2026-10-05 01:07:15 +08:00
Trae Assistant 608d99bea2 ci(deploy): 修复Prepare deploy package失败=先mkdir -p完整目录树再cp;加ls校验client/server/dist和node_modules前置存在性;用cp src/x/. dst/ 代替 cp -r src/x dst避免复制层级错
Deploy to Server / deploy (push) Failing after 6m39s
2026-10-05 00:59:33 +08:00
Trae Assistant 42a5053b84 ci(deploy): 彻底修复runner上无node的PATH问题=Step0用find全系统搜索node/npm真实目录(/usr/local/bin /root/.nvm/versions/node/*/bin等),找到后写入 PATH,后续步骤所有node/npm 100%可执行;Health check失败自动打印docker ps+容器日志30行诊断
Deploy to Server / deploy (push) Failing after 1m20s
2026-10-05 00:55:57 +08:00
Trae Assistant bf0b969c9b ci(deploy): 修复PATH问题→jobs.env.PATH显式加/usr/local/bin;新增Step0 Verify tools打印node/npm version定位;Deploy同时兼容docker compose和docker-compose旧语法;Health check重试10次
Deploy to Server / deploy (push) Failing after 1s
2026-10-05 00:52:30 +08:00
Trae Assistant 1c92c7b9e8 ci(deploy): 移除Docker依赖actions/checkout@v4和shimataro/ssh-key-action,全部替换为纯shell命令(git clone + 手动写~/.ssh/deploy_key)。Set up job秒过,9步全shell执行不skipped,不需要Docker pull node镜像超时
Deploy to Server / deploy (push) Failing after 0s
2026-10-05 00:48:29 +08:00
Trae Assistant cc811edbd6 ci(deploy): runs-on仅保留两个纯标签名(ubuntu-latest/self-hosted),完全匹配Owner级runner API返回的真实labels池=[ubuntu-latest self-hosted ubuntu-latest self-hosted],一一对应消除歧义死等
Deploy to Server / deploy (push) Canceled after 0s
2026-10-05 00:11:44 +08:00
Trae Assistant bd5122c83a ci(deploy): runs-on追加:host后缀(ubuntu-latest:host / self-hosted:host),匹配act_runner declare自动生成的真实标签池,修复queued死等不调度
Deploy to Server / deploy (push) Canceled after 0s
2026-10-05 00:04:43 +08:00
Trae Assistant 4984f4a308 ci(deploy): runs-on数组写法多标签命中(三选一),兼容instance级act_runner全局注册+仓库级注册
Deploy to Server / deploy (push) Canceled after 0s
- 写runs-on数组按顺序尝试匹配:1) 目标机已注册的全限定标签 ubuntu-latest:docker://catthehacker/ubuntu:act-22.04
- 2) self-hosted(主流act_runner实例默认标签前缀) 3) ubuntu-latest(简写)
- 三种写法覆盖99%场景,避免后续换runner标签还要改yml
- 下一commit触发Run #11,若Secrets已配置好则build+scp+compose up健康检查完成部署
2026-10-04 23:36:40 +08:00
Trae Assistant cc5c1bdbd6 ci(deploy): runs-on全限定标签名匹配仓库已注册ubuntu-latest:docker://catthehacker/ubuntu:act-22.04
Deploy to Server / deploy (push) Canceled after 0s
- 直接写完整标签字符串(含:docker://...),确保act_runner调度器100%匹配该注册标签
- 前缀匹配失败时回退到精确字符串匹配,用此写法避免Gitea UI再报「无ubuntu-latest在线运行器」
- 新commit触发Run #10,自动拉取catthehacker镜像执行workflow build+ssh deploy
2026-10-04 23:31:20 +08:00
Trae Assistant 8f48a36e4e ci(deploy): runs-on ubuntu-latest 匹配现有act_runner标签(ubuntu-latest:docker...)
Deploy to Server / deploy (push) Canceled after 1m32s
- runs-on改回 ubuntu-latest,匹配你仓库已注册的ubuntu-latest:docker://catthehacker/ubuntu:act-22.04
- act_runner匹配前缀:前的 ubuntu-latest,直接命中;镜像内含 node+ssh+curl+npm,原workflow步骤不改动
- 新commit 会触发新Run #9,若Secrets全配置则Build->SSH scp->compose up->健康检查 自动完成
2026-10-04 23:29:04 +08:00
Trae Assistant 4d26e9ef7d ci(deploy): runner标签 ubuntu-latest -> self-hosted,适配Gitea自带Actions运行器
Deploy to Server / deploy (push) Canceled after 8m15s
- 修复 Actions 报错「没有匹配 ubuntu-latest 标签的在线运行器」:runs-on: self-hosted(act_runner 默认注册标签)
- 建议 act_runner 注册时同时打 ubuntu-latest,linux,self-hosted 三标签,兼容主流 workflow
- workflow 本身逻辑不变:npm ci(native build) -> scp app+compose -> ssh compose up -d -> curl localhost:3000 健康检查
2026-10-04 23:19:14 +08:00
Trae Assistant a84a8b19ac feat(export): 新增活动时长总表(矩阵)+ 移除Logo
Deploy to Server / deploy (push) Canceled after 14m38s
- 后端 POST /api/export 新增 include_activity_matrix:部员×活动矩阵行,列=所有活动(start_time DESC排),_total尾列
- 前端 Export 新增 06 卡片「活动时长总表(矩阵)」:部员+义工号 左固定列,活动列160px宽表头显示日期副标题,值>0高亮主色+浅底,总时长bg-primary-50
- Excel 新增「活动时长总表(矩阵)」Sheet:列名=活动标题,末列总时长
- 移除Brand组件所有img Logo渲染,纯标题,减小侧栏移动端头部视觉噪音
- 前后端 tsc --noEmit exit 0 + vite build exit 0;浏览器 E2E 验证矩阵张三/校园志愿宣传活动=2.00/总时长 2.00 h
2026-10-04 23:17:19 +08:00
Trae Assistant 1a51a854a3 feat(ui): 专业风UI改造 主色#275354 + Brand系统标题统一
Deploy to Server / deploy (push) Canceled after 14m40s
- 全量替换游戏感Neo-Brutalist为政务专业风:圆角2-16px、薄灰边、柔阴影
- Tailwind主题:primary 10阶调色板 + Noto Sans SC主字体 + fade-in-up动画
- 全局CSS:浅灰F6F8F9背景 + 主色焦点环和滚动条 + card/chip工具类
- 品牌组件Brand.tsx:云图形截断防云盘旧字泄露 + 新标题组合
- 6基础组件 + 8页面:Layout深绿侧栏 Login卡片 Export去五色卡 Activities/Hours/Users 用户端Index/Dashboard
- 数据链路回归:u/2张三2h明细正确显示
- tsc无错误  vite build成功
2026-10-04 23:05:39 +08:00
Trae Assistant b4b0f8b76d fix(ci): simplify deploy docker-compose - mount /opt/volunteer/app:/app:ro directly
Deploy to Server / deploy (push) Canceled after 17m13s
2026-10-04 22:40:07 +08:00
Trae Assistant 9c7d6c1455 feat(ui): SVG图标全替换 + Neo-Brutalist主题升级 + 数据导出卡片类别勾选
Deploy to Server / deploy (push) Failing after 14m55s
2026-10-04 22:12:17 +08:00
Trae Assistant 0169f19cf8 chore: 调整 .gitignore,排除 .trae/ 与 tsbuildinfo
Deploy to Server / deploy (push) Failing after 14m55s
2026-10-04 18:07:01 +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