文章目录
- [JEECG Boot------Online表单](#JEECG Boot——Online表单)
-
- 一、核心基础认知
-
- [1.1 官方定义与核心定位](#1.1 官方定义与核心定位)
- [1.2 核心价值与解决的痛点](#1.2 核心价值与解决的痛点)
- [1.3 与代码生成器的核心区别](#1.3 与代码生成器的核心区别)
- [1.4 技术栈与运行环境依赖](#1.4 技术栈与运行环境依赖)
- [1.5 适用场景与能力边界](#1.5 适用场景与能力边界)
- 二、核心架构与底层驱动原理
-
- [2.1 整体四层架构体系](#2.1 整体四层架构体系)
- [2.2 元数据驱动的核心原理](#2.2 元数据驱动的核心原理)
- [2.3 核心元数据模型与存储结构](#2.3 核心元数据模型与存储结构)
- [2.4 全链路运行流程原理](#2.4 全链路运行流程原理)
- 三、核心功能
-
- [3.1 表单设计器核心能力](#3.1 表单设计器核心能力)
-
- [3.1.1 全类型控件体系](#3.1.1 全类型控件体系)
- [3.1.2 灵活布局能力](#3.1.2 灵活布局能力)
- [3.1.3 智能规则引擎](#3.1.3 智能规则引擎)
- [3.1.4 数据关联与表结构支持](#3.1.4 数据关联与表结构支持)
- [3.2 列表与数据管理能力](#3.2 列表与数据管理能力)
- [3.3 流程与业务生态集成](#3.3 流程与业务生态集成)
-
- [3.3.1 工作流深度集成](#3.3.1 工作流深度集成)
- [3.3.2 平台生态模块集成](#3.3.2 平台生态模块集成)
- [3.4 报表与可视化能力](#3.4 报表与可视化能力)
- [3.5 自动接口与开放能力](#3.5 自动接口与开放能力)
- [3.6 多端适配能力](#3.6 多端适配能力)
- 四、全生命周期开发配置流程
-
- [4.1 前期准备阶段](#4.1 前期准备阶段)
- [4.2 表单基础创建阶段](#4.2 表单基础创建阶段)
- [4.3 表单可视化设计阶段](#4.3 表单可视化设计阶段)
- [4.4 规则与联动配置阶段](#4.4 规则与联动配置阶段)
- [4.5 列表与查询配置阶段](#4.5 列表与查询配置阶段)
- [4.6 权限精细化配置阶段](#4.6 权限精细化配置阶段)
- [4.7 自定义增强扩展阶段](#4.7 自定义增强扩展阶段)
- [4.8 测试验证与发布上线](#4.8 测试验证与发布上线)
- [4.9 迭代维护与版本管理](#4.9 迭代维护与版本管理)
- 五、高级特性与进阶扩展能力
- 六、企业级权限与安全管控体系
-
- [6.1 五维精细化权限管控体系](#6.1 五维精细化权限管控体系)
- [6.2 全链路安全防护能力](#6.2 全链路安全防护能力)
- [6.3 审计日志与合规追溯](#6.3 审计日志与合规追溯)
- 七、底层技术实现机制
-
- [7.1 前端动态渲染引擎原理](#7.1 前端动态渲染引擎原理)
- [7.2 后端动态SQL与服务处理原理](#7.2 后端动态SQL与服务处理原理)
- [7.3 事务与数据一致性保障](#7.3 事务与数据一致性保障)
- [7.4 缓存机制与性能优化底层实现](#7.4 缓存机制与性能优化底层实现)
- [7.5 异常处理与容错机制](#7.5 异常处理与容错机制)
- 八、部署、运维与性能优化
- 九、常见问题与解决方案
-
- [9.1 配置与渲染类问题](#9.1 配置与渲染类问题)
- [9.2 数据与业务逻辑类问题](#9.2 数据与业务逻辑类问题)
- [9.3 权限与安全类问题](#9.3 权限与安全类问题)
- [9.4 性能与运维类问题](#9.4 性能与运维类问题)
- 十、场景化最佳实践与选型建议
-
- [10.1 核心业务场景最佳实践](#10.1 核心业务场景最佳实践)
- [10.2 企业级落地规范](#10.2 企业级落地规范)
- [10.3 避坑指南与选型建议](#10.3 避坑指南与选型建议)
JEECG Boot------Online表单
本文全方位、结构化拆解JEECG Boot Online表单的完整知识体系,覆盖基础认知、架构原理、功能体系、开发流程、高级能力、权限安全、技术实现、运维优化、落地实践全链路。
一、核心基础认知
1.1 官方定义与核心定位
JEECG Boot Online表单是JEECG低代码平台的核心零代码/低代码引擎模块,基于元数据驱动架构,通过可视化拖拽配置,零代码快速生成在线表单、数据列表、查询过滤、增删改查(CRUD)接口与业务功能。无需编译部署,配置完成即可直接上线运行,支持在线迭代调整,是JEECG平台实现"低代码快速开发"的核心载体。
1.2 核心价值与解决的痛点
- 降本提效:将传统开发数天/数周的CRUD功能,缩短至分钟级完成,大幅降低开发门槛与人力成本
- 敏捷迭代:需求变更无需修改源码、重新编译部署,在线调整配置即可实时生效,适配业务快速变化
- 统一规范:内置标准化的控件、校验、布局、权限体系,保障全平台业务功能的规范统一
- 低门槛开发:非专业开发人员(产品、业务人员)也可快速搭建业务功能,实现全民开发
- 开箱即用:内置大量业务控件、规则模板、生态集成能力,无需从零开发
1.3 与代码生成器的核心区别
这是Online表单最核心的认知边界,二者能力互补,适用场景完全不同:
| 对比维度 | Online表单 | 代码生成器 |
|---|---|---|
| 核心模式 | 元数据驱动,在线运行模式,配置完直接生效,无源码生成 | 源码生成模式,生成前后端源码,下载到本地二次开发 |
| 迭代方式 | 在线修改配置,实时生效,无需重启服务 | 修改源码后,需重新编译、打包、部署、重启服务 |
| 开发门槛 | 零代码,业务人员可操作 | 需专业开发人员,具备前后端开发能力 |
| 定制化能力 | 支持在线JS/CSS、后端钩子增强,适合标准CRUD与中等复杂度业务 | 全源码开放,无定制化上限,适合超复杂业务、深度定制场景 |
| 性能与可控性 | 基于动态解析,有少量性能损耗,核心逻辑由平台封装 | 静态源码,性能最优,完全自主可控 |
| 适用场景 | 快速原型、标准CRUD、需求频繁迭代的中小业务、OA/CRM等通用管理场景 | 核心交易系统、高并发场景、超复杂业务逻辑、深度定制化需求 |
1.4 技术栈与运行环境依赖
- 前端技术栈:Vue2/Vue3 + Ant Design Vue + Vite/Webpack,适配PC端与移动端
- 后端技术栈:Spring Boot 2.x/3.x + MyBatis-Plus + Spring MVC,原生支持Spring Cloud微服务架构
- 数据库支持:MySQL 5.7+/8.0+、Oracle 11g+、SQL Server、PostgreSQL、达梦、人大金仓等主流商业与国产数据库
- 运行环境:JDK 8+/17+、Tomcat/Jetty、Redis(可选,用于元数据缓存)、Maven/Gradle
- 依赖模块:JEECG Boot 基础权限体系、字典管理、多数据源管理(可选)、Flowable工作流引擎(可选)
1.5 适用场景与能力边界
✅ 适用场景:
- 企业级管理系统的标准CRUD业务功能(部门管理、客户管理、订单管理、档案管理等)
- 业务需求快速原型验证与MVP开发
- 需求频繁变更、需要快速迭代的业务场景
- 非专业开发人员搭建的轻量化业务应用
- 与工作流结合的OA审批表单、业务申请单
- 中小规模的数据统计、报表查询场景
❌ 不适用场景(建议使用代码生成器二次开发):
- 超复杂业务逻辑、大量算法与规则计算的核心系统
- 高并发、高可用要求的核心交易系统
- 需要深度定制UI交互、特殊视觉效果的前端页面
- 需要大量对接第三方系统、复杂接口集成的场景
- 需要对底层逻辑进行深度改造、自主可控的核心业务
二、核心架构与底层驱动原理
2.1 整体四层架构体系
Online表单采用分层解耦的架构设计,全链路基于元数据驱动,从上到下分为四层:
- 前端渲染层
- 核心组件:可视化表单设计器、动态表单渲染引擎、列表渲染引擎、查询组件、按钮组件
- 核心能力:解析后端返回的表单元数据JSON,动态渲染生成PC/移动端界面,处理用户交互、校验、联动、事件触发,与后端接口交互
- 特点:组件化、可扩展、自适应,支持自定义组件接入
- 后端服务层
- 核心模块:元数据管理服务、表单解析引擎、动态SQL引擎、权限校验服务、CRUD通用服务、增强扩展服务、接口封装服务
- 核心能力:接收前端请求,解析表单元数据,执行权限校验,动态生成业务SQL,处理增删改查逻辑,执行自定义增强钩子,返回处理结果
- 特点:通用化、可扩展、事务可控,支持自定义服务接入
- 元数据持久层
- 核心载体:JEECG系统内置的
jeecg_online_*系列系统表,存储所有表单的配置元数据 - 核心内容:表单基础信息、字段配置、规则配置、布局配置、权限配置、增强配置、按钮配置等
- 特点:结构化存储、版本化管理、隔离性强,不与业务数据耦合
- 核心载体:JEECG系统内置的
- 业务数据层
- 核心载体:用户自定义的业务数据表(单表、主子表、树形表等)
- 核心内容:用户通过Online表单录入、管理的业务数据
- 特点:与元数据完全隔离,业务表结构自主可控,支持多数据源切换
2.2 元数据驱动的核心原理
元数据驱动是Online表单的核心底层逻辑,所有表单的行为、样式、逻辑、权限均由元数据定义,而非硬编码。
- 核心逻辑:将表单的所有属性(字段、布局、校验、联动、权限、按钮等)抽象为标准化的元数据模型,以JSON格式存储在系统表中
- 运行流程:
- 用户访问表单时,后端从数据库/缓存中读取该表单的完整元数据
- 前端渲染引擎接收元数据,动态解析并生成对应的界面组件、校验规则、联动逻辑
- 用户提交操作时,后端解析元数据,动态生成对应的SQL语句,执行业务操作,同时执行权限校验与自定义增强逻辑
- 需求变更时,仅需修改元数据配置,无需修改任何源码,全链路实时生效
- 核心优势:实现了"配置即代码",将业务逻辑与代码解耦,大幅提升开发与迭代效率
2.3 核心元数据模型与存储结构
Online表单的元数据分为六大核心类,对应系统内置的核心表:
- 表单主元数据 :存储表单基础信息,对应表
jeecg_online_form_head,核心字段包括表单ID、表单名称、表名、数据源、表单类型、布局类型、状态、版本号等 - 字段元数据 :存储表单所有字段配置,对应表
jeecg_online_form_item,核心字段包括字段ID、表单ID、字段名、字段类型、控件类型、校验规则、字典编码、显隐规则等 - 规则元数据 :存储表单的联动、校验、计算规则,对应表
jeecg_online_form_rule,核心字段包括规则ID、表单ID、规则类型、触发条件、执行动作、状态等 - 按钮元数据 :存储表单的自定义按钮配置,对应表
jeecg_online_form_button,核心字段包括按钮ID、表单ID、按钮名称、触发事件、权限编码、样式等 - 增强元数据 :存储表单的前后端自定义增强配置,对应表
jeecg_online_form_enhance,核心字段包括增强ID、表单ID、增强类型、触发时机、增强代码等 - 关联元数据 :存储表单的主子表、关联表配置,对应表
jeecg_online_form_relation,核心字段包括关联ID、主表ID、子表ID、关联字段、关联类型等
2.4 全链路运行流程原理
以用户访问并操作Online表单为例,全链路运行流程如下:
- 元数据加载:用户点击表单菜单,前端发起请求,后端校验用户权限,从缓存/数据库读取表单完整元数据,返回给前端
- 界面动态渲染:前端渲染引擎解析元数据,动态生成表单布局、控件、列表、查询条件、按钮,注入校验规则、联动逻辑、事件监听,完成界面渲染
- 用户交互处理:用户在界面进行输入、选择、联动触发等操作,前端实时执行校验、显隐控制、赋值计算等逻辑,无需请求后端
- 业务操作请求:用户点击提交/保存/删除/查询等按钮,前端封装请求数据,发起对应接口请求
- 后端权限与元数据解析:后端接收请求,先校验用户的功能权限、字段权限、数据权限,再解析表单元数据,确定操作类型与业务逻辑
- 动态SQL生成与执行:后端根据元数据与请求参数,动态生成参数化的SQL语句,执行增删改查操作,处理主子表级联操作,保障事务一致性
- 自定义增强执行:在操作的前置/后置节点,执行用户配置的自定义增强逻辑(如保存前数据校验、保存后发送消息通知等)
- 结果返回与界面刷新:后端将操作结果返回给前端,前端根据结果刷新界面,给出操作提示,完成全流程操作
三、核心功能
3.1 表单设计器核心能力
表单设计器是Online表单的核心可视化工具,采用拖拽式操作,所见即所得,支持全场景的表单设计需求。
3.1.1 全类型控件体系
内置四大类控件,覆盖99%的企业级表单场景,支持自定义控件扩展:
- 基础控件:单行输入框、多行文本框、数字输入框、单选按钮组、复选框组、下拉选择框、日期选择器、时间选择器、日期范围选择器、开关、滑块、评分、颜色选择器
- 高级控件:富文本编辑器、Markdown编辑器、文件上传、图片上传、地址选择器、电子签名、二维码/条形码生成器、级联选择器、树形选择器、弹窗选择器
- 业务控件:用户选择器、部门选择器、岗位选择器、角色选择器、字典选择器、公司选择器、流程意见框、流程审批记录
- 系统控件:主键ID、创建人、创建时间、更新人、更新时间、租户ID、流程状态,自动赋值,无需用户输入
3.1.2 灵活布局能力
支持多种布局模式,适配复杂表单的排版需求:
- 栅格布局:基于24栅格系统,自由调整控件的宽度占比,支持一行多列,自适应屏幕宽度
- 分组布局:将相关字段分组,支持分组标题、折叠/展开、边框设置,提升表单可读性
- 标签页布局:字段过多时,分多个标签页展示,减少页面滚动
- 折叠面板布局:将非核心字段放在折叠面板中,默认折叠,按需展开
- 行内布局:多个控件在同一行内展示,适配紧凑排版需求
- 自适应布局:自动适配PC端、平板、手机等不同屏幕尺寸,支持移动端专属布局配置
3.1.3 智能规则引擎
内置可视化规则引擎,零代码实现复杂的表单逻辑:
- 校验规则:内置必填、长度、数值范围、正则、唯一性、邮箱/手机号/身份证等格式校验,支持在线编写JS自定义校验函数,可配置失焦/实时/提交等触发时机
- 联动规则:通过"触发条件-执行动作"可视化配置,支持多条件组合(与/或),可实现字段显隐、禁用/启用、必填/非必填控制、字段赋值、选项过滤等核心动作
- 计算规则:内置加减乘除、求和、平均值、日期差等常用公式,支持在线编写JS函数实现复杂业务计算,输入值变化时自动触发实时计算
3.1.4 数据关联与表结构支持
支持多种表结构与数据关联模式,覆盖复杂的业务数据模型:
- 单表模式:最基础的模式,对应单个业务表,适合简单CRUD场景
- 主子表(一对多)模式:支持主表+多个子表配置,比如订单主表+订单明细子表,支持子表增删改查、行内编辑、合计计算、级联保存与删除
- 一对一/多对多关联模式:一对一关联支持关联表字段的编辑与展示;多对多关联通过中间表实现,支持关联数据的选择与维护
- 树形表模式:支持树形结构的表单与列表,比如部门管理、分类管理,支持上下级关联、树形展开/折叠、拖拽排序
- 多数据源/字典关联:表单可绑定不同数据源,实现跨库表单配置;字段可绑定系统字典,自动加载选项,实现数据标准化
3.2 列表与数据管理能力
Online表单同步配置数据列表页面,实现数据的全生命周期管理。
- 列表可视化配置:自由选择列表展示字段,配置列的标题、宽度、对齐方式、排序、冻结、格式化、自定义渲染,支持斑马纹、固定表头、固定列等样式设置
- 全场景查询过滤能力:支持普通查询、高级查询、折叠查询、范围查询、模糊/精确查询,可配置每个查询条件的匹配模式,绑定字典的字段自动生成下拉查询选项
- 数据操作与批量处理:内置新增、编辑、删除、查看、批量删除等基础按钮,支持行内编辑、批量编辑、复制数据、导入导出等高级按钮,支持自定义按钮配置与权限控制
- 导入导出全能力:支持Excel模板下载、数据导入、导入校验、错误提示、重复数据处理;支持选中行/全部数据/查询结果导出、Excel/PDF格式导出、自定义导出字段、大数据量异步导出
3.3 流程与业务生态集成
3.3.1 工作流深度集成
- 一键发起流程:Online表单配置完成后,可直接绑定Flowable工作流,一键发起流程审批
- 节点级权限控制:每个流程节点可单独配置表单的字段权限(可读/可编辑/隐藏)、按钮权限,适配审批场景需求
- 流程事件联动:支持流程节点的事件触发,比如流程通过后自动更新表单状态、驳回后自动通知申请人
- 审批记录集成:表单中可直接展示流程审批记录、审批意见,无需额外开发
3.3.2 平台生态模块集成
与JEECG平台全生态深度集成:表单数据可直接对接Online报表、仪表盘、数据大屏;可配置到系统门户;支持操作后自动发送多渠道消息通知;原生支持多租户隔离;与文档管理模块联动实现附件统一管理。
3.4 报表与可视化能力
内置轻量级报表能力,无需额外开发:
- 支持分组、求和、平均值、计数等聚合查询,交叉报表统计
- 一键生成柱状图、折线图、饼图、雷达图等图表,支持数据钻取
- 支持自定义打印模板,配置表单与列表的打印格式,一键打印
3.5 自动接口与开放能力
Online表单配置完成后,自动生成标准化的RESTful API接口,无需编写任何代码:
- 自动生成分页查询、详情、新增、编辑、删除、批量操作、导入导出等核心接口
- 自动生成Swagger/OpenAPI接口文档,包含请求/响应参数与示例
- 所有接口集成JEECG权限体系,支持token校验、角色权限控制、接口限流
- 支持在线配置自定义接口,编写后端Java代码,实现复杂业务接口,支持第三方系统对接
3.6 多端适配能力
- 移动端自适应:自动生成H5移动端界面,适配手机、平板等移动设备,支持移动端专属布局与控件适配
- 小程序/APP适配:支持生成微信/支付宝小程序表单页面,可集成到JEECG原生APP中
- 统一权限:PC端与移动端权限完全统一,一次配置,多端生效
四、全生命周期开发配置流程
4.1 前期准备阶段
- 业务需求梳理:明确表单的业务场景、字段需求、业务规则、权限要求、流程需求
- 数据模型设计:设计业务表结构,确定字段类型、长度、主键、外键、索引
- 基础配置准备:在系统中配置好对应的数据源、数据字典、用户角色、部门架构
- 权限规划:提前规划不同角色的表单权限、字段权限、数据权限
4.2 表单基础创建阶段
- 新建Online表单:进入设计器,选择表单类型(单表/主子表/树形表)
- 基础属性配置:填写表单名称、表名、选择数据源、表单描述等基础信息
- 表结构同步:支持两种模式:① 在线设计表结构,自动生成数据库表;② 同步数据库已有的表结构,自动生成字段配置
- 关联配置:主子表模式下,配置主表与子表的关联字段、关联类型
4.3 表单可视化设计阶段
- 控件拖拽配置:从控件库中拖拽控件到设计区,绑定对应的业务字段
- 字段属性配置:配置每个字段的标签、占位符、默认值、是否必填、字典绑定、样式等属性
- 布局调整:通过栅格系统调整控件的宽度、位置,配置分组、标签页、折叠面板等布局
- 系统字段配置:配置主键、创建人等系统字段,设置是否在表单/列表中显示
4.4 规则与联动配置阶段
- 校验规则配置:为字段配置必填、格式、长度、唯一性等校验规则,复杂校验配置自定义正则或JS函数
- 联动规则配置:通过可视化规则引擎,配置"触发条件-执行动作"的联动逻辑
- 计算规则配置:配置字段的计算公式,实现自动计算
- 规则测试:预览表单,测试所有规则是否正常触发
4.5 列表与查询配置阶段
- 列表列配置:选择列表展示字段,配置列的宽度、排序、冻结、格式化等
- 查询条件配置:配置列表的查询条件,选择查询控件、匹配模式、是否默认显示
- 按钮配置:配置列表需要显示的按钮,设置按钮的位置、权限、样式,新增自定义按钮
- 导入导出配置:配置导入导出的字段、模板,设置是否允许导入导出
4.6 权限精细化配置阶段
- 功能权限配置:为不同角色分配表单的访问、新增、编辑、删除等功能权限
- 字段权限配置:为不同角色配置字段的可读、可编辑、隐藏、脱敏权限
- 数据权限配置:为不同角色配置行级数据权限,比如仅本人数据、本部门数据等
- 按钮权限配置:为不同角色配置按钮的显示权限
- 权限测试:切换不同角色,测试权限是否正常生效
4.7 自定义增强扩展阶段
- 前端增强:在线编写自定义JS代码处理表单生命周期事件、自定义交互;配置自定义CSS修改表单样式
- 后端增强:配置保存前/后、删除前/后、查询前/后等钩子函数,在线编写Java代码实现复杂业务逻辑
- 自定义按钮事件:为自定义按钮配置前端事件与后端处理逻辑
- 自定义接口:配置自定义业务接口,实现复杂需求
- 增强逻辑测试:测试所有自定义增强逻辑是否正常执行
4.8 测试验证与发布上线
- 表单预览:测试表单的渲染、控件、校验、联动、计算是否正常
- 全流程测试:测试增删改查、导入导出、批量操作、权限控制、流程发起等全流程功能
- 兼容性测试:测试PC端不同浏览器、移动端不同设备的适配情况
- 表单发布:测试通过后,将表单发布为正式版本
- 菜单配置:在系统菜单管理中,配置表单的访问菜单,设置图标、排序、父级菜单
- 权限分配:将菜单权限分配给对应的角色,用户即可通过菜单访问表单
4.9 迭代维护与版本管理
- 表单修改:需求变更时,直接修改表单配置,实时生效
- 版本管理:每次修改表单都会生成新的版本号,记录修改内容,支持历史版本查看、回滚
- 配置备份:定期将表单配置导出为JSON文件,备份存档
- 性能优化:根据使用情况,优化表单的字段、查询条件、索引,提升性能
- 问题修复:针对用户反馈的问题,快速调整配置,修复问题
五、高级特性与进阶扩展能力
5.1 复杂业务场景支持
- 主子表三级嵌套:支持主表+子表+孙子表的三级嵌套,适配超复杂业务数据模型
- 弹窗表单:支持弹窗形式的表单,用于数据选择、快速新增、详情查看,无需跳转页面
- 行内编辑子表:子表支持行内编辑,无需弹窗,快速录入明细数据
- 数据回填:支持从其他表单、弹窗选择器中选择数据,回填到当前表单的多个字段
- 跨表联动:支持不同表之间的数据联动,比如选择商品编码,自动回填商品名称、规格、单价
- 表单暂存:支持未填写完成的表单暂存,下次打开继续填写
- 表单复制:支持复制已有表单的配置,快速生成新的表单
5.2 前后端自定义增强能力
前端自定义增强
- 在线JS:支持表单的created、mounted、beforeSubmit等生命周期钩子,编写自定义JS代码处理复杂前端逻辑
- 在线CSS:支持自定义CSS样式,修改表单的外观、布局、控件样式
- 自定义组件:支持开发自定义Vue组件,接入到表单设计器中,扩展控件能力
- 自定义事件:支持自定义按钮的点击事件、字段的change/blur事件等
后端自定义增强
- 8大核心钩子:支持新增/编辑保存前/后、删除前/后、列表查询前/后、详情查询前/后钩子,在线编写Java代码实现业务逻辑
- 自定义SQL:支持在钩子中编写自定义SQL,实现复杂的数据操作
- 服务类调用:支持调用系统中已有的Spring Bean服务类,复用业务逻辑
- 自定义接口:支持在线编写自定义Controller接口,生成自定义API
5.3 多租户与多数据源支持
- 多租户支持:不同租户的表单配置与业务数据完全隔离,租户只能看到自己创建的表单与数据,支持租户级的表单权限配置
- 多数据源支持:每个表单可独立绑定不同的数据源,支持MySQL、Oracle等不同数据库的表单配置,支持跨库表关联与数据联动,运行时自动切换数据源
5.4 国际化与版本管理能力
- 国际化支持:支持表单的标签、提示信息、按钮名称、错误提示的多语言配置,与JEECG平台国际化体系完全集成,自动适配用户选择的语言
- 版本管理:每次表单修改都会生成新版本,记录修改人、修改时间、修改内容,支持版本对比、历史版本回滚
- 灰度发布:支持将表单新版本发布给指定的角色/用户测试,测试通过后再全量发布;支持表单发布审批流程,保障生产环境安全
5.5 高级安全与合规能力
- 数据脱敏:支持手机号、身份证号、银行卡号等敏感字段的脱敏显示,不同角色可配置不同的脱敏程度
- 数据加密:支持敏感字段的数据库加密存储,自动加密解密,无需额外开发
- 操作审计:所有表单操作都记录详细审计日志,包含操作人、时间、内容、IP、设备信息,可追溯可审计
- 水印配置:支持表单与列表页面的水印配置,显示用户名称、ID、时间,防止数据泄露
- 防重复提交:内置防重复提交机制,防止用户重复点击提交按钮导致重复数据
六、企业级权限与安全管控体系
6.1 五维精细化权限管控体系
Online表单基于RBAC模型,实现了企业级全维度权限管控:
- 功能级权限:控制角色是否可以访问某个表单,是否可以使用新增、编辑、删除、导入导出等核心功能,通过菜单与按钮权限分配实现
- 字段级权限:控制角色对每个字段的访问权限,分为可编辑、只读、隐藏、脱敏显示四个等级,精细化管控敏感字段
- 行级(数据)权限:控制角色可以访问的数据范围,内置全部数据、仅本人数据、本部门数据、本部门及以下数据、自定义SQL规则5种预置模式
- 按钮级权限:控制角色可以看到哪些按钮、使用哪些操作功能,包括系统内置按钮和自定义按钮,通过权限编码实现精细化管控
- 流程节点级权限:控制流程不同节点中,用户对表单的字段权限和按钮权限,适配审批场景的动态权限需求
6.2 全链路安全防护能力
- SQL注入防护:所有动态生成的SQL都采用参数化处理,从根源上防止SQL注入攻击
- XSS跨站脚本防护:表单输入内容自动进行XSS过滤,过滤恶意脚本代码
- CSRF跨站请求伪造防护:所有接口都采用token校验机制,防止CSRF攻击
- 越权访问防护:所有接口请求都会先校验用户的功能、字段、数据权限,防止水平越权和垂直越权
- 接口限流防护:内置接口限流机制,防止恶意请求刷接口,保障系统稳定性
- 文件上传防护:文件上传控件内置文件类型、大小、内容校验,防止上传恶意文件
6.3 审计日志与合规追溯
- 所有表单操作都记录详细的审计日志,包括操作类型、操作人、时间、IP、设备信息、操作前后数据、请求参数
- 支持按表单、操作人、时间、操作类型等条件查询审计日志,支持日志导出
- 审计日志长期留存,不可篡改,符合等保2.0、GDPR等合规要求
- 支持异常操作监控告警,比如大量删除数据、批量导出敏感数据等,及时发现安全风险
七、底层技术实现机制
7.1 前端动态渲染引擎原理
- 核心架构:基于Vue组件化架构,采用JSON Schema驱动的渲染模式,将元数据JSON映射为Vue组件
- 核心渲染流程:元数据解析→组件映射→属性注入→双向绑定→规则注入→事件绑定→界面渲染
- 核心特点:组件化、可扩展、高性能,支持自定义组件接入,支持复杂的联动逻辑
7.2 后端动态SQL与服务处理原理
- 核心架构:基于MyBatis-Plus通用Mapper,结合元数据解析,动态生成SQL语句,实现通用CRUD服务
- 核心处理流程(以保存为例):请求接收→权限校验→元数据解析→数据校验→前置钩子执行→动态SQL生成→SQL执行→后置钩子执行→审计日志记录→结果返回
- 核心特点:全参数化处理防止SQL注入,自动过滤无权限字段,主子表操作自动开启事务保障数据一致性,多数据源自动适配
7.3 事务与数据一致性保障
- 主子表级联事务:主子表的增删改查操作都在同一个事务中,任何环节出错全部回滚,保障数据一致性
- 分布式事务支持:微服务架构下,支持Seata分布式事务,保障跨服务的表单操作数据一致性
- 乐观锁支持:支持乐观锁配置,防止并发修改导致的数据覆盖问题
- 全量数据校验:保存前执行全量数据校验,保障数据的完整性、合法性
7.4 缓存机制与性能优化底层实现
- 元数据多级缓存:采用"本地缓存+Redis缓存"的多级缓存机制,缓存表单完整元数据,修改表单后自动刷新缓存,大幅提升访问性能
- 列表查询优化:强制分页机制、字段权限过滤、索引优化建议、慢SQL监控,提升大数据量查询性能
- 大数据量处理:异步导入导出、分批处理机制,防止单次操作数据量过大导致的系统压力
7.5 异常处理与容错机制
- 全局异常拦截:内置全局异常拦截器,捕获所有异常,统一处理,返回友好错误提示,不暴露系统底层信息
- 事务自动回滚:业务异常发生时,自动回滚事务,保障数据一致性
- 降级容错:缓存不可用时,自动降级到数据库查询;第三方接口调用失败时,自动重试或返回降级结果
- 前端容错:遇到未知控件类型、配置错误,自动降级处理,不会导致页面白屏
八、部署、运维与性能优化
8.1 多环境迁移与部署方案
- 导出导入迁移方案(推荐):开发环境导出表单配置为JSON/ZIP文件,测试/生产环境导入,操作简单,支持单个/批量表单迁移,适合常规发布
- 数据库脚本迁移方案 :导出开发环境
jeecg_online_*系列表的配置数据为SQL脚本,在目标环境执行,精准可控,适合大规模表单迁移 - 自动化部署方案:通过CI/CD流水线,自动导出、部署、测试、发布表单配置,适合大型项目、DevOps流程
8.2 配置备份与恢复机制
- 手动备份:支持单个/批量表单配置导出为JSON/ZIP文件,支持加密备份
- 自动备份:可配置定时任务,定期自动备份所有Online表单配置,存储到服务器/云存储
- 版本备份:每次表单修改自动生成历史版本,支持随时回滚
- 恢复机制:支持单表单恢复、批量恢复、版本回滚、全量数据库恢复
- 灾备机制:支持跨区域备份存储,防止服务器故障导致的配置丢失
8.3 全场景性能优化最佳实践
前端性能优化
- 字段过多时,使用标签页、折叠面板拆分,避免一次性渲染大量控件
- 减少不必要的联动规则,避免频繁触发计算影响页面响应速度
- 大数据量列表采用虚拟滚动,提升渲染性能
- 开启Gzip压缩,减少接口传输的数据量
后端性能优化
- 为业务表的查询条件、排序字段、关联字段建立合适的索引,避免全表扫描
- 开启元数据Redis缓存,提升元数据读取性能
- 列表查询强制分页,禁止全量查询,大数据量导入导出采用异步任务处理
- 合理设置JVM参数,优化数据库连接池配置,集群部署提升并发能力
8.4 监控、告警与故障排查
- 监控体系:覆盖表单访问监控、操作监控、性能监控、异常监控、服务器资源监控
- 告警机制:支持异常告警、性能告警、安全告警、资源告警,适配站内信、短信、邮件、企业微信等多渠道
- 通用故障排查流程:问题定位→前端排查(控制台报错、网络请求)→后端排查(日志、异常堆栈)→元数据配置排查→数据库排查→问题修复→验证测试
九、常见问题与解决方案
9.1 配置与渲染类问题
- 表单访问页面空白、控制台报错:检查表单是否已发布、菜单配置的表单ID是否正确、清除浏览器与Redis缓存、检查元数据配置是否有错误
- 联动规则不生效:检查触发条件与执行动作是否正确、字段名是否匹配、规则是否启用、是否有规则冲突、查看控制台是否有JS报错
- 发布后部分控件不显示:检查字段权限配置、字段显隐规则、表单版本是否已发布、清除缓存重新加载
9.2 数据与业务逻辑类问题
- 表单保存失败,提示数据校验失败:检查必填字段是否填写、格式是否符合要求、唯一性字段是否重复、数据库表结构是否匹配、前置钩子是否抛出校验异常
- 主子表数据保存失败:检查主表与子表的关联字段配置是否正确、子表必填字段是否有值、数据库外键约束是否正确、查看后端异常日志
- 导入数据失败:使用系统标准模板、检查必填字段与格式、字典字段填写字典值而非标签、检查唯一性字段是否重复、大数据量分批导入
9.3 权限与安全类问题
- 用户无法访问表单:检查菜单权限是否分配、用户是否拥有对应角色、表单是否已发布启用、清除缓存重新登录
- 字段权限不生效:检查角色配置是否正确、是否有多个角色权限取并集、表单是否重新发布、清除缓存重新登录
- 数据权限不生效:检查角色配置是否正确、是否有角色配置了全部数据权限、业务表是否有创建人/部门字段、自定义SQL规则是否正确
9.4 性能与运维类问题
- 表单页面加载缓慢:拆分过多字段到标签页/折叠面板、开启元数据缓存、优化联动规则、检查网络与静态资源加载
- 列表查询缓慢:为查询条件与排序字段建立索引、强制开启分页、优化SQL语句避免全表扫描、大数据量表分库分表
- 大数据量导出失败:开启异步导出、分批导出、优化导出SQL只查询必要字段、调整JVM内存配置、限制单次导出最大数据量
十、场景化最佳实践与选型建议
10.1 核心业务场景最佳实践
场景1:OA审批类表单(请假、报销、采购申请)
- 表单结构按申请人信息、申请明细、审批信息分组,使用系统控件自动填充申请人、部门、时间等信息
- 根据申请类型、金额联动显示必填字段,绑定审批流程,配置每个节点的字段权限,审批节点仅可查看不可编辑
- 配置附件上传与标准打印模板,支持申请单一键打印
场景2:CRM客户管理类表单
- 采用主子表模式:客户主表+跟进记录子表+商机子表,实现客户全生命周期管理
- 精细化配置数据权限与字段权限,销售仅可查看自己负责的客户,敏感字段仅负责人与经理可见
- 配置行业、客户级别联动规则,对接CRM报表实现业绩统计,新增跟进记录自动通知销售经理
场景3:ERP进销存类表单
- 采用主子表模式,明细子表支持行内编辑,配置自动计算规则:金额=数量*单价,总金额自动汇总
- 选择商品编码自动回填商品信息,出库单保存前通过前置钩子校验库存是否充足
- 配置订单状态流转、唯一性校验、严格的审计日志,符合财务合规要求
10.2 企业级落地规范
- 命名规范:表单名称、表名、字段名见名知意,统一命名规则,避免拼音与缩写混乱
- 布局规范:字段按业务逻辑分组,核心必填字段放在顶部,非核心字段放在折叠面板,一行最多放置3个控件
- 权限规范:遵循最小权限原则,按岗位划分角色,敏感字段严格控制权限,高风险操作按钮仅授权给管理员
- 版本管理规范:开发环境配置、测试环境验证、生产环境发布,每次修改填写版本说明,发布前备份配置
10.3 避坑指南与选型建议
核心避坑指南
- 不要过度依赖Online表单实现超复杂业务逻辑,复杂场景优先使用代码生成器二次开发
- 不要在一个表单中放置过多字段,单表字段建议不超过50个,避免渲染缓慢、维护困难
- 不要滥用联动规则,过多规则会导致页面响应缓慢、逻辑混乱,复杂逻辑建议使用自定义JS函数并做好注释
- 不要直接在生产环境修改表单配置,必须经过开发、测试、审批流程,防止线上故障
- 不要忽略数据库索引设计,业务表必须为查询条件、排序字段建立合适的索引
能力选型建议
| 业务场景 | 优先选择Online表单 | 优先选择代码生成器 |
|---|---|---|
| 标准CRUD业务、基础数据管理 | ✅ 优先选择 | ❌ 不推荐 |
| 需求频繁迭代、需要快速调整 | ✅ 优先选择 | ❌ 不推荐 |
| 业务人员自主搭建的轻量化应用 | ✅ 优先选择 | ❌ 不推荐 |
| OA审批、简单CRM/ERP场景 | ✅ 优先选择 | ❌ 不推荐 |
| 超复杂业务逻辑、大量算法计算 | ❌ 不推荐 | ✅ 优先选择 |
| 高并发、高可用核心交易系统 | ❌ 不推荐 | ✅ 优先选择 |
| 深度定制UI交互、特殊视觉效果 | ❌ 不推荐 | ✅ 优先选择 |
| 大量第三方系统对接、复杂接口集成 | ❌ 不推荐 | ✅ 优先选择 |
- 混合模式推荐:企业级项目建议采用"Online表单+代码生成器"的混合模式,标准CRUD、审批表单用Online表单快速搭建,核心业务、复杂场景用代码生成器二次开发,兼顾开发效率与系统扩展性。