业务对象与表单

开源版本【业务对象、表单讲解】请参考https://www.bilibili.com/video/av54295253/ (angular表单)

该视频讲解了实体配置,业务对象配置
表单生成,表单模板,表单插件演示,表单开发说明

1.配置业务表

表单管理-》业务对象-》业务实体
点击【新增】 创建业务实体 (也可以选择外部表来添加一个实体)

  1. 定义实体名、表名
  2. 添加属性字段,配置字段的表单展示控件,设置校验规则
  3. 设计预留外键字段(如有关联需求)

实体可以选择是否生成数据库表,若不生成表,需要在业务对象中设置保存模式为”实例表”,否则将无法保存数据(实例表数据会以json形式保存)。
我们建议实体名、属性名与真实代码实体名相同,以便于业务对象转实体对象

实体特殊属性

  • 数据源: 数据源为该表数据库信息,支持多库表共同组织成一个业务对象
  • 实体名: 业务实体的名字,属性名与之意义相同
  • 数据库名: 数据库对应的名字,数据库字段名与之意义相同
  • 是否已经生成表: 实体可以不用生成表,数据可以以业务对象的形式持久化在一张实例表中
    (此种场景适合业务对象来自其他系统,在流程完成业务流转后,将业务数据返回的场景。但需要在业务对象中配置持久化方式。否则必须生成表方可以保存业务数据)
  • 隐藏控件: 隐藏控件不会在生成表单的时候展示该字段。但在业务对象中存在该字段数据
  • 分类: 方便检索归类。此系统所有分类皆是此用意

字段控件

业务对象可以在实体配置的基础上重载配置字段控件。

目前支持控件有

  • 单行文本
  • 隐藏
  • 复选框
  • 多行文本
  • 富文本编辑框-百度编辑器
  • 下拉框多选
  • 下拉框
  • 单选按钮
  • 附件上传
  • 数据字典
  • 流水号 (刷新页面可能会浪费流水号,推荐后台通过表单后置脚本对字段赋值)

如图所示(处于已生成表的状态下,用户可以去数据库检查一下对应表是否正确生成):

2.配置业务对象

表单管理-》业务对象-》业务对象

点击【新增】 创建业务对象

  1. 定义业务对象描述,对象名
  2. 选择主表
  3. 点击添加新增子表
  4. 配置子表与主表的关联关系。也可以配置固定值来进行过滤子表数据
  5. 如果存在多层关系,可以再子表中的【配置子表】中配置子表的关系表

后期会支持乐观锁,会添加业务对象功能插件如数据日志,目前插件有权限处理插件,格式插件,数据解析插件

业务对象特殊属性

  • 持久化方式: 默认为数据持久化方式,支持实例表,如果选择视力表、业务对象将保存在实例表中。(实例表会通过业务对象进行数据分区)
  • 子表关系 一对多 : 意味着主表下,该子表是多条的,对应业务对象中属性名为 xxxList 结构(与真实实体类似约定)
  • 子表关系 一对一 : 意味着主表与子表是一对一的数据结构。对应属性名为 xxx
  • 配置子表: 配置与子表单条数据关联的业务数据

业务对象数据结构

我们举一个例子来描述业务对象的数据结构,以及一对多、一对一对象名的特殊之处。
假设 一个老师Teacher 带多个班级Class,每个班级存在多个学生。 班级与老师其实是多对多关系。 我们在老师和班级中添加一条 关系表ClassRel
一个ClassRel 对应一个班级,一个班级对应多个学生Student
业务对象数据结构如下:

Teacher:{
id:id,
name:name,
ClassRelList:[{ // teacher与之一对多
id:id,
relType:"临时\代课\正式",
Class{ // ClassRel与之一对一
id:xxx,
name:xxx,
....
studentList[ // Class与之 一对多
{},{}...
]
}
}]
}

如图所示(里面可以灵活地配置所需要的外键关系):