Trae Assistant
|
0d1622d455
|
fix: 部员详情参与活动数据没对齐和补录时间显示问题
Deploy to Server / deploy (push) Successful in 1m45s
- 详情 activities 排序改为按登记时间倒序,新增 reg_at 字段
- formatDateRange 同一天合并显示,字符数减半避免被截断
- DataTable 给活动名/时间/时长列显式宽度,时间列加 pl-3 留白防切
|
2026-10-05 14:15:50 +08:00 |
|
Trae Assistant
|
cc7857e009
|
fix: 直接加义工时的补录活动时间改为真实提交当天(不再是 2024-01-01 假时间)
Deploy to Server / deploy (push) Successful in 1m40s
- hours.ts POST /direct-add:
· 不再复用单一『【补录】直接加义工时长』活动(之前 start_time
硬编码 2024-01-01 00:00 会在所有活动列表/详情里显示错时间)
· 改为每次提交取 SQLite datetime('now','+8 hours') 真实 UTC+8 时刻,
活动标题按日期拼接:『【补录】YYYY-MM-DD 直接加义工时长』
· start_time / end_time 都设为提交这一刻的 YYYY-MM-DD HH:MM,
同一日内多次提交会复用同日期活动;不同日期自动建独立活动
· 响应额外返回 direct_add_activity_title / direct_add_activity_time
便于前端以后 toast 里显示
- 新增容错:last_insert_rowid() 取不到活动就 ROLLBACK + 返回 500,
防止 hours 行悬挂到无效 activity_id
|
2026-10-05 13:55:18 +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
|
dd2fe86998
|
fix: 活动矩阵预览备注卡片被 sticky 列遮挡的布局修复
Deploy to Server / deploy (push) Successful in 1m38s
- 矩阵单元格备注卡增加 mx-auto + max-w-[88%] 左右留白
(避免靠左侧的第一个活动列备注贴 td 左边缘时,被 sticky 义工号列的背景遮住首字)
- break-all → break-words,中文断行更自然
- 背景不透明化(bg-white/95)、边框对比度微提高(border-gray-200/80)
加轻微阴影,区分备注卡与交替行底色
|
2026-10-05 10:17:17 +08:00 |
|
Trae Assistant
|
b145cbd167
|
fix: 活动矩阵备注修复 + 时长统一保留 1 位小数 + Excel 导出自定义样式
Deploy to Server / deploy (push) Successful in 1m37s
- 后端 activity_matrix 新增 _remarks 映射,不再依赖 hours 数组独立哈希
(避免 include_hours=false 时矩阵备注全丢)
- 前端预览矩阵 & Excel 矩阵 & 一键总表统一直读 u._remarks[activityId]
单元格格式:时长(1位) + 换行 + 「备注:xxx」
- 全局 toFixed(2) → toFixed(1):
· Export.tsx 明细/MiniTable/矩阵/KPI
· Hours.tsx 批量设置提示/Excel 导出/卡片汇总
· Users.tsx 列表累计时长/详情卡片/活动明细
· user/Dashboard.tsx 累计时长卡片/活动明细表
- Excel 导出自定义样式(utils/export.ts):
· 表头主题色 #275354 填充 + 白字 + 加粗 + 居中
· 首行冻结(姓名+义工号两列粘性 xSplit=2)+ 整表 autofilter
· 全列列宽自适应(按表头+前 2000 行内容最大换行宽度,关键字段保底)
· 矩阵单元格居中 + 数值格式 0.0 + wrapText 备注换行
· 交替行底色 ALT_ROW=#F7FAFA,总时长列字加粗主题色 + 浅底色 #EDF7F7
· 行高按每行最大换行数量线性放大(16+(n-1)*14,最低 18)
· 所有实体单元格补空值保留边框,避免边角缺失
· XLSX.write 启用 cellStyles=true;MIME 改为标准 openxmlformats-officedocument
- 矩阵 sheet 通过 hint.matrixColStart/End 精确识别矩阵单元格区间启用数值格式
- 修复 doExcel() sheets 数组类型声明过窄(增加 hint 可选字段)
|
2026-10-05 10:12:46 +08:00 |
|
Trae Assistant
|
4df87b4576
|
fix: 活动矩阵导出每单元格追加备注 + 移除 KPI
Deploy to Server / deploy (push) Successful in 1m36s
|
2026-10-05 09:49:58 +08:00 |
|
Trae Assistant
|
6250edb639
|
feat: 新增总合汇总导出 + 预览 KPI 卡片 + 独立总表 xlsx 按钮 + 管理台返回首页
Deploy to Server / deploy (push) Successful in 1m35s
- 管理台侧边栏 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 |
|
Trae Assistant
|
7b5f7d7226
|
fix: 导出报告活动矩阵「总时长」单元格移除 h 单位后缀(仅保留数值)
Deploy to Server / deploy (push) Successful in 1m36s
|
2026-10-05 09:34:11 +08:00 |
|
Trae Assistant
|
a8c1604bec
|
fix: 所有导出(Excel + 预览图片/打印)全部补齐义工号列
Deploy to Server / deploy (push) Successful in 1m38s
- Export.tsx 数据导出报告修复 3 个缺义工号的 MiniTable:
* 03 全部时长明细:列头改为「序号/班级/姓名/义工号/工作组/活动/时长/备注」(原为只有班级+姓名,缺关键列)
* 04 部员总时长排行:新增义工号列(排名/班级/姓名/义工号/工作组/活动数/累计时长)
* 05 部员参加活动:卡片头部增加独立 tag 显示义工号(白底半透明 rounded 标签),与班级/姓名/工作组并排;活动次数右对齐
- 已核实 Excel 6 张 sheet (部员/时长/部员累计/部员活动明细/活动时长矩阵) 以及 Hours 活动独立导出 Excel/图片 均已原本包含义工号,无需改;后端 6 条 SQL 均已 SELECT u.volunteer_no
- build 通过
|
2026-10-05 09:25:59 +08:00 |
|
Trae Assistant
|
5ffcb533ff
|
feat: 义工时长登记页新增批量勾选设置时长功能
Deploy to Server / deploy (push) Successful in 1m37s
- Hours.tsx 参与者列表首列新增复选框:表头全选/半选态(indeterminate)、每行切换选中;选中行整行高亮 primary-50/70
- 工具栏按钮拆分:「全表填时长」原逻辑保留(prompt 全量填);新增「批量设置(选中N)」按钮,勾选 1-N 人后可用
- 批量设置弹窗(max-w-lg):统一小时数必填;备注可勾选同时统一设置后启用;确认后仅覆盖选中人员,顶部显示绿色提示提醒请点击保存登记写入
- 切换活动或重新加载时清空选择集合;批量设置值仅更新前端内存,实际写库仍走原 save→hoursApi.batch
- Icons.tsx 新增 IconBatchSet 图标(勾选列表+批量)
- build 通过
|
2026-10-05 09:22:28 +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
|
7f9bf15b7d
|
fix(db): 修复 sql.js lastInsertRowid 误当函数调用导致 userId=0 工作组写入失败
Deploy to Server / deploy (push) Successful in 1m36s
- wrapStmt.run(): 原 lastInsertRowid?.() 误将属性当函数调用导致 undefined→0,现优先直接读取属性(number/bigint),其次调用函数,最后 SELECT 兜底
- initDb: 在 schema 执行前强制 PRAGMA foreign_keys = ON,修正 pragmaCompat 正则判断导致 FK 默认关闭
- pragmaCompat 改为通用 pragma 表达式执行,不再只匹配 foreign_keys=ON
- 根因链条:lastInsertRowid() 调用失败→返回 0→user_groups(0,gid) 全部相同 PK→INSERT OR IGNORE changes=0→40 条数据工作组全 0 写入
- build 通过
|
2026-10-05 08:53:58 +08:00 |
|
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 |
|