Skip to content

About

简录签 SimRecSign 是一个电子签署与流程审批系统:把纸质表单变成 PDF 电子模板,配置字段与多步签署流程后在线流转,最终生成带数字签名与防篡改审计记录的 PDF 文档。支持 PC 管理端与手机端(H5)双入口。

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

简录签 SimRecSign 使用手册

简录签 SimRecSign 是一个多租户电子签署与流程审批系统:把纸质表单变成 PDF 电子模板,配置字段与多步签署流程后在线流转,最终生成带数字签名与防篡改审计记录的 PDF 文档。支持 PC 管理端与手机端(H5)双入口。


目录


系统简介

这是什么系统

一句话:上传 PDF → 配置填写/签署字段 → 定义多步流程 → 在线流转签署 → 下载带数字签名的成品 PDF。

适用场景:需要多方逐级填写、审批、签署的表单类文档——如申请表、审批单、承诺书、检验记录、交接单等。

三类用户视角

角色 主要工作 常用入口
系统管理员 管理租户、用户、部门、角色、CA、审计 PC 端「系统管理」
模板管理员 上传 PDF、设计字段与流程、发布模板 PC 端「模板库 / 编辑模板」
普通用户 发起文档、填写、签署、查看进度 PC 端或手机端均可

技术形态(简要)

  • 后端:Go(Gin + GORM + SQLite,单文件部署时前端页面与中文字体全部内嵌进一个可执行文件)
  • PC 端:Vue 3 + Element Plus;手机端:Vue 3 + Vant(H5,部署后访问 /m/)
  • 数字签名:自研 PDF 签名库(CMS 签名、增量更新、时间戳),配合平台自建 CA

功能总览

模板管理

  • 上传 PDF 自动识别已有表单域(AcroForm),也可从空白拖拽添加
  • 10 种字段类型:单行文本、多行文本、数字、日期、勾选框、单选、下拉、图片上传、签名、审批意见;支持字段分组与行容器排版
  • 字段校验:必填、正则、数值范围、选项
  • 模板状态管理:草稿 → 发布 → 停用;发布时可指定「允许发起的人员范围」
  • 模板分类管理,便于归类检索

流程签署

  • 多步骤流程:每步可指定办理人(具体用户 / 部门 / 整个机构,或由上一步指定)
  • 字段按步骤分配权限:本步可编辑哪些字段、对其他步骤隐藏哪些字段
  • 文档状态流转:发起 → 流转中 → 完成;支持驳回(终止)、撤回(回到草稿重新发起)、退回上一步
  • 每步提交后内容实时渲染进 PDF;签署步生成数字签名(多方签署互不覆盖)

签署与证书

  • 签署密码:独立于登录密码,用于解锁个人签署私钥
  • 手写签名板(手机端体验最佳)或上传签名图片,签名图加密存储
  • 平台自建 CA:用户在线申请证书 → 管理员审批 → 签署时自动使用;也支持上传外部证书
  • 证书吊销、CRL 下载

交接令牌

  • 为某一步生成一次性交接链接,发给没有账号的外部人员
  • 对方打开链接、登录(或注册)后自动绑定该步骤办理权

审计与安全

  • 全操作审计日志(登录、模板变更、文档流转、签署、交接…),哈希链防篡改,可一键校验链条完整性、导出 CSV
  • 细粒度权限:内置超管/租户管理员/模板编辑员/普通用户四类角色,权限码可自定义分配
  • 多租户数据隔离;演示模式(只读+签署)用于对外展示

通知

  • 站内通知:文档到达待办、流程事件;未读角标、一键全部已读

在线演示

部署与启动

环境要求

  • 运行:任意能跑 Go 程序的环境(Linux/Windows/Docker)
  • 开发调试:Go 1.25+、Node.js 18+

方式一:Docker(推荐)

JWT_SECRET=请换成强随机字符串 docker compose up -d

启动后访问 http://服务器IP:8080(PC 端)或 http://服务器IP:8080/m/(手机端)。数据自动持久化在 Docker 卷中。

方式二:单文件部署

# Windows 上执行(自动构建前端并交叉编译 Linux 单文件)
server_build.bat
# 产物 bin/simrecsign-server 上传到服务器,直接运行

单文件已内嵌 PC 端、手机端与中文字体,无需再部署任何 Web 服务器。

方式三:开发模式(前后端热更新)

server_run.bat     # 后端,监听 8080
web_run.bat        # PC 端,http://localhost:5173
moblie_run.bat     # 手机端,http://localhost:5173/m/

(Linux 环境对应 server_run.sh / server_build.sh)

首次启动会发生什么

程序自动完成:建库(默认 SQLite)→ 创建默认租户与超管账号 → 初始化权限数据,并在日志中打印初始账号。

初始管理员:admin@simrecsign.local / admin12345 —— 登录后请立即修改密码。


使用教程

以下按「首次登录 → 管理员初始化 → 做模板 → 发起办理 → 签署 → 交接 → 手机端 → 审计」的完整链路讲解。

1. 首次登录

  1. 打开系统地址,进入登录页。
  2. 输入初始超管账号 admin@simrecsign.local / admin12345。
  3. 登录后进入工作台:顶部三张统计卡(待我签署 / 已完成 / 活动模板数),下方是待办与最近文档列表。
  4. 第一件事:进入「个人设置 → 修改密码」,改掉初始密码。

多租户说明:登录页会展示可用租户列表;超管登录后管理的是整个平台,普通用户登录后归属其所在租户。

2. 系统管理员:初始化组织

以超管或租户管理员身份进入左侧「系统管理」,按以下顺序完成初始化:

① 组织架构(部门管理)

  • 「系统管理 → 部门管理」中建立部门树(支持多级),后续模板指派步骤办理人、用户归属都依赖部门。

② 用户管理

  • 「系统管理 → 用户管理」创建用户:邮箱(登录账号)、姓名、所属部门、状态。
  • 用户初始密码由管理员设置,用户首次登录后自行修改。

③ 角色与权限

  • 内置角色:super_admin(超管)、org_admin(租户管理员)、template_editor(模板编辑员)、user(普通用户)。
  • 如需自定义角色(例如"只允许查看审计"),「系统管理 → 角色管理」新建角色并勾选权限码(如 audit:read、template:publish 等),再分配给用户。
  • 权限在服务端路由与前端页面/按钮两层同时生效,未授权的菜单自动隐藏。

④ 模板分类(可选)

  • 「系统管理 → 模板分类」维护分类(如"行政类""检验类"),供模板归类。

⑤ 自建 CA(推荐,签署前完成)

  • 「系统管理 → 自建 CA」点击初始化 CA:系统为租户生成根证书与私钥(私钥文件路径、口令见 config.toml 的 [ca] 段,务必备份)。
  • 初始化后,用户即可在个人设置中申请签署证书(见下文签署章节)。
  • 同页提供:证书列表、吊销、CRL 下载、证书申请审批。

⑥ 租户管理(仅超管)

  • 平台级超管在「系统管理 → 租户管理」创建/停用租户、为租户指定管理员、重置租户管理员密码。

3. 模板管理员:制作签署模板

这是本系统最核心的配置环节,分四步:上传 → 画字段 → 配步骤 → 发布。

① 上传 PDF

  • 「模板库 → 上传 PDF 创建模板」,填写模板名称(必填)、选择分类(可选)、上传 PDF。
  • 若 PDF 本身带 AcroForm 表单域,系统自动识别并导入为字段;否则进入编辑器手动添加。

② 可视化编辑字段

  • 打开模板进入编辑器:左侧为 PDF 页面预览,右侧为字段面板。

  • 从字段面板拖拽字段到页面目标位置,支持 10 种类型:

    类型 用途
    单行/多行文本 普通填写项
    数字 可设最小/最大值
    日期 日期选择
    勾选框 / 单选 / 下拉 选项类字段(单选/下拉需配置选项列表)
    图片上传 现场照片、扫描件
    签名 手写签名/数字签署位置
    审批意见 意见批注栏
  • 用字段分组 / 行容器把相关字段组织成块,编辑与配置时整块操作。

  • 选中字段后在属性面板设置:字段名、是否必填、正则校验、数值范围、选项等。

  • 字段位置可拖动、可微调大小;页面可缩放定位。

③ 配置流程步骤

  • 切换到「步骤配置」页签,默认有步骤 1,可添加/删除/上下移动步骤。
  • 每个步骤配置三件事:
    1. 步骤名称:如"申请人填写""科长审批""主任签署"。
    2. 指派方式:
      • 设计期指派——负责人目标选「具体用户」「部门」或「整个机构」;
      • 由上一步指定——上一步办理人在提交时现场选择下一步办理人(适合灵活派单)。
    3. 可编辑字段:勾选本步骤允许填写/签署的字段(按分组块整块勾选,已被前面步骤占用的字段不可重复分配);如需对某步骤隐藏部分字段,使用隐藏字段配置。
  • 若某步骤勾选了签名字段,提交该步时将执行数字签署(页面会提示"该步骤包含签名字段,提交时将执行签署")。

④ 保存与发布

  • 编辑过程中随时保存(模板保持草稿状态,草稿可反复修改)。
  • 点击发布:确认对话框中选择发起范围(允许哪些人用此模板发起文档,留空 = 整个机构所有人)。
  • 发布后模板进入「已发布」状态,即可发起流程;如需修改,先取消发布回到草稿。
  • 已发布模板也可停用,停用后不能再发起新文档,历史文档不受影响。

4. 普通用户:发起与办理文档

发起文档

  1. 「模板库」找到目标模板(可按名称/分类搜索),状态须为已发布,点击行内发起。
  2. 输入文档标题,确认后系统自动生成文档编号,进入第 1 步流转。
  3. 若第 1 步就是你的填写步骤,直接进入填写页。

办理我的待办

  • 工作台「待我签署」卡片与待办列表、或「我的文档」中状态为流转中的文档,点开进入填写页。
  • 填写页左侧为 PDF 实时预览(已填内容即时渲染到页面上),右侧/下方为本步可编辑字段。
  • 字段校验(必填、格式、范围)不通过时无法提交。
  • 填写完成后点击提交,文档自动流转到下一步,下一步办理人收到站内通知。

流程操作

  • 退回:当前步骤办理人可将文档退回上一步(上一步办理人修改后重新提交)。
  • 驳回:终止整个文档(状态变为 terminated)。
  • 撤回:发起人在流转中可撤回文档回到草稿,修改后重新发起。
  • 查看进度:文档详情页展示步骤条(每步状态:待处理/进行中/已完成/已退回)、各步办理人与时间、字段填写历史。

完成

  • 末步提交后文档状态变为已完成,可在详情页预览/下载最终 PDF:包含全部字段内容与各签署方的数字签名。

5. 签署操作详解

签署前需要完成一次性准备(个人设置中):

准备签署材料(一次性)

  1. 「个人设置 → 签名密码」:设置签署密码。它与登录密码相互独立,用于加密保护你的签署私钥——每次签署时输入的是它。
  2. 「个人设置 → 我的签名」:手写或上传签名图片(加密存储,可设为默认签名)。
  3. 「个人设置 → 我的证书」二选一:
    • 申请平台证书(推荐):点击申请(可填用途说明)→ 管理员在「系统管理 → 自建 CA → 证书申请」中审批 → 通过后自动可用;
    • 上传外部证书:上传已有证书文件。

执行签署

  1. 办理到含签名字段的步骤时,点击签署,弹出签署对话框。
  2. 输入签署密码。
  3. 选择签名来源:使用已保存的默认签名,或在弹出的签名板中现场手写(手机端体验最佳);也可勾选"保存为我的签名"。
  4. 确认后系统完成:签名图片落到 PDF 签名位 → 生成 CMS 数字签名(增量更新,不破坏之前其他人的签名)→ 文档进入下一步。

若该步骤同时是最后一步,签署即完成整个文档。

6. 交接链接:外部人员办理

当某一步的办理人不在系统内(如外部专家、合作方):

  1. 有「交接生成」权限的用户在文档操作中选择生成交接令牌,得到一条一次性链接(可设有效期,可吊销)。
  2. 把链接发给外部人员(微信/邮件均可)。
  3. 对方打开链接:若未登录会提示先登录/注册;登录后系统自动把该步骤办理权绑定给对方。
  4. 对方随即在手机端或 PC 端正常办理该步骤(填写/签署)。

令牌状态可在交接管理中查看:待绑定 / 已绑定 / 已吊销 / 已过期。

7. 手机端使用

  • 浏览器访问 http://服务器地址:8080/m/(开发模式为 http://localhost:5173/m/),登录同一账号。
  • 手机端专为办理优化:
    • 工作台:待办优先展示,点开即办;
    • 填写页:字段按分组块流式排版,适配小屏;
    • 签名板:全屏手写,笔迹平滑处理;
    • PDF 查看:在线预览文档与签署效果;
    • 通知 / 我的:待办提醒、个人设置(含签署密码、签名、证书管理)。
  • 交接链接在手机浏览器打开即可直接使用。

8. 审计与通知

审计日志(管理员)

  • 「系统管理 → 审计日志」:按时间/操作人/动作/对象检索全部操作记录,含操作前后快照、IP、终端信息。
  • 链条校验:点击校验可验证整条日志哈希链未被篡改(每条日志的哈希由前一条哈希+本条内容计算而来)。
  • 导出 CSV:用于存档或报送。

通知中心(所有用户)

  • 顶栏铃铛显示未读数;列表页可单条或全部标记已读。
  • 典型通知:文档到达你的步骤、文档被退回/驳回/完成等事件。

配置参考

配置文件 config.toml(首次启动自动生成),同名环境变量优先于文件。常用项:

配置 环境变量 默认 说明
http_addr HTTP_ADDR :8080 监听地址
db.driver / db.dsn DB_DRIVER / DB_DSN sqlite 数据库(当前实际仅 SQLite 生效)
jwt.secret JWT_SECRET dev 值 生产必改
jwt.ttl_minutes JWT_TTL_MINUTES 1440 登录有效期(分钟)
storage.base_path STORAGE_BASEPATH ./storage 上传文件存储目录
seed.* SEED_* 见文件 首次启动种子账号(仅首次生效)
font_path FONT_PATH 内嵌 PDF 中文渲染字体
ca.key_path / ca.key_password CA_KEY_PATH / CA_KEY_PASSWORD ./ca/ca-key.pem CA 私钥与口令,务必备份

生产上线检查清单

  • 修改初始超管密码
  • JWT_SECRET 换为强随机串
  • 备份 CA 私钥并设置私钥口令
  • 规划数据备份:数据库文件 + storage/ 目录 + CA 私钥
  • 外网访问须前置 HTTPS(签署场景强制要求)

安全机制

机制 说明
登录 JWT 令牌;登录口令 bcrypt 哈希存储
签署密码 Argon2id 派生密钥(抗暴力破解)
私钥与签名图 AES-256-GCM 加密落库,签署时仅在内存短暂解密
租户隔离 所有业务数据强制租户过滤
权限 服务端路由校验 + 前端按钮级控制双层防线
审计 哈希链防篡改,可独立校验
PDF CMS 数字签名 + 增量更新 + 可选时间戳,多方签署可分别验证

常见问题

Q:忘记签署密码怎么办? A:签署密码无法找回(私钥由它加密)。需在「个人设置 → 签名密码」重新设置签署密码,并重新上传/申请签署材料(历史签署不受影响)。

Q:模板发布后还能改吗? A:不能直接改。先「取消发布」回到草稿修改再重新发布。已发起的文档使用发起时刻的模板快照,不受模板后续修改影响。

Q:文档走到一半发现第 1 步填错了? A:当前步骤办理人可「退回」上一步逐级退回修改;或由发起人「撤回」回到草稿重新发起。

Q:外部人员没有账号怎么签? A:使用交接链接(见教程第 6 节);对方注册账号后经链接绑定即可办理。

Q:签署后的 PDF 在哪下载? A:文档详情页(已完成状态)预览并下载最终 PDF;签署有效性可被 Adobe Acrobat 等标准 PDF 阅读器验证。


简录签 SimRecSign · 多租户电子签署与流程审批系统

About

简录签 SimRecSign 是一个电子签署与流程审批系统:把纸质表单变成 PDF 电子模板,配置字段与多步签署流程后在线流转,最终生成带数字签名与防篡改审计记录的 PDF 文档。支持 PC 管理端与手机端(H5)双入口。

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages