收据工坊

面向 Windows 10 x64 的本地收据工具。安装后无需登录或联网,无需安装 Excel。

使用

  1. 打开“偏好设置”,选择导出目录和印章文件夹,填写默认出纳、复核人。
  2. 在“印章管理”选择本批印章;也可以明确选择不使用印章。
  3. 在工作台下载 Excel 模板,每行填写一条收费项目,再导入;在“按分组核对收据”中按学校、年级、收费项目整组勾选,核对张数、金额和待修改条数。
  4. 核对错误行、选中数据与右侧预览,选择 PDF、PNG、A4 打印版后生成。A4 预览按已选分组显示对应页,不跨组混排。
  5. 补打请到“生成记录”,按学校、年级、收费项目,或输入姓名、任意收据编号查找,预览匹配的原收据。重新导出沿用原编号、数据和印章,导出该批全部收据。
  6. 生成记录支持逐批删除,确认后移除批次数据;已导出的文件保留,流水号继续递增。删除后不能在列表中补打该批次。

生成记录默认每页 5 条,可切换为每页 10、20 或 50 条,并记住上次选择。列表底部显示总条数、当前范围和页码,可使用首页、上一页、页码、下一页和末页翻页。改变筛选条件或每页条数会回到第一页;删除末页最后一条记录后自动回到有效页。分页覆盖全部生成记录。

A4 打印版默认上下两张,奇数张时最后半页留空,也可选每页一张。单张 PDF/PNG 页面为 190 × 140 mm;收据主体为 180 × 120 mm。打印 A4 文件时使用 A4、实际大小或 100% 比例。首批请在实际打印机上试打一页。

每次导出自动建立独立批次文件夹,生成成功后自动打开输出目录,这两项行为无需设置。批次保留原有命名,内部按“学校 → 年级 → 收费项目”分层。单张 PDF、PNG 以及该组的 A4 打印版放在同一个项目文件夹;每组独立排版,组内保持 Excel 顺序,每页两张时奇数张的最后半页留空。生成清单保留在批次根目录,记录文件的相对路径。历史记录缺少学校或年级时,使用“未分类学校”“未分类年级”目录。文件名在“偏好设置 → 文件与常用选择 → 导出的文件叫什么名字”中调整,修改后立即显示文件名示例。

原有批次文件夹/
  巴南中学/
    高2028届/
      秋季学期服务费/
        SJ00000001_巴南中学 高2028届 张三.pdf
        SJ00000001_巴南中学 高2028届 张三.png
        A4打印版_每页2张.pdf
  生成清单.json

Excel 必填列:收款日期、学校、年级、姓名、收费项目、金额。收据上的客户名称自动按“学校 年级 姓名”拼接,三列去除首尾空白后用一个空格分隔。选填列:出纳、复核。金额为正数,最多两位小数,上限 9,999,999.99 元。单次最多 5000 条,仅支持 .xlsx。印章支持 PNG/JPG/WebP,每张不超过 8 MB,列表最多加载 100 张;建议透明 PNG。

编号与本地数据

默认编号 SJ00000001,按前缀独立递增。预览不占号,正式生成前先持久保存编号;失败、取消和重启后可从生成记录按原编号重试。重复导入相同文件会提示;只有明确继续才会生成新编号。

设置文件和 SQLite 记录保存在 Windows 用户数据目录。开发数据在 .local-data/app,自动测试数据在 .qa/profile,生产数据与二者隔离。升级及默认卸载保留用户数据。

多台电脑离线使用时,给每台设置不同编号前缀。

开发

本地调试无需安装程序,双击项目根目录的“启动本地调试.cmd”即可。入口优先使用这台电脑已有的兼容 Node 运行环境,不改变系统默认 Node 版本。

请在启动后自动弹出的“收据工坊”独立桌面窗口中调试。桌面窗口按 F12 打开调试工具;界面修改会自动更新。浏览器直接打开 127.0.0.1:5173 只会加载前端资源,完整的导入、印章和导出功能需要桌面程序。修改 src/main、src/core 或 src/shared 中影响主进程的代码后,关闭窗口并重新启动。开发设置和编号保存在 .local-data/app。

常规命令需要 Node.js 24 LTS(最低 22.13)、npm,以及 Windows 10 x64。

  • npm install
  • npm run dev:桌面开发环境
  • npm test:核心行为测试
  • npm run build:类型检查和构建
  • npm run test:desktop:真实 Electron 集成验证(隐藏窗口,产物在 .qa)
  • npm run test:loading:加载时机、持续旋转及取消选择验证(隔离测试数据)
  • npm run test:history:记录分页、每页条数记忆、筛选和删除末页验证(隔离测试数据)
  • npm run test:print:较大印章批量打印、错误提示和原编号重试验证(独立测试数据)
  • npm run package:生成 Windows x64 安装程序
  • npm run package:dir:生成免安装应用目录

依赖版本由 package-lock.json 锁定。应用、字体回退、PDF 渲染资源均使用本地资源。开发依赖下载需要网络,已安装的应用运行不依赖网络。

扩展

详细模块边界与扩展方法见 架构说明。

S
Description
财务收据
Readme
418 KiB
Languages
TypeScript 52.7%
Vue 23.8%
JavaScript 22.8%
HTML 0.4%
Batchfile 0.3%