工记 WorkLog

面向班组、包工头与个体用工的记工记账应用:按天、按时、计件记工,按工地自动带价并支持一键记工;新增扫码报工,工人免登录扫码只填数量、班组长审核通过才计工资;考勤可按工地与任意时间段查询、一键对工,考勤表能导出 Excel 或图片直接存到 NAS

v0.5.0

界面预览

工记工作台(v0.4.0)
工作台:本月汇总与未结算提醒(v0.4.0)
工记记工页(v0.4.0)
记工页:点工 / 点时 / 计件一次录入(v0.4.0)
工记扫码报工(v0.5.0)
扫码报工:工人免登录,只填数量(v0.5.0)
工记报工码管理(v0.5.0)
报工码:按产品 / 工人生成二维码,可打印张贴(v0.5.0)
工记报工审核(v0.5.0)
报工审核:待审记录逐条或批量确认(v0.5.0)
工记批量报工(v0.5.0)
批量报工:给整班工人集中填数量(v0.5.0)
工记考勤日历(v0.4.0)
考勤日历:按工地看整月出勤与工钱汇总(v0.4.0)
工记导出考勤表到 NAS(v0.4.0)
导出考勤表:Excel / 图片一键存到 NAS,最近导出一目了然(v0.4.0)
工记我的班组(v0.4.0)
多班组:可建多个班组并切换,给每个成员设日薪/时薪(v0.4.0)
工记工地单价(v0.4.0)
工地单价:工地可设默认日工 / 小时价,也能给工人单独定价(v0.4.0)
工记未结算汇总(v0.4.0)
未结算汇总:按人核对应发与借支抵扣(v0.4.0)
工记统计(v0.4.0)
统计:月度与自定义时间段查询(v0.4.0)
工记工作台深色主题(v0.4.0)
深色主题:工地夜间也能看清(v0.4.0)
工记手机端记工(v0.4.0)
手机端记工:30 秒录完一笔(v0.4.0)
工记手机端考勤(v0.4.0)
手机端考勤:工地筛选与汇总一屏看全(v0.4.0)
工记手机端我的班组(v0.4.0)
手机端我的班组:切换班组、调成员单价(v0.4.0)

功能特性

🗓️

三种记薪方式

点工(按天,支持半天)/ 点时(按小时)/ 计件(数量 × 单价),一个应用覆盖工地与工厂的常见算法

📱

扫码报工

老板 / 班组长为产品生成二维码,工人用手机扫码免登录填报,产品名自动带出,只填数量;可打印海报或每人一张专属码

✅

班组审核

扫码与员工提交先进入待审核,班组长逐条或批量通过、驳回;只有通过的记录才计入工资、考勤、统计与结算

🧮

工资自动计算

单价按「工人 × 工地单独价 → 工地默认价 → 工人日薪 / 时薪 / 月薪」自动带出,单条记录可临时覆盖;金额以整数「分」存储,避免浮点误差

⚡

日历式快速记工

移动端优先的日历记工页,30 秒完成一笔录入;顶部可切换当前工地,行内「一键记工」按生效单价直接记一个点工,还支持休息标记、多天连记与「确认并再记一笔」

👷

角色与班组

老板可建多个班组并随时切换,每个班组独立维护邀请码、成员与备注;老板 / 组长 / 员工三种角色,组长可帮工人记工、记借支,员工只能给自己记工。可在「我的班组」给每个成员设日薪 / 时薪,也能在用户管理里把已有账号直接加入班组

✅

考勤日历

月历展示每个工人的出勤状态(1 个工 / 0.5 个工 / 小时 / 件 / 休),并汇总当月工钱;可按工地筛选、切换月度或任意时间段,一键生成中文对工单,考勤表能导出 Excel(考勤表 / 工资条 / 逐日明细)或图片存到 NAS 文件夹

💵

结算与工资条

未结算汇总按工人实时列出应发、借支与净应付;支持单人结算与一键月结,结算后记录锁定且可撤销重结;工资条含明细、借支抵扣、实发与签字栏,一键导出 PNG 或复制文字

🏗️

工地 / 项目维度

可选填工地或项目,每个工地可设默认日工 / 小时价,同一工人还能在不同工地单独定价;统计与考勤可按工地筛选,未结工资支持按人结算或按项目(工地)结算

📤

借支管理

记录工人的预支款项(现金 / 微信 / 支付宝),结算时自动抵扣,净应付不会算错

📈

统计与导出

月度统计每人的出勤天数、工时、计件数量、应发工资、借支与净额;也可按人员 + 时间段自定义查询,明细与汇总均可导出 CSV,考勤表还能导出 Excel / 图片存入 NAS 共享文件夹

🔒

数据安全与隔离

数据全部保存在本地 SQLite(WAL 模式),不上传云端;数据按用户隔离,多用户互不可见;支持 CSV / JSON 导出与数据库快照备份

🐂

飞牛一键登录

支持飞牛 fnOS NAS 账号一键登录,自动绑定或注册应用账号,手机与电脑共用同一份数据

🌗

明暗双主题

深浅色主题自适应,工地现场光线再差也能看清记工明细

技术架构

后端技术栈

  • Go - 高性能编译型语言
  • Gin - 轻量级 HTTP 框架
  • GORM - ORM 框架
  • SQLite (WAL) - 单文件数据库

前端技术栈

  • Vue 3 - 现代前端框架
  • TypeScript - 类型安全
  • Vite - 构建工具
  • Pinia - 状态管理
  • Tailwind CSS - 原子化样式

部署方式

  • 飞牛 NAS(fnOS)FPK 包(x86 / ARM)
  • Docker 多平台镜像
  • 二进制解压即用

工记基于 smallgo 应用框架实例化,模块化注册(server/worklog/),前后端产物可打包为单个可执行文件分发。

快速开始

飞牛 NAS 安装

  1. 下载对应架构的 techfunway-worklog 安装包(.fpk,支持 x86 / arm64,见下方「更新日志」的下载链接)
  2. 打开飞牛 NAS 桌面 → 应用中心
  3. 点击右上角 手动安装,选择下载的 .fpk 文件
  4. 在安装向导中设置应用端口(默认 8909),点击完成
  5. 安装完成后打开应用,首个注册用户自动成为管理员(老板);也可以直接使用飞牛 NAS 账号一键登录

Docker 运行

docker run -d \
  --name techfunway-worklog \
  -p 8909:8909 \
  -v worklog-data:/app/data \
  -e TZ=Asia/Shanghai \
  --restart unless-stopped \
  techfunways/worklog:v0.5.0

docker-compose.yaml

services:
  worklog:
    image: techfunways/worklog:v0.5.0
    container_name: techfunway-worklog
    restart: unless-stopped
    ports:
      - "8909:8909"
    volumes:
      - worklog-data:/app/data
    environment:
      - TZ=Asia/Shanghai

volumes:
  worklog-data:

数据库、上传文件与运行日志都存放在数据卷 worklog-data(容器内 /app/data),重建或升级容器不会丢失记工数据。

二进制直接运行

解压对应平台的发布压缩包后,按下面的命令启动:

# Linux / macOS
./worklog -data-dir ./data -port 8909

# 开发模式(构建前后端并模拟生产目录结构运行)
make dev

启动后浏览器访问 http://localhost:8909,首个注册用户自动成为管理员。记账数据存储于 data/db/worklog.db(SQLite,WAL 模式)。

💡 提示:员工角色的账号只能给自己记工,可查看自己的考勤、工资与结算单;组长可以帮本组工人记工和记借支。结算后的记录会锁定,如需修改要先撤销结算,避免工资条与账目对不上。

端口与仓库信息

默认端口 8909(HTTP,安装向导、-port 参数或 PORT 环境变量均可修改)
容器名 techfunway-worklog
数据卷 worklog-data → 容器内 /app/data(数据库、上传文件、日志)
Docker 镜像 techfunways/worklog(多平台,端口 8909)
fnOS 包名 techfunway-worklog(桌面显示名「工记」)
源码仓库 TechFunWay/worklog(Go + Gin + GORM + SQLite / Vue 3 + TypeScript)
运行数据 data/db/worklog.db(SQLite WAL),管理员可下载数据库快照备份
上游框架 smallgo,后端模块名为 smallgo/server

更新日志

v0.5.0 2026-11-14

本次更新重点:新增扫码报工与班组长审核,工人不用注册账号,扫码只填数量;班组长逐条或批量确认,也能整班批量代录。本版同时包含 v0.4.1 的手机端底部栏修复。

新增功能

  • 扫码报工:为产品生成二维码,工人用手机扫码免登录填报,产品名自动带出、只填数量;支持产品码、员工专属码与产品+员工双绑定码,可打印海报或每人一张专属码,也可复制链接发微信群
  • 班组审核:扫码 / 员工提交的记工先待审,班组长逐条或批量通过、驳回并填写原因;只有通过的记录才计入工资、考勤、统计、对工与结算
  • 批量报工:班组长选产品与日期,给一整班工人集中填数量,一次提交直接生效,支持按姓名筛选
  • 待审提醒与报工码管理:侧边栏、手机底栏与工作台显示待审数;报工码可绑产品 / 工人 / 工地、设报工地址与截止日期,支持停用、启用、删除与重置令牌

改进

  • 公网 / 内网都能用:二维码使用填写的报工地址,支持内网 IP:端口与公网直连域名;飞牛网关地址会提示工人改用直连,避免扫码打不开
  • 工资口径统一:待审、驳回记录单独标记不计工资;统计、考勤、对工、结算与 Excel / CSV 导出只认已通过记录
  • 防重复与防抬价:同一批批量报工 15 秒内重复提交会整批拒绝;员工提交不能自带单价,按档案或计件项目价计算
  • 同名工人加序号:免登录页、打印专属码、批量报工与审核筛选对同名工人显示(1)(2),避免记错人

问题修复

  • 修复手机端底部菜单被系统返回键 / 导航条遮挡,顶部栏透出标题形成重影;贴底弹窗按钮不再压到系统按键
  • 修复组长创建的工人 / 计件项目落到个人账号、老板和组长都无法使用的问题
  • 修复删除工人 / 计件项目 / 工地时未检查引用,可能导致报工码失效或历史记录悬空的问题
  • 修复组长 / 员工导出记工、月报、借支、结算与 JSON 备份为空的问题
  • 修复补报昨天时成功页仍显示「今天已报」、公开提交回显单价金额、以及员工直达扫码报工页显示加载失败的问题
v0.4.1 2026-10-29

本次更新重点:手机端底部菜单不再被系统返回键与导航条遮挡,顶部栏改为不透明底色不再重影;偏好设置新增「底部预留(手机)」,可按机型调整。

问题修复

  • 底部菜单避让:修复手机端底部菜单被系统返回键与导航条遮挡,进入应用自动抬高到底部按钮上方

体验优化

  • 顶部栏不透明:手机端顶部栏改为不透明底色,页面标题不再透出形成重影
  • 底部预留可调:偏好设置新增「底部预留(手机)」,可按机型在自动 / 不预留 / 较窄 / 标准 / 较宽之间调整
v0.4.0 2026-10-23

本次更新重点:不同工地可以设不同单价、记工按工地自动带价并支持一键记工;考勤表可按工地与任意时间段查询、一键对工,还能把 Excel 或图片直接存到 NAS 共享文件夹。

新增功能

  • 工地单价:可以给每个工地设默认日工单价与小时单价,不同工地不同价格;记工时自动带出,不用每次手填
  • 工人 × 工地单独价:同一个人在不同工地可单独定价(如 A 工地 320 元 / 天、B 工地 300 元 / 天);没有单独设置时依次使用工地默认价、工人档案里的日薪 / 时薪 / 月薪
  • 一键对工:考勤页可为某位工人某段时间生成对工单,逐日列出出勤与金额并附合计;可一键复制成中文对工单发给工人核对,也可下载 CSV 存档
  • 按工地看考勤:考勤页可切换「全部工地 / 未分工地 / 具体工地」,日历、汇总与导出都只算该工地
  • 自定义时间段考勤:按起止日期查看每位工人的考勤天数、点工折合、计时、计件、休息与工钱,并提供本月、上月、近 7 天、近 30 天快捷区间
  • 导出 Excel 到 NAS:按整月或自定义时间段生成 Excel,含「考勤表 / 工资条 / 逐日明细」三张工作表,可直接存进 NAS 共享文件夹
  • 导出考勤表图片到 NAS:月度考勤表可生成 PNG 图片保存,适合直接发微信或留存
  • 最近导出:导出弹窗内可查看与下载最近 100 个导出文件(老板 / 班组长)

改进

  • 记工页工地上下文:记工页顶部可切换当前工地,新建记工默认落在该工地,并默认上次使用的工地,打开就能直接记
  • 一键记工:记工页每位工人行内「一键记工」,按当前工地与生效单价直接记一个点工,不弹窗;成功提示金额,并防止连点重复记工
  • 记工自动带价:记工弹窗选工地、切换点工 / 点时类型时自动带出该工地该工人的生效单价,并标注价格来源,仍可手动改价
  • 日历点日期直接记工:点考勤日历中的某一天进入记工,并自动带上当前工地
  • 导出目录可配置:管理员可在「系统管理 → 系统配置 → 导出目录」把保存位置改成 NAS 共享文件夹的绝对路径(默认数据目录下的 exports,图片在 pictures/ 子目录)
  • 对工单与汇总口径一致:对工单与考勤汇总、工资条使用同一套计算,避免两处数字对不上
  • 导出参数校验:时间段跨度、工地与工人参数统一校验,非法参数直接提示,不会导出空表或错表

问题修复

  • 修复记工弹窗切换工地后仍沿用上一个工地单价、金额不更新的问题
  • 修复员工账号未绑定工人档案时,考勤查询、对工与导出可能越权读取他人数据的问题(现在统一拒绝)

体验优化

  • 导出提示显示实际文件名与保存位置:保存到 NAS 显示路径,本机下载提示文件在浏览器「下载」文件夹
  • Excel 导出按文本写入,以等号、加号、减号、@ 开头的内容不会被电子表格当成公式执行
  • 考勤汇总卡收紧为一行四列,手机端一屏能看全;桌面表格与手机卡片双布局,长内容自动换行不截断
  • 导出弹窗在手机上一屏展示,保存、下载、最近导出与关闭入口都在屏内
  • 工地管理页直接展示默认单价,手机上也能方便维护「工人单价」
v0.3.1 2026-10-20 · 预览版
  • 月薪工:工人档案新增「月薪」填法,按记工当月实际天数自动折算日薪,2 月按 28/29 天、大月按 31 天算得准;月薪优先于日薪,记工弹窗会提示当前是月薪工并把金额标注为「本次工资(月薪折算)」
  • 多天连记一次算清:月薪连记按「月薪 × 天数 ÷ 当月天数」一次取整,记满整月正好等于月薪,误差不超过几毛钱
  • 按工地统计:统计页新增「按工地」页签,按月份看每个工地记了多少工、应发多少、借支多少、还剩多少没结,末行附合计;没有归属工地的记工单独归为「未分工地」
  • 工资条可返回:工资条详情页新增返回按钮,不用再翻侧边栏找回去
  • 弹窗都能关:确认框、设置安全问题、恢复数据、飞牛登录确认框等二级界面补上关闭按钮与 ESC 快捷键,确认框点暗处也能关;关闭按钮触控区统一放大到 44×44,手机端不再难点
  • 保存中也能取消:记工、添加工人 / 工地 / 计件项目 / 借支等弹窗在保存过程中点「取消」没反应,现在与右上角关闭按钮行为一致
  • ESC 只关最上面一层:弹窗上再叠确认框时,按 ESC 不会连带把下面的弹窗一起关掉
  • 结算与班组弹窗补「取消」:新建 / 编辑班组、设置成员工资、按人结算、一键月结这几个弹窗原先只能靠右上角 ×,现在也有明确的取消按钮
  • 员工越权修复:员工账号未绑定工人档案时可能看到老板的全部数据,现已堵死
  • 导出安全:导出的表格里以 = + - @ 开头的内容不会再被电子表格当成公式执行
v0.3.0 2026-10-17
  • 多班组与成员单价:老板可建多个班组(最多 20 个)并随时切换,每个班组独立维护邀请码、成员与备注,也可单独改名或解散;在「我的班组」里给每个成员设日薪 / 时薪,记工时自动带出该单价,不必再逐个去工人管理里找
  • 用户管理直接加成员:管理员可在用户管理里把已有账号直接加入自己的班组,选好班组、角色、姓名与单价即可,不用再让对方输邀请码
  • 考勤表任意日期可点:以前只有记过工的日期能点,现在任意日期都能点进记工并自动定位到该天,补记方便多了
  • 考勤表导出:新增「导出考勤表」,按工人逐日导出点工 / 点时 / 计件 / 休息与当天金额,每人一行合计,当月没记录的在职工人也不会漏
  • 飞牛上普通注册账号可直接用账号密码登录,不再必须先绑定飞牛 NAS 账号;登录后刷新页面、重进应用都能保持登录
  • 注册即登录:新账号注册成功后直接进入控制台,不用再回登录页重登
  • 换账号登录更可靠:登录后自动刷新角色与导航,不会沿用上一个账号的员工 / 老板视图
  • 导出下载修复:记工、月报、借支、结算与考勤表在局域网直连端口也能正常下载,文件名保留中文
  • 修复记工、添加工人等弹窗右上角 × 无法关闭的问题;弹窗补显式「取消」按钮,关闭按钮触控区放大到 44×44,长表单滚动时也始终可见可点
  • 修复手机端登录页与主界面输入时卡顿、闪屏的问题,输入更跟手
  • 手机端用户管理改为卡片列表,操作按钮第一屏内联可见;统计卡收紧为一行四列,一屏信息量更足
v0.2.0 2026-09-28
  • 飞牛深度适配:从飞牛桌面图标、飞牛手机 App 与远程域名打开,登录态自动保持,不再「一刷新就掉回登录页」
  • 修复飞牛手机 App 远程打开报错断连的问题,主入口锁定在统一网关域
  • 首次安装改为手动选择「使用飞牛 NAS 登录」授权,确认弹窗内可直接换飞牛账号,主页面不跳走
  • 安装 / 升级向导默认端口由 8900 改为 8909,新装不再与其它应用撞端口
  • 应用图标焕新:3D 立体 + 玻璃光滑风格(3D 日历卡 + 釉面安全帽)
  • 全部下拉换成自定义组件:深色主题下不再出现白底蓝条,支持键盘选择、点外部关闭与自动向上翻
  • 数据备份页新增「恢复」:支持上传备份文件恢复,换机迁移不再发愁
  • 修复:计件记工未填单价时没有按计件项目默认单价带出
  • 修复:自定义时间段统计整页报 500
  • 本地存储键按应用隔离,多个应用同域打开时不再互相顶掉登录态
运行(x86 / ARM 架构通用):
docker run -d -p 8909:8909 -v worklog-data:/app/data -e TZ=Asia/Shanghai techfunways/worklog:v0.2.0
docker-compose.yaml:
services:
  worklog:
    image: techfunways/worklog:v0.2.0
    container_name: techfunway-worklog
    restart: unless-stopped
    ports:
      - "8909:8909"
    volumes:
      - worklog-data:/app/data
    environment:
      - TZ=Asia/Shanghai

volumes:
  worklog-data:
v0.1.0 2026-09-15
  • 首个公开发布版本:点工 / 点时 / 计件三种记薪方式,休息标记与多天连记
  • 老板 / 组长 / 员工三种角色,班组邀请码加入,权限分层
  • 考勤日历与月汇总,按人 / 按项目未结算汇总,一键月结与工资条导出 PNG
  • 借支登记并在结算时自动抵扣,结算单可撤销回滚
  • 月度统计、自定义时间段统计,CSV / JSON 导出与 SQLite 备份下载
  • 支持飞牛 fnOS 一键安装、Docker 部署与 linux / darwin / windows 裸二进制

常见问题

如何修改端口?

飞牛 NAS 安装时可在向导中设置端口(默认 8909)。Docker 方式通过 -p 参数映射端口。二进制方式通过 -port 参数指定端口。

工资是怎么算出来的?

点工按天(支持 0.5 天)、点时按小时、计件按「数量 × 单价」计算。单价按「工人在该工地的单独价 → 工地默认价 → 工人档案里的日薪 / 时薪 / 月薪」自动带出,计件按计件项目的默认单价,单条记录可以手动覆盖。金额在服务端以整数「分」存储,前端展示时再转成元,不会出现浮点误差。

员工能帮别人记工吗?

不能。员工角色的账号只能给自己记工,可以查看自己的考勤、工资与结算单;组长可以帮本组工人记工、记借支;老板负责建班组、管理与月结。工人凭邀请码加入班组。

工资条怎么发给工人?

结算页面一键生成工资条,含记工明细、借支抵扣、实发金额与签字栏,可导出为 PNG 图片(直接微信发给工人)或复制为文字,方便工人确认留档。

考勤表怎么存到 NAS 文件夹?

老板 / 班组长在考勤页点「导出考勤表」,选好范围与工地后,可以把 Excel(含考勤表 / 工资条 / 逐日明细三张工作表)或月度考勤表图片直接保存到 NAS,也能把 Excel / CSV 下载到本机。保存位置默认是数据目录下的 exports,可以在「系统管理 → 系统配置 → 导出目录」改成 NAS 共享文件夹的绝对路径(图片在 pictures/ 子目录)。员工账号可以导出自己的考勤。

数据存在哪里,会上传吗?

所有数据都保存在本地 SQLite 数据库(data/db/worklog.db),不上传云端;数据按用户隔离,多用户互不可见。备份数据目录即可,管理员也可以在应用内下载数据库快照或导出 CSV / JSON。应用内置的匿名使用统计只上报版本与部署形态等设备信息,可在系统配置中关闭。