Files
leaudit-platform-frontend/docs/contract-drafting-usage-guide.md
T
2025-12-05 00:09:32 +08:00

6.8 KiB
Raw Blame History

合同起草功能使用指南

功能概述

合同起草功能允许用户基于预定义的合同模板,通过填写占位符快速生成新的合同文档。


核心功能

已实现功能

  1. 创建草稿:从合同模板创建新的草稿
  2. 占位符填写:通过表单填写合同信息
  3. 一键替换:批量替换文档中的占位符
  4. 实时预览:在线编辑和预览文档
  5. 保存草稿:随时保存当前填写状态
  6. 完成起草:标记草稿为已完成

使用流程

1. 浏览合同模板

访问合同模板列表页:/contract-template

2. 选择模板并起草

  1. 点击模板进入详情页
  2. 点击"起草合同"按钮
  3. 输入合同标题(系统会生成默认标题)
  4. 点击确定创建草稿

3. 填写合同信息

进入起草页面后:

  • 左侧:文档预览区(60%)- 实时显示文档内容
  • 右侧:占位符表单(40%)- 分组显示需要填写的字段

填写步骤:

  1. 按分组填写字段(甲方信息、乙方信息、合同条款等)
  2. 必填字段标注红色星号(*
  3. 支持的字段类型:
    • 文本(text
    • 数字(number
    • 日期(date
    • 电话(tel
    • 多行文本(textarea

4. 一键替换占位符

点击"一键替换占位符"按钮:

  • 系统会将表单中的值批量替换到文档中
  • 显示替换进度和结果
  • 替换完成后自动保存

5. 手动编辑(可选)

替换后可以继续手动编辑文档:

  • 使用 Collabora Online 编辑器
  • 支持所有 Word 文档编辑功能
  • 缩放:Ctrl + 鼠标滚轮

6. 保存草稿

随时点击"保存草稿"按钮保存当前状态

7. 完成起草

确认无误后点击"完成起草"按钮:

  • 系统会检查必填字段是否都已填写
  • 完成后草稿状态变更为"已完成"
  • 自动跳转回模板列表页

占位符规范

占位符格式

在模板文档中使用双花括号标记占位符:

{{占位符名称}}

示例:

甲方(以下简称甲方):{{甲方名称}}
地址:{{甲方地址}}
法定代表人:{{甲方法定代表人}}
联系电话:{{甲方联系电话}}

乙方(以下简称乙方):{{乙方名称}}
地址:{{乙方地址}}
法定代表人:{{乙方法定代表人}}
联系电话:{{乙方联系电话}}

合同金额:{{合同金额}}元
签订日期:{{签订日期}}

常用占位符

基本信息

  • {{合同编号}}
  • {{合同标题}}

甲方信息

  • {{甲方名称}}
  • {{甲方地址}}
  • {{甲方法定代表人}}
  • {{甲方联系电话}}

乙方信息

  • {{乙方名称}}
  • {{乙方地址}}
  • {{乙方法定代表人}}
  • {{乙方联系电话}}

合同条款

  • {{合同金额}}
  • {{签订日期}}
  • {{履行期限}}
  • {{付款方式}}

模板管理员指南

配置模板占位符

管理员需要为每个模板配置 placeholder_schema 字段,定义占位符表单结构。

配置示例

UPDATE contract_templates
SET placeholder_schema = '{
  "fields": [
    {
      "key": "甲方名称",
      "label": "甲方名称",
      "type": "text",
      "required": true,
      "group": "甲方信息",
      "placeholder": "请输入甲方名称"
    },
    {
      "key": "合同金额",
      "label": "合同金额(元)",
      "type": "number",
      "required": true,
      "group": "合同条款",
      "placeholder": "请输入金额"
    },
    {
      "key": "签订日期",
      "label": "签订日期",
      "type": "date",
      "required": true,
      "group": "合同条款"
    }
  ]
}'::jsonb
WHERE id = 1;

字段配置说明

  • key: 占位符键名(必须与文档中的占位符一致,不含花括号)
  • label: 表单显示标签
  • type: 字段类型(text, number, date, tel, email, textarea
  • required: 是否必填(true/false
  • group: 分组名称(用于表单分组显示)
  • placeholder: 输入提示(可选)
  • defaultValue: 默认值(可选)

制作模板文档

  1. 使用 Word 创建合同模板
  2. 在需要填写的位置插入占位符:{{占位符名称}}
  3. 保存为 .docx 格式
  4. 上传到系统
  5. 配置 placeholder_schema

占位符命名规范

  • 使用中文名称,直观易懂
  • 避免特殊字符
  • 保持命名简洁
  • 同一信息使用统一命名

技术说明

数据库表结构

drafted_contracts(起草合同表)

字段 类型 说明
id SERIAL 主键ID
template_id INTEGER 关联的模板ID
file_path TEXT 起草后的文件路径
title TEXT 合同标题
placeholder_values JSONB 占位符填充值
status TEXT 状态(draft/completed/archived
created_by INTEGER 创建人ID
created_at TIMESTAMPTZ 创建时间
updated_at TIMESTAMPTZ 更新时间

contract_templates 扩展字段

字段 类型 说明
placeholder_schema JSONB 占位符配置Schema

API 接口

1. 创建草稿

POST /api/contracts/draft

请求

{
  "templateId": 123,
  "title": "采购合同-20250104"
}

响应

{
  "id": 456,
  "filePath": "drafts/contract_123_1_1704355200000.docx",
  "title": "采购合同-20250104",
  "templateId": 123
}

2. 保存占位符值

PUT /api/contracts/draft/:id/placeholders

请求

{
  "placeholders": {
    "甲方名称": "广东省烟草专卖局",
    "合同金额": "500000"
  }
}

响应

{
  "success": true
}

3. 完成起草

POST /api/contracts/draft/:id/complete

响应

{
  "success": true
}

常见问题

Q: 占位符没有被替换?

A: 可能的原因:

  1. 占位符格式不正确(必须是 {{名称}}
  2. placeholder_schema 中的 key 与文档中的占位符不一致
  3. 字段值为空(只替换有值的字段)

Q: 如何检查模板中有哪些占位符?

A:

  1. 在 Word 中打开模板文档
  2. 使用查找功能(Ctrl+F)搜索 {{
  3. 记录所有占位符名称

Q: 可以自定义占位符分组吗?

A: 可以。在 placeholder_schema 中通过 group 字段自定义分组名称。

Q: 替换后还能继续编辑吗?

A: 可以。替换只是批量修改文档内容,之后仍可使用 Collabora 编辑器手动编辑。

Q: 草稿保存在哪里?

A: 草稿文件保存在 MinIO 的 drafts/ 目录下,数据库记录保存在 drafted_contracts 表中。


后续规划

🔲 待实现功能

  1. 草稿列表页面
  2. 草稿历史版本
  3. 草稿搜索和筛选
  4. 批量起草
  5. 模板变量智能推荐
  6. 导出为 PDF
  7. 审批流程集成
  8. 电子签名集成

支持与反馈

如有问题或建议,请联系技术支持团队。