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

crudapi

共 3177字,需浏览 7分钟

 · 2021-02-28

表单设计

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

#

概要

#

表单字段column属性


列英文名称描述name英文名称caption中文名称autoIncrement是否自增长description描述displayOrder序号,UI中显示的顺序dataType数据类型,比如字符串、整数等seqId序列号ID,用于设置流水号indexName索引名称indexStorage索引存储, 支持BTREE、HASHindexType索引类型,支持PRIMARY, UNIQUE, INDEX, FULLTEXTlength长度precision精密度、精确(精度),表示该字段的有效数字位数scale刻度、数值范围,表示该字段的小数位数nullable是否可为空unsigned是否无符号insertable是否可插入queryable是否可查询systemable是否系统字段updatable是否可修改createdDate创建时间lastModifiedDate修改时间

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

#

系统字段


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


[{
    "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
}]

#

唯一性索引


索引类型包括主键、全文、普通、唯一,全文索引之前已经介绍过了,普通索引主要是为了提高查询效率,这里主要介绍一下唯一性索引 index 客户表mobile手机字段创建唯一性索引,表示手机号不允许重复

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

#

联合索引


如果索引只有一个字段,在设置列属性的时候直接设置。如果是多个字段联合索引,就需要单独设置了。这里可以创建普通或唯一两种类型的联合索引,通过下拉框选择多个字段。 unionindex 比如给customer设置一个联合索引,最终得到的索引功能和之前单个字段索引类似。

#

附件


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

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

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

#

表单设计API


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

https://demo.crudapi.cn/swagger-ui.html(opens new window)

api Postman查询customer表单元数据。

#

小结


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

#

附demo演示


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

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

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



浏览 27
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报