{"release":{"tag":{"name":"v0.4.0","path":"/TechFunWay/worklog/tags/v0.4.0","tree_path":"/TechFunWay/worklog/tree/v0.4.0","message":"发版：v0.4.0（工地单价与一键记工、一键对工、考勤表导出 Excel 与图片到 NAS）","commit":{"id":"531ad11df786a9e17a202e5821797803e9ac5317","short_id":"531ad11","title":"发版：v0.4.0（工地单价与一键记工、一键对工、考勤表导出 Excel 与图片到 NAS）","title_markdown":"发版：v0.4.0（工地单价与一键记工、一键对工、考勤表导出 Excel 与图片到 NAS）","description":"\n本次更新重点：不同工地可以设不同单价、记工按工地自动带价并支持一键记工；考勤表可按工地与任意时间段查询、一键对工，还能导出 Excel 或图片直接存到 NAS 文件夹。\n\n新增功能：\n- 工地默认日工/小时单价，同一工人可按工地单独定价，记工自动带出对应价格\n- 一键对工：按工人与时间段生成对工单，可复制中文文本发微信，也可导出 CSV\n- 考勤可按工地与自定义时间段查看，附本月/上月/近 7 天/近 30 天快捷区间\n- 考勤表可导出 Excel（考勤表/工资条/逐日明细三张表）与 PNG 图片，保存到 NAS 文件夹\n- 最近导出：查看与下载最近 100 个导出文件\n\n改进：\n- 记工页支持切换当前工地并默认上次工地，新增「一键记工」\n- 记工弹窗自动带价并标注价格来源，仍可手动改价\n- 导出目录可在系统配置中改为 NAS 共享文件夹\n\n问题修复：\n- 切换工地后记工弹窗单价与金额不更新\n- 员工账号未绑定工人档案时考勤查询、对工与导出越权\n\n体验优化：\n- 手机端汇总卡一行四列、导出弹窗一屏展示\n- 导出提示显示文件名与保存位置，Excel 按文本写入防公式注入","description_markdown":"本次更新重点：不同工地可以设不同单价、记工按工地自动带价并支持一键记工；考勤表可按工地与任意时间段查询、一键对工，还能导出 Excel 或图片直接存到 NAS 文件夹。\n新增功能：\n- 工地默认日工/小时单价，同一工人可按工地单独定价，记工自动带出对应价格\n- 一键对工：按工人与时间段生成对工单，可复制中文文本发微信，也可导出 CSV\n- 考勤可按工地与自定义时间段查看，附本月/上月/近 7 天/近 30 天快捷区间\n- 考勤表可导出 Excel（考勤表/工资条/逐日明细三张表）与 PNG 图片，保存到 NAS 文件夹\n- 最近导出：查看与下载最近 100 个导出文件\n改进：\n- 记工页支持切换当前工地并默认上次工地，新增「一键记工」\n- 记工弹窗自动带价并标注价格来源，仍可手动改价\n- 导出目录可在系统配置中改为 NAS 共享文件夹\n问题修复：\n- 切换工地后记工弹窗单价与金额不更新\n- 员工账号未绑定工人档案时考勤查询、对工与导出越权\n体验优化：\n- 手机端汇总卡一行四列、导出弹窗一屏展示\n- 导出提示显示文件名与保存位置，Excel 按文本写入防公式注入","message":"发版：v0.4.0（工地单价与一键记工、一键对工、考勤表导出 Excel 与图片到 NAS）\n\n本次更新重点：不同工地可以设不同单价、记工按工地自动带价并支持一键记工；考勤表可按工地与任意时间段查询、一键对工，还能导出 Excel 或图片直接存到 NAS 文件夹。\n\n新增功能：\n- 工地默认日工/小时单价，同一工人可按工地单独定价，记工自动带出对应价格\n- 一键对工：按工人与时间段生成对工单，可复制中文文本发微信，也可导出 CSV\n- 考勤可按工地与自定义时间段查看，附本月/上月/近 7 天/近 30 天快捷区间\n- 考勤表可导出 Excel（考勤表/工资条/逐日明细三张表）与 PNG 图片，保存到 NAS 文件夹\n- 最近导出：查看与下载最近 100 个导出文件\n\n改进：\n- 记工页支持切换当前工地并默认上次工地，新增「一键记工」\n- 记工弹窗自动带价并标注价格来源，仍可手动改价\n- 导出目录可在系统配置中改为 NAS 共享文件夹\n\n问题修复：\n- 切换工地后记工弹窗单价与金额不更新\n- 员工账号未绑定工人档案时考勤查询、对工与导出越权\n\n体验优化：\n- 手机端汇总卡一行四列、导出弹窗一屏展示\n- 导出提示显示文件名与保存位置，Excel 按文本写入防公式注入\n","message_markdown":"发版：v0.4.0（工地单价与一键记工、一键对工、考勤表导出 Excel 与图片到 NAS）\n本次更新重点：不同工地可以设不同单价、记工按工地自动带价并支持一键记工；考勤表可按工地与任意时间段查询、一键对工，还能导出 Excel 或图片直接存到 NAS 文件夹。\n新增功能：\n- 工地默认日工/小时单价，同一工人可按工地单独定价，记工自动带出对应价格\n- 一键对工：按工人与时间段生成对工单，可复制中文文本发微信，也可导出 CSV\n- 考勤可按工地与自定义时间段查看，附本月/上月/近 7 天/近 30 天快捷区间\n- 考勤表可导出 Excel（考勤表/工资条/逐日明细三张表）与 PNG 图片，保存到 NAS 文件夹\n- 最近导出：查看与下载最近 100 个导出文件\n改进：\n- 记工页支持切换当前工地并默认上次工地，新增「一键记工」\n- 记工弹窗自动带价并标注价格来源，仍可手动改价\n- 导出目录可在系统配置中改为 NAS 共享文件夹\n问题修复：\n- 切换工地后记工弹窗单价与金额不更新\n- 员工账号未绑定工人档案时考勤查询、对工与导出越权\n体验优化：\n- 手机端汇总卡一行四列、导出弹窗一屏展示\n- 导出提示显示文件名与保存位置，Excel 按文本写入防公式注入","detail_path":"/TechFunWay/worklog/commit/531ad11df786a9e17a202e5821797803e9ac5317","commits_path":"/TechFunWay/worklog/commits/531ad11df786a9e17a202e5821797803e9ac5317","tree_path":"/TechFunWay/worklog/tree/531ad11df786a9e17a202e5821797803e9ac5317","author":{"name":"Yi Wei","email":"yiwei@YideMacBook-Pro.local","username":null,"user_path":null,"enterprise_user_path":null,"image_path":"no_portrait.png#Yi Wei-","is_gitee_user":false,"is_enterprise_user":null,"widget_url":null},"committer":{"name":"Yi Wei","email":"yiwei@YideMacBook-Pro.local","username":null,"user_path":null,"enterprise_user_path":null,"image_path":"no_portrait.png#Yi Wei-","is_gitee_user":false,"is_enterprise_user":null,"widget_url":null},"authored_date":"2026-10-23T17:09:00+08:00","committed_date":"2026-10-23T17:10:19+08:00","signature":null,"build_state":null},"archive_path":"/TechFunWay/worklog/repository/archive/v0.4.0","signature":null},"operating":{"edit":false,"download":true,"destroy":false,"enterprise_forbid_zip":false},"release":{"title":"工记 v0.4.0","path":"/TechFunWay/worklog/releases/tag/v0.4.0","tag_path":"/TechFunWay/worklog/tree/v0.4.0","project_id":50559546,"created_at":"2026-10-23T22:22:19+08:00","is_prerelease":false,"description":"工记 v0.4.0\n\n本次更新重点：不同工地可以设不同单价、记工按工地自动带价并支持一键记工；考勤表可按工地与任意时间段查询、一键对工，还能导出 Excel 或图片直接存到 NAS 文件夹。\n\n新增功能\n- 工地单价：可以给每个工地设默认日工单价与小时单价，不同工地不同价格，记工时自动带出\n- 工人 × 工地单独价：同一个人在不同工地可单独定价（如 A 工地 320 元/天、B 工地 300 元/天），没有单独设置时用工地默认价或工人档案里的日薪/时薪/月薪\n- 一键对工：按工人与时间段生成对工单，逐日列出出勤与金额并附合计，可一键复制成中文对工单发给工人核对，也可下载 CSV\n- 按工地看考勤：考勤页可切换「全部工地 / 未分工地 / 具体工地」，日历、汇总与导出都只算该工地\n- 自定义时间段考勤：按起止日期查看每位工人的考勤天数、点工折合、计时、计件、休息与工钱，附本月、上月、近 7 天、近 30 天快捷区间\n- 导出 Excel 到 NAS：按整月或自定义时间段生成 Excel，含「考勤表 / 工资条 / 逐日明细」三张工作表——考勤表是姓名 × 日期的网格，工资条每人一行汇总各项工钱，逐日明细逐条列出当天出勤与金额\n- 导出考勤表图片到 NAS：月度考勤表可生成 PNG 图片保存，适合直接发微信或留存\n- 最近导出：导出弹窗内可查看与下载最近 100 个导出文件（老板 / 班组长）\n\n改进\n- 记工页可切换当前工地，新建记工默认落在该工地，并默认上次使用的工地\n- 记工页每位工人支持「一键记工」，按当前工地与生效单价直接记一个点工，不弹窗\n- 记工弹窗选工地、切换点工/点时类型时自动带出该工地该工人的生效单价，并标注价格来源，仍可手动改价\n- 点考勤日历中的某一天可直接记工，并自动带上当前工地\n- 导出目录可在「系统管理 → 系统配置 → 导出目录」改成 NAS 共享文件夹的绝对路径（默认数据目录下的 exports，图片在 pictures/ 子目录）\n- 对工单与考勤汇总、工资条使用同一套计算，避免两处数字对不上\n- 导出参数统一校验，非法参数直接提示，不会导出空表或错表\n\n问题修复\n- 修复记工弹窗切换工地后仍沿用上一个工地单价、金额不更新的问题\n- 修复员工账号未绑定工人档案时，考勤查询、对工与导出可能越权读取他人数据的问题（现在统一拒绝）\n\n体验优化\n- 导出提示显示实际文件名与保存位置：保存到 NAS 显示路径，本机下载提示文件在浏览器「下载」文件夹\n- 导出 Excel 按文本写入，以 = + - @ 开头的内容不会被电子表格当成公式执行\n- 考勤汇总卡收紧为一行四列，手机端一屏能看全；桌面表格与手机卡片双布局，长内容自动换行不截断\n- 导出弹窗在手机上一屏展示，保存、下载、最近导出与关闭入口都在屏内\n- 工地管理页直接展示默认单价，手机上也能方便维护「工人单价」\n\n安装包\n- 飞牛 fnOS：techfunway-worklog_v0.4.0_x86.fpk / techfunway-worklog_v0.4.0_arm64.fpk\n- Windows：techfunway-worklog-v0.4.0-windows-amd64.zip\n- Linux / macOS：techfunway-worklog-v0.4.0-{linux,darwin}-{amd64,arm64}.tar.gz\n- Docker：techfunways/worklog:v0.4.0（多平台合并镜像，含 linux/amd64 与 linux/arm64）；离线可用 techfunway-worklog-v0.4.0-multiarch.oci.tar\n","author":{"name":"wycto","username":"wycto","path":"/wycto","avatar_url":"https://foruda.gitee.com/avatar/1676921321825149574/588289_wycto_1605544709.png!avatar30"},"attach_files":[{"download_url":"/TechFunWay/worklog/attach_files/3476804/download/techfunway-worklog-v0.4.0-darwin-amd64.tar.gz","name":"techfunway-worklog-v0.4.0-darwin-amd64.tar.gz","cli_download_url":"https://gitee.com/TechFunWay/worklog/releases/download/v0.4.0/techfunway-worklog-v0.4.0-darwin-amd64.tar.gz","censor_failed":false,"censor_tip":null},{"download_url":"/TechFunWay/worklog/attach_files/3476809/download/techfunway-worklog-v0.4.0-darwin-arm64.tar.gz","name":"techfunway-worklog-v0.4.0-darwin-arm64.tar.gz","cli_download_url":"https://gitee.com/TechFunWay/worklog/releases/download/v0.4.0/techfunway-worklog-v0.4.0-darwin-arm64.tar.gz","censor_failed":false,"censor_tip":null},{"download_url":"/TechFunWay/worklog/attach_files/3476810/download/techfunway-worklog-v0.4.0-linux-amd64.tar.gz","name":"techfunway-worklog-v0.4.0-linux-amd64.tar.gz","cli_download_url":"https://gitee.com/TechFunWay/worklog/releases/download/v0.4.0/techfunway-worklog-v0.4.0-linux-amd64.tar.gz","censor_failed":false,"censor_tip":null},{"download_url":"/TechFunWay/worklog/attach_files/3476812/download/techfunway-worklog-v0.4.0-linux-arm64.tar.gz","name":"techfunway-worklog-v0.4.0-linux-arm64.tar.gz","cli_download_url":"https://gitee.com/TechFunWay/worklog/releases/download/v0.4.0/techfunway-worklog-v0.4.0-linux-arm64.tar.gz","censor_failed":false,"censor_tip":null},{"download_url":"/TechFunWay/worklog/attach_files/3476813/download/techfunway-worklog-v0.4.0-windows-amd64.zip","name":"techfunway-worklog-v0.4.0-windows-amd64.zip","cli_download_url":"https://gitee.com/TechFunWay/worklog/releases/download/v0.4.0/techfunway-worklog-v0.4.0-windows-amd64.zip","censor_failed":false,"censor_tip":null},{"download_url":"/TechFunWay/worklog/attach_files/3476814/download/techfunway-worklog_v0.4.0_arm64.fpk","name":"techfunway-worklog_v0.4.0_arm64.fpk","cli_download_url":"https://gitee.com/TechFunWay/worklog/releases/download/v0.4.0/techfunway-worklog_v0.4.0_arm64.fpk","censor_failed":false,"censor_tip":null},{"download_url":"/TechFunWay/worklog/attach_files/3476815/download/techfunway-worklog_v0.4.0_x86.fpk","name":"techfunway-worklog_v0.4.0_x86.fpk","cli_download_url":"https://gitee.com/TechFunWay/worklog/releases/download/v0.4.0/techfunway-worklog_v0.4.0_x86.fpk","censor_failed":false,"censor_tip":null},{"download_url":"/TechFunWay/worklog/attach_files/3476817/download/techfunway-worklog-v0.4.0-multiarch.oci.tar","name":"techfunway-worklog-v0.4.0-multiarch.oci.tar","cli_download_url":"https://gitee.com/TechFunWay/worklog/releases/download/v0.4.0/techfunway-worklog-v0.4.0-multiarch.oci.tar","censor_failed":false,"censor_tip":null},{"download_url":"/TechFunWay/worklog/attach_files/3476818/download/docker-compose.v0.4.0.yml","name":"docker-compose.v0.4.0.yml","cli_download_url":"https://gitee.com/TechFunWay/worklog/releases/download/v0.4.0/docker-compose.v0.4.0.yml","censor_failed":false,"censor_tip":null},{"download_url":"/TechFunWay/worklog/attach_files/3476819/download/docker-compose.latest.yml","name":"docker-compose.latest.yml","cli_download_url":"https://gitee.com/TechFunWay/worklog/releases/download/v0.4.0/docker-compose.latest.yml","censor_failed":false,"censor_tip":null}],"zip_download_url":"/TechFunWay/worklog/releases/tag/v0.4.0.zip","tar_download_url":"/TechFunWay/worklog/releases/tag/v0.4.0.tar.gz"}}}