工时计时
鼠标悬浮左侧“计时”条目时,在侧栏右侧打开与“API 余额”相同菜单样式的浮层,四行两列:第一行「计划上班 / 上班」,第二行「计划下班 / 下班」,第三行「今日工时 / 月均工时」,第四行「本月迟到率 / 本周迟到率」,底部是上班、下班快捷打卡按钮。点击浮层外任意位置(包括“计时”条目本身)或按 Esc 关闭;点击快捷打卡按钮后保存记录并关闭浮层。
时间与提醒(全部可配置)
所有判定时间都能在面板“设置”里改,默认值如下:
| 设置项 | 默认 | 作用 |
|---|---|---|
| 计划上班时间 | 09:00 | 显示计划班次;未打卡时侧栏提示 |
| 计划下班时间 | 18:00 | 预计下班时间、超时倒计时的基准;某天可在面板里单独覆盖 |
| 迟到判定时间 | 10:00 | 晚于该时间上班记为迟到(只统计周一至周五) |
| 超时提示时间 | 19:30 | 过了该时间,侧栏“计时”条目红色呼吸底色 |
| 下班提示时间 | 20:00 | 过了该时间,会话顶部出现打卡提醒条 |
| 下班提醒条 | 开启 | 关掉后超过下班提示时间也不再显示提醒条 |
| 下班提醒条文案 | 当前已免费搬 {time}, | 提醒条正文,{time} 会替换成已过时长 |
| 超时爆闪间隔 | 5 分钟 | 超过预计下班后每隔这么久短促爆闪一次(1–60) |
| 超时爆闪提示文案 | 已超过预计下班时间,请及时打卡。 | 爆闪时通知中心显示的正文(最多 120 字) |
上班打卡、下班打卡和当日计划下班均可手动编辑;时间以 24 小时制显示。未单独设置时,预计下班按全局“计划下班时间”计算。
“设置”默认收起,点标题展开后修改;改动先留在本地草稿,点保存设置才写入,保存成功会弹出 toast 提示。未保存时标题旁会显示“未保存”。
工时与平均工时
累计工时按上班打卡至当前时间或下班打卡的经过时间计算,不扣除休息时间。
- 平均工时 = 该月已完成工时的总时长 ÷ 该月已完成工时天数(有上班也有下班打卡)。当天还没下班时,实时工时计入“总工时”,但不参与平均,避免上午把平均拉低、下班又突然跳高。
- 面板顶部四张卡:今日累计工时、预计下班倒计时、月平均工时、年平均工时。
- 迟到天数只统计当天完整填写上下班时间的日期,未完成的日期不计入迟到分母。
- 迟到率只按工作日统计:分母是已完成工时的工作日天数,周末打卡照常记工时,但不计入迟到天数与迟到率。迟到天数后面括号里的百分比就是该率。
三种记录视图
- 日历:按月显示日历网格,每天显示工时与状态(迟到/准时/进行中);周六、周日浅灰底色,法定节假日显示假期名并加暖色底,调休上班日标「班」。点击某天在下方展开该日详情:右上角「收起」关闭,点「编辑」(或双击任意时间)进入编辑,改完点「保存」提示保存成功。
- 年视图:12 个月卡片,每张显示该月“平均/天”、总工时、出勤天数、迟到天数,并列出具体迟到日期;点击某月切换到该月日历详情。
- 列表:按月表格逐条显示并编辑上班、计划下班、下班时间。
视图之间可随时切换,“今天 / 今年”按钮回到当前时间。
法定节假日
内置 2025–2026 年国务院办公厅公布的放假安排:节假日按非工作日处理(不计迟到、不进迟到率分母),调休上班日(周末补班)按工作日处理。2027 年起的新安排需要更新代码里的假期表。
数据保存位置
打卡记录与所有设置默认只保存在本机浏览器的 localStorage(键 work-hours:data:v1),不上传任何服务器。需要备份或换机时,可在“设置”里“导出配置”得到 JSON 文件,再用“导入配置”恢复;“恢复默认时间”只重置设置,不删除打卡记录。
安装
使用 Harness plugin_manager 的 install_bundle 指向本目录。Host 端插件重新启用或重启 Harness 后生效;客户端刷新页面即可。
调试
面板底部的“调试模式”可分别预览下班倒计时、超时爆闪、超时红色提示和下班提醒条。每次只运行一个 case;点击当前 case 的“关闭”即可清除模拟并恢复正常模式,预览不会修改打卡记录。
超时爆闪每次触发时,同时调用通知中心插件新增一条“超时提醒”(正文取自定义文案),并尝试显示系统通知;若系统通知不可用,通知中心会显示应用内横幅。通知仅在每个配置间隔的爆闪周期开始时触发一次。
测试
node test/logic.test.mjs
覆盖默认值与非法值回退、旧数据迁移、总工时/平均工时/迟到统计、进行中当天、缺下班打卡、年视图汇总、导入校验与缓存失效。
No comments yet. Be the first to write one.