1. 表单设计器需求
表单设计器是用户创建数据录入界面的核心工具,需同时满足业务人员拖拽配置和开发者代码扩展的需求。
1.1 设计器界面
- 画布:居中区域,实时展示表单布局,支持拖拽调整组件位置。
- 组件库:左侧面板,分类展示可用组件(基础、高级、移动端、自定义)。
- 属性面板:右侧面板,选中组件后显示可配置属性。
- 大纲树:左侧可切换显示表单组件层级结构,方便选择深层组件。
- 顶部工具栏:保存、预览(PC/移动端切换)、版本历史、代码视图(开发者模式)。
- 代码视图:支持切换到代码模式,直接编辑表单的 JSON 定义或嵌入自定义脚本。
1.2 组件库
基础组件(零代码通用)
- 文本输入:单行文本、多行文本、密码、数字输入。
- 选择类:下拉单选/多选、单选框组、复选框组、开关。
- 日期时间:日期选择、时间选择、日期时间范围。
- 文件上传:图片上传、附件上传(支持预览、限制格式/大小)。
- 布局组件:栅格列(分栏)、卡片、分割线、标签页。
- 其他:按钮、富文本展示、分割线、描述文本。
高级组件(复杂场景)
- 子表单:表格形式录入多行数据(如订单明细),支持新增/删除行。
- 关联选择器:从其他表单的数据中选择记录,支持筛选、分页。
- 签名面板:手写签名,生成图片保存。
- 地图定位:选择地理位置,获取经纬度/地址。
- 评分/滑块:评分、滑块数值选择。
- 公式字段:只读,根据其他字段自动计算(如总价=单价*数量)。
移动端专用组件(适配手机交互)
- 底部弹窗选择器:下拉选项在移动端弹窗选择。
- 图片轮播:展示多张图片。
- 扫一扫:调用摄像头扫码,填充结果。
- 地理位置获取:一键获取当前位置。
- 录音/录像:移动端音视频采集。
自定义组件(低代码扩展)
- 注册机制:开发者可开发 React/Vue 组件,打包上传后出现在组件库,配置界面可定义属性。
- 使用方式:业务人员像使用内置组件一样拖拽使用。
1.3 组件属性配置
通用属性
- 字段名称:标识字段,用于数据存储。
- 标题/标签:显示名称。
- 占位提示。
- 默认值:支持固定值、公式(如当前时间)、上下文变量(如当前用户)。
- 是否必填。
- 是否只读/禁用。
- 隐藏条件:配置表达式控制组件显示/隐藏(如
{{field1}} === 'A'时显示)。
校验规则
- 内置校验:邮箱、手机号、身份证、URL、数字范围、长度限制。
- 自定义正则:输入正则表达式和提示信息。
- 异步校验:调用 API 校验唯一性(如用户名是否已存在)。
数据联动
- 选项来源:下拉框选项可设置为静态数据、数据字典、来自其他表单的数据(关联字段)、API 返回数据。
- 字段联动:当前字段值变化时,更新其他字段的值或选项列表(例如选择省份后,城市下拉框自动过滤)。
交互事件
- 事件类型:值变化、获得焦点、失去焦点、按钮点击。
- 事件动作:执行脚本、调用 API、触发表单提交、打开弹窗、跳转页面等。
1.4 数据源与数据绑定
- 数据表绑定:表单可以绑定一个数据实体(表),保存时自动写入数据库。
- 临时数据:不绑定数据表,仅用于流程中的表单数据传递。
- 数据回填:打开表单时可传入数据 ID,自动填充已有数据(用于编辑详情)。
- 数据关联:支持从关联表单中读取数据填充到当前字段(如根据客户ID自动带出客户名称)。
1.5 布局与样式
- 栅格系统:支持 24 栏栅格,组件可设置占据列数,响应式下自动换行。
- 移动端适配:可单独配置组件在移动端的显隐、占宽比例、是否堆叠。
- 样式定制:全局主题(主色、圆角、字体),单个组件支持自定义 CSS 类名。
1.6 代码扩展(低代码)
- 自定义脚本:在表单级别或组件级别编写 JavaScript 函数,用于处理复杂逻辑(如数据转换、动态校验、API 调用)。
- 生命周期钩子:表单加载前、加载后、提交前、提交后可插入脚本。
- 自定义组件开发 SDK:提供开发工具包,包含组件接口、平台 API、模拟运行环境。
1.7 移动端适配
- 画布切换:设计器右上角可切换 PC 和手机画布,手机画布显示手机边框,组件自动适配宽度。
- 响应式配置:每个组件可分别设置 PC 和移动端的布局参数(占宽、隐藏、排列顺序)。
- 扫码预览:生成二维码,手机扫码后在真实环境中预览表单交互。
2. 流程设计器需求
流程引擎负责驱动业务流转,需支持可视化编排,同时为开发者提供自动化扩展。
2.1 设计器界面
- 画布:BPMN 风格或更简化的流程图,支持拖拽节点、连接线。
- 节点库:左侧列出节点类型(开始、审批、填写、抄送、自动、网关、结束)。
- 属性面板:右侧配置选中节点的详细信息。
- 迷你地图:方便导航大流程图。
- 工具栏:保存、校验、发布、版本管理。
2.2 节点类型
人工任务节点
- 审批节点:指定人员审批,支持通过/拒绝操作。
- 填写节点:指定人员填写/修改表单内容,可保存草稿。
- 抄送节点:通知相关人员查看,无需处理。
自动任务节点
- 脚本节点:执行自定义 JavaScript 脚本,可访问流程变量和数据。
- 服务调用节点:调用外部 HTTP API,支持配置请求参数、鉴权、结果解析。
- 数据操作节点:自动创建、更新、删除数据记录。
网关节点
- 排他网关:根据条件决定唯一流转分支(例如请假天数>3 走经理审批,否则走主管审批)。
- 并行网关:所有分支同时执行,等待所有分支完成后汇聚。
- 包含网关:满足条件的分支并行执行(与排他不同,可多选)。
事件节点
- 定时事件:到达指定时间或周期性触发。
- 消息事件:接收外部消息触发流程(如 Webhook 触发)。
- 信号事件:流程内广播信号,触发其他节点。
子流程
- 内嵌子流程:在当前流程内展开一段独立流程。
- 调用子流程:调用独立的另一个流程定义,可传参和接收返回值。
2.3 节点详细配置(以审批节点为例)
-
审批人设置:
- 固定成员、角色、部门。
- 发起人上级(支持多级向上查询)。
- 表单字段指定(如选择“部门经理”字段的值)。
- 动态表达式(如从组织架构查询)。
-
多人审批策略:
- 或签:一人通过即通过。
- 会签:所有人都通过才通过。
- 顺序投票:按顺序依次审批。
- 百分比通过(如超过 50% 同意即通过)。
-
驳回设置:
- 允许驳回节点:可驳回至任意历史节点,或仅驳回至发起人/上一个节点。
- 驳回后重新提交模式:从驳回节点继续,或重新开始。
-
字段权限:配置该节点下表单字段的读写权限(详见 3.2)。
-
表单操作按钮:自定义审批时显示的按钮(同意、拒绝、转办、加签等)。
-
通知设置:任务产生时发送通知(站内信、邮件、钉钉/企微消息)。
2.4 流程条件与分支
- 条件表达式:支持基于流程变量、表单字段值的条件判断,语法为
{{form.field1}} == 'value'。 - 条件编辑器:零代码模式提供点选式条件构建器(字段、操作符、值),低代码模式可直接编辑表达式。
- 默认分支:排他网关可设置默认分支,当所有条件不满足时走默认分支。
2.5 流程变量与表达式
- 内置变量:发起人、发起时间、流程实例 ID、表单数据。
- 自定义变量:可在脚本节点或表达式里创建和修改。
- 表达式引擎:支持在节点配置中使用表达式动态赋值(如设置审批人时使用
{{form.dept}}的部门主管)。
2.6 低代码扩展
- 脚本节点:提供代码编辑器(支持语法提示),可编写复杂业务逻辑,访问流程上下文,调用平台 API(如查询数据、发送请求)。
- 自定义连接器:开发者可开发“连接器插件”,将外部系统 API 封装为可视化节点。例如,封装钉钉机器人连接器,业务人员只需选择“发送消息”动作,填写接收人、内容即可。
- 服务调用节点高级配置:支持鉴权方式(Basic、OAuth2、API Key)、请求体模板、结果映射到变量、错误重试。
2.7 流程版本管理
- 版本号:每次修改发布生成新版本,如 v1.0、v1.1。
- 实例版本隔离:已发起的流程实例继续使用生成时的版本,新发起使用最新版本。
- 版本对比:支持对比两个版本的差异。
- 版本回滚:可指定版本为默认版本。
3. 表单与流程集成
表单和流程需紧密配合,确保数据正确流转和权限控制。
3.1 流程绑定表单
- 每个流程需绑定一个主表单(流程数据载体)。
- 支持关联多个辅助表单(如子流程表单、数据引用表单)。
- 流程发起时,表单数据即流程数据。
3.2 节点字段权限
-
每个节点可配置对主表单字段的权限:
- 可见:是否在任务界面显示该字段。
- 可编辑:是否允许修改。
- 必填:是否需要填写才能提交。
-
权限继承与覆盖:节点默认继承上一个节点的权限,可单独修改。
-
动态权限:根据条件动态改变字段权限(如金额大于1000时财务字段变为只读)。
3.3 流程数据操作
- 表单数据更新:填写节点或自动节点可修改表单字段。
- 数据落库:流程结束时,可将最终表单数据写入绑定数据表(若表单绑定了数据表)。
- 数据中间状态:流程运行中,数据可暂存草稿,不落库。
3.4 流程历史与意见
- 审批意见:每个节点可填写意见,意见与节点关联,支持附件。
- 操作记录:记录每个节点的处理人、时间、动作、意见、表单快照。
- 流程轨迹图:图形化展示流程历史流转路径。
4. 移动端支持
确保表单和流程在移动端有良好的用户体验,并支持离线场景。
4.1 移动端表单渲染
- 自动适配:表单在手机端自动采用移动端组件渲染(如下拉变为底部弹窗)。
- 触摸优化:按钮点击区域增大,支持手势返回。
- 移动端特有组件:支持调用相机、相册、扫码、地理位置等。
4.2 移动端流程任务处理
- 待办任务列表:在移动端展示待办任务,支持分类、搜索、筛选。
- 任务处理界面:加载对应流程节点的表单,字段权限、布局适配移动端。
- 快捷操作:支持手写签名、拍照上传、语音输入意见。
- 消息推送:新任务到达时通过 App 推送通知。
4.3 离线能力
- 离线缓存:打开过的表单和任务数据可缓存到本地,无网络时查看和编辑。
- 离线提交:离线填写的表单数据暂存本地,网络恢复后自动同步提交。
- 冲突检测:同步时若数据已被修改,提示用户手动解决。
需求优先级建议(P0/P1/P2)
| 模块 | 需求项 | 优先级 | 说明 |
|---|---|---|---|
| 表单设计器 | 基础组件(文本、数字、下拉、日期) | P0 | 最常用组件,必须 |
| 布局组件(栅格、卡片) | P0 | 页面基本布局 | |
| 组件属性(必填、默认值、隐藏条件) | P0 | 基本配置 | |
| 数据表绑定 | P0 | 表单数据持久化 | |
| 移动端画布预览 | P0 | 支持移动端开发 | |
| 子表单 | P1 | 复杂业务需要 | |
| 关联选择器 | P1 | 数据关联常见 | |
| 自定义脚本 | P1 | 低代码扩展核心 | |
| 自定义组件注册 | P2 | 高级扩展 | |
| 流程设计器 | 审批节点(审批人设置、多人策略) | P0 | 核心节点 |
| 抄送节点 | P0 | 基本通知 | |
| 填写节点 | P0 | 修改数据 | |
| 排他网关 | P0 | 条件分支必须 | |
| 条件表达式 | P0 | 分支条件配置 | |
| 节点字段权限 | P0 | 关键安全控制 | |
| 脚本节点 | P1 | 自动化扩展 | |
| 服务调用节点 | P1 | 集成外部系统 | |
| 并行网关 | P1 | 复杂流程 | |
| 子流程 | P2 | 大型流程复用 | |
| 表单与流程集成 | 流程绑定表单 | P0 | 基础集成 |
| 节点字段权限配置 | P0 | 流程级权限 | |
| 审批意见记录 | P0 | 审计需要 | |
| 移动端 | 移动端表单渲染 | P0 | 支持移动访问 |
| 移动端待办任务 | P0 | 移动办公基础 | |
| 相机/相册调用 | P0 | 常用 | |
| 离线缓存与同步 | P1 | 复杂但提升体验 |