​元数据管理—动态表单设计器在crudapi系统中完整实现

2021-08-24 10:59:10 浏览数 (1)

表单设计

在前面文章中,我们通过一系列案例介绍了表单设计的一些基本功能,表单设计起到非常重要作用,也是crudapi核心,所以本文会详细介绍表单设计中一些其它功能。

概要

表单字段column属性

列英文名称

描述

name

英文名称

caption

中文名称

autoIncrement

是否自增长

description

描述

displayOrder

序号,UI中显示的顺序

dataType

数据类型,比如字符串、整数等

seqId

序列号ID,用于设置流水号

indexName

索引名称

indexStorage

索引存储, 支持BTREE、HASH

indexType

索引类型,支持PRIMARY, UNIQUE, INDEX, FULLTEXT

length

长度

precision

精密度、精确(精度),表示该字段的有效数字位数

scale

刻度、数值范围,表示该字段的小数位数

nullable

是否可为空

unsigned

是否无符号

insertable

是否可插入

queryable

是否可查询

systemable

是否系统字段

updatable

是否可修改

createdDate

创建时间

lastModifiedDate

修改时间

以上属性不是所有的都同时有效,比如unsigned只有在dataType为数字的时候才有效,为字符串的时候会忽略,其它情况的类似。

系统字段
systemsystem

创建表单的时候会默认添加5个系统字段,分别是编号id,名称name,全文索引fullTextBody,创建时间 createdDate和修改时间lastModifiedDate,以customer为例,系统字段json内容如下:

代码语言:txt复制
[{
    "autoIncrement": true,
    "caption": "编号",
    "createdDate": 1613181300985,
    "dataType": "BIGINT",
    "description": "主键",
    "displayOrder": 0,
    "id": 253,
    "indexType": "PRIMARY",
    "insertable": false,
    "lastModifiedDate": 1613182114133,
    "length": 20,
    "name": "id",
    "nullable": false,
    "queryable": false,
    "systemable": true,
    "unsigned": true,
    "updatable": false
}, {
    "autoIncrement": false,
    "caption": "名称",
    "createdDate": 1613181300985,
    "dataType": "VARCHAR",
    "description": "名称",
    "displayOrder": 1,
    "id": 254,
    "insertable": true,
    "lastModifiedDate": 1613182114133,
    "length": 200,
    "name": "name",
    "nullable": false,
    "queryable": true,
    "systemable": true,
    "unsigned": false,
    "updatable": true
}, {
    "autoIncrement": false,
    "caption": "全文索引",
    "createdDate": 1613181300985,
    "dataType": "TEXT",
    "description": "全文索引",
    "displayOrder": 2,
    "id": 255,
    "indexName": "ft_fulltext_body",
    "indexType": "FULLTEXT",
    "insertable": false,
    "lastModifiedDate": 1613182114133,
    "name": "fullTextBody",
    "nullable": true,
    "queryable": false,
    "systemable": true,
    "unsigned": false,
    "updatable": false
}, {
    "autoIncrement": false,
    "caption": "创建时间",
    "createdDate": 1613181300985,
    "dataType": "DATETIME",
    "description": "创建时间",
    "displayOrder": 3,
    "id": 256,
    "insertable": false,
    "lastModifiedDate": 1613182114133,
    "name": "createdDate",
    "nullable": false,
    "queryable": false,
    "systemable": true,
    "unsigned": false,
    "updatable": false
}]
唯一性索引

索引类型包括主键、全文、普通、唯一,全文索引之前已经介绍过了,普通索引主要是为了提高查询效率,这里主要介绍一下唯一性索引

indexindex

客户表mobile手机字段创建唯一性索引,表示手机号不允许重复

uqmobileuqmobile

添加客户时,录入添加已经存在的手机号,提示重复错误,和期望的一致,唯一性索引可以防止数据重复。

联合索引

如果索引只有一个字段,在设置列属性的时候直接设置。如果是多个字段联合索引,就需要单独设置了。这里可以创建普通或唯一两种类型的联合索引,通过下拉框选择多个字段。

unionindexunionindex

比如给customer设置一个联合索引,最终得到的索引功能和之前单个字段索引类似。

附件

附件类型字段支持保存附件,主要是文档、图片等

urlurl

设置文件file表的url链接字段属性为ATTACHMENT

filefile

录入数据时候,附件字段可以上传文件,如果是图片可以预览。

表单设计API
SwaggerSwagger

表单设计提供了API,如果默认提供的后台管理UI不适合,可以二次开发,重新设计UI,通过API管理表单,API文档如下:

https://demo.crudapi.cn/swagger-ui.html

apiapi

Postman查询customer表单元数据。

小结

本文介绍了表单设计完整功能,既可以通过UI配置实现,也可以通过API进行二次开发。

附demo演示

本系统属于产品级的零代码平台,不同于自动代码生成器,不需要生成Controller、Service、Repository、Entity等业务代码,程序运行起来就可以使用,真正0代码,可以覆盖基本的和业务无关的CRUD RESTful API。

官网地址:https://crudapi.cn

测试地址:https://demo.crudapi.cn/crudapi/login

0 人点赞