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

37次阅读

共计 2641 个字符,预计需要花费 7 分钟才能阅读完成。

表单设计

在后面文章中,咱们通过一系列案例介绍了表单设计的一些基本功能,表单设计起到十分重要作用,也是 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 为数字的时候才无效,为字符串的时候会疏忽,其它状况的相似。

零碎字段


创立表单的时候会默认增加 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
}]

唯一性索引

索引类型包含主键、全文、一般、惟一,全文索引之前曾经介绍过了,一般索引次要是为了进步查问效率,这里次要介绍一下唯一性索引

客户表 mobile 手机字段创立唯一性索引,示意手机号不容许反复


增加客户时,录入增加曾经存在的手机号,提醒反复谬误,和冀望的统一,唯一性索引能够避免数据反复。

联结索引

如果索引只有一个字段,在设置列属性的时候间接设置。如果是多个字段联结索引,就须要独自设置了。这里能够创立一般或惟一两种类型的联结索引,通过下拉框抉择多个字段。

比方给 customer 设置一个联结索引,最终失去的索引性能和之前单个字段索引相似。

附件

附件类型字段反对保留附件,次要是文档、图片等


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


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

表单设计 API


表单设计提供了 API,如果默认提供的后盾治理 UI 不适宜,能够二次开发,从新设计 UI,通过 API 治理表单,API 文档如下:
https://demo.crudapi.cn/swagger-ui.html


Postman 查问 customer 表单元数据。

小结

本文介绍了表单设计残缺性能,既能够通过 UI 配置实现,也能够通过 API 进行二次开发。

附 demo 演示

本零碎属于产品级的零代码平台,不同于主动代码生成器,不须要生成 Controller、Service、Repository、Entity 等业务代码,程序运行起来就能够应用,真正 0 代码,能够笼罩根本的和业务无关的 CRUD RESTful API。

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

正文完
 0