Skip to content

Repository files navigation

DealMaker

DealMaker

合同模板填充 · 联系人与项目 · 一键导出 DOCX / PDF

用户手册 开发手册 Release


DealMaker 是 Windows 桌面端合同工具:在 Word 模板里埋好占位符,软件填表后生成正式合同文档。
支持历史项目、乙方联系人、报价表图片,以及 DOCX / PDF 导出。


📖 用户手册

快速开始

  1. Releases 下载 便携版*_portable.exe)或 安装包
  2. 双击运行(首次启动会自动准备运行组件,稍等片刻)
  3. 选择你的 合同模板.docx
  4. 填写字段 → 生成 DOCX 或导出 PDF

PDF 导出需要本机已安装 WPSMicrosoft Word(优先使用 WPS)。
报价表图片:自动找本机浏览器截图(优先 Edge,其次 Chrome,最后 Firefox),2× 清晰度并裁白边。

数据保存在程序同级目录的 .contract_tool/(联系人、历史项目、设置),换机器时可一并拷贝。


日常使用

功能 说明
历史项目 保存 / 加载整份填写快照(含报价草稿);生成 DOCX/PDF 时也会自动保存
联系人 仅保存乙方信息(名称、银行、代表、地址),不会覆盖合同编号、费用等项目字段
预付款比例 默认 50%,改总费用或比例时自动拆分预付 / 尾款
金额大写 填写数字金额后自动生成中文大写,可再手改
制作报价表 在费用表格处进入报价编辑,导出图片后自动填入「费用表格图片」;文件名为「项目名称_合同编号.png」,同项目再次导出覆盖

建议流程:选模板 → 加载联系人(可选)→ 填项目与费用 → 保存项目 → 生成文档。


制作自己的合同模板

模板就是普通的 Word(.docx) 文件。在需要被软件替换的位置,写入 半角百分号 包裹的占位符即可。

规则

%占位符名称%
  • 名称须与下表 完全一致(含「替换的」等前缀)
  • 可写在正文、表格单元格中
  • 同一占位符可在模板中出现多次
  • 不要用全角 ;占位符中间不要断行、不要改成多个文本框拆开的半截文字

示例:

合同编号:%替换的合同编号%
项目名称:%替换的项目名称%
乙  方:%替换的乙方名称%

占位符一览

分类 模板中写入 界面字段
合同 %替换的合同编号%合同编号
%替换的项目名称%项目名称
乙方 %替换的乙方名称%乙方名称
服务 %替换的服务内容%服务内容
%替换的交付格式%交付格式
%替换的交付时间%交付时间
费用 %替换的总费用%总费用
%替换的总费用大写%总费用大写
%替换的税率%税率
%替换的预付款%预付款
%替换的预付款大写%预付款大写
%替换的尾款%尾款
%替换的尾款大写%尾款大写
%替换的费用表格图片%费用表格图片(插入图片)
开票 %替换的开票内容%开票内容
财务 %乙方银行账号%乙方银行账号
%乙方银行开户行%乙方银行开户行
代表 %替换的乙方代表名称%代表名称
%替换的乙方代表电话%代表电话
%替换的乙方代表邮箱%代表邮箱

乙方地址(自动分行)

界面只需填 一整段「乙方地址」。生成时会拆成最多三行,模板中请使用:

模板占位符 含义
%替换的乙方地址第一行最大字数% 地址第 1 行
%替换的乙方地址第二行最大字数最大字% 地址第 2 行
%替换的乙方地址第三行最大字数最大字% 地址第 3 行

(名称需与上表一致,对应程序内固定键名。)

制作步骤建议

  1. 用 Word 做好版式(字体、页眉、签章区等)
  2. 把可变内容改成上表中的 %…% 占位符
  3. 另存为 .docx,在 DealMaker 中「选择文件」指向该模板
  4. 填一组测试数据生成 DOCX,检查替换与换行是否符合预期
  5. 确认无误后再用于正式合同

合同模板属于私有内容,不会随软件分发;请自行保管模板文件。


🛠 开发手册

技术栈

技术
桌面壳 / UI Tauri 2 · React · Vite · TypeScript
业务后端 Python(python-docx + OfficeCLI)
主题 深色紫强调色 #4f378b / #bfabf1

环境准备

  • Python 3.10+ · Node.js 18+ · Rust(Tauri)
  • 项目根目录放置 officecli.exeOfficeCLI Releases
  • 本地私有模板:自行准备 .docx(勿提交到 Git)
pip install -r requirements.txt
cd app
npm install

开发与发布

# GUI 开发
.\dev.bat

# 开发
.\dev.bat
.\dealmaker.cmd help          # 等同发布版 DealMaker.exe help

# 发布(单文件)
.\build_release.ps1
产出 说明
release/portable/DealMaker.exe 唯一用户文件:双击=GUI,带参数=Agent CLI
release/DealMaker_*_setup.exe 可选安装包
DealMaker.exe                 → 图形界面
DealMaker.exe help            → AI / 自动化 CLI(内置 Skill)
DealMaker.exe project list    → 与界面共编

运行时依赖解压到 %LOCALAPPDATA%\DealMaker\runtime\。详见 AGENTS.md

版本号

唯一来源:仓库根目录 VERSION

node .\sync_version.js           # 按 VERSION 同步
node .\sync_version.js 2.2.0     # 改版本并同步

发布脚本会自动执行同步。

目录结构

DealMaker/
├── app/                 # Tauri + React
├── backend/             # Python CLI 业务
├── assets/              # 报价表等静态资源
├── VERSION              # 版本号唯一来源
├── build_release.ps1
└── sync_version.js

请勿提交: *.docx 合同模板、.contract_tool/、任意 *.exe、本地构建缓存。


@繁星之子卡萨蒂亚 · GitHub

About

DealMaker contract generator (Tauri + React + Python)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages