b9f41191ab115ae2550bcb61518f7fbfa67485df
- 新增"查下月"按钮(getCustomMonthRange(-1)) - 按钮按逻辑排列:查当下 → 查下月 → 查上月 → 查上上月 → 查上上上月 - 按钮 hover 时颜色变亮 + 底部淡白底线,增加 transition 过渡 - 增大 padding 到 14px,按钮间距更舒适 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
FM-OHS
复旦微加班时间统计 —— 一个运行在金蝶 EAS HR 考勤页面上的 Tampermonkey 用户脚本,自动计算并显示加班工时。
功能
- 加班自动计算:工作日按 17:20 后计算,非工作日(周末/节假日)按全天计算
- 内置节假日数据库:根据工作日数据自动识别调休日、法定节假日
- 多维度查询:支持当月、上月、当周等一键查询
- 结果直显:加班时数直接写入考勤表格,非工作日绿色高亮
快速上手
1. 安装脚本管理器
任选其一:
- Tampermonkey(推荐)
- 脚本猫
2. 安装脚本
前往 Greasy Fork - 复旦微加班时间统计 点击安装。
3. 使用
打开金蝶 EAS HR 考勤页面,菜单栏会自动出现 6 个按钮:
| 按钮 | 功能 |
|---|---|
| 统计加班时间 | 直接计算当前表格中的加班工时 |
| 查当月 | 查询当月考勤周期(21 日至次月 20 日) |
| 查上月 | 查询上月考勤周期 |
| 查上上月 | 查询两个月前的考勤周期 |
| 查上上上月 | 查询三个月前的考勤周期 |
| 查当周 | 查询当周(周一至周日) |
每年更新
节假日数据每年需要更新一次。API 每天限 5 次调用,因此设计为一年调用一次后持久化。
前置条件
- Python 3.x
requests库:pip install requests
更新步骤
# 1. 抓取新年节假日数据(修改 update.py 中的 year 参数为目标年份)
python update.py
# 2. 合并到数据库并自动构建 main.js
python comp_json.py
# 3. 将生成的 main.js 内容更新到 Greasy Fork 或手动安装到 Tampermonkey
comp_json.py 会自动将新数据合并到 data.json,然后调用 build.py 生成包含完整数据的 main.js。
开发
项目结构
FM-OHS/
├── main.template.js # 脚本代码模板(~300 行,可读可维护)
├── main.js # 构建产物,由 build.py 生成(提交到 Greasy Fork)
├── data.json # 节假日数据(唯一数据源)
├── build.py # 构建脚本:将 data.json 注入模板 → main.js
├── update.py # 从 API 抓取年度节假日数据
├── comp_json.py # 合并新数据到 data.json 并自动构建
└── holidays_2026.json # 2026 年原始 API 响应数据
修改代码
- 编辑
main.template.js(不需要碰main.js) - 运行
python build.py生成main.js - 在浏览器中加载
main.js验证
数据格式
data.json 中的每条记录:
{
"year": 2026,
"date": 20260101,
"week": 4,
"workday": 1,
"holiday": 88
}
关键字段:workday(1 = 工作日,2 = 非工作日),date(YYYYMMDD 格式)。
License
MIT
Languages
JavaScript
99.5%
Python
0.5%