元數(shù)據(jù)管理—動態(tài)表單設(shè)計器在crudapi系統(tǒng)中完整實現(xiàn)
表單設(shè)計
在前面文章中,我們通過一系列案例介紹了表單設(shè)計的一些基本功能,表單設(shè)計起到非常重要作用,也是crudapi核心,所以本文會詳細介紹表單設(shè)計中一些其它功能。
#
概要
#
表單字段column屬性
列英文名稱描述name英文名稱caption中文名稱autoIncrement是否自增長description描述displayOrder序號,UI中顯示的順序dataType數(shù)據(jù)類型,比如字符串、整數(shù)等seqId序列號ID,用于設(shè)置流水號indexName索引名稱indexStorage索引存儲, 支持BTREE、HASHindexType索引類型,支持PRIMARY, UNIQUE, INDEX, FULLTEXTlength長度precision精密度、精確(精度),表示該字段的有效數(shù)字位數(shù)scale刻度、數(shù)值范圍,表示該字段的小數(shù)位數(shù)nullable是否可為空unsigned是否無符號insertable是否可插入queryable是否可查詢systemable是否系統(tǒng)字段updatable是否可修改createdDate創(chuàng)建時間lastModifiedDate修改時間
以上屬性不是所有的都同時有效,比如unsigned只有在dataType為數(shù)字的時候才有效,為字符串的時候會忽略,其它情況的類似。
#
系統(tǒng)字段
?創(chuàng)建表單的時候會默認添加5個系統(tǒng)字段,分別是編號id,名稱name,全文索引fullTextBody,創(chuàng)建時間 createdDate和修改時間lastModifiedDate,以customer為例,系統(tǒng)字段json內(nèi)容如下:
[{
"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": "創(chuàng)建時間",
"createdDate": 1613181300985,
"dataType": "DATETIME",
"description": "創(chuàng)建時間",
"displayOrder": 3,
"id": 256,
"insertable": false,
"lastModifiedDate": 1613182114133,
"name": "createdDate",
"nullable": false,
"queryable": false,
"systemable": true,
"unsigned": false,
"updatable": false
}]
#
唯一性索引
索引類型包括主鍵、全文、普通、唯一,全文索引之前已經(jīng)介紹過了,普通索引主要是為了提高查詢效率,這里主要介紹一下唯一性索引?
?客戶表mobile手機字段創(chuàng)建唯一性索引,表示手機號不允許重復(fù)
?添加客戶時,錄入添加已經(jīng)存在的手機號,提示重復(fù)錯誤,和期望的一致,唯一性索引可以防止數(shù)據(jù)重復(fù)。
#
聯(lián)合索引
如果索引只有一個字段,在設(shè)置列屬性的時候直接設(shè)置。如果是多個字段聯(lián)合索引,就需要單獨設(shè)置了。這里可以創(chuàng)建普通或唯一兩種類型的聯(lián)合索引,通過下拉框選擇多個字段。?
?比如給customer設(shè)置一個聯(lián)合索引,最終得到的索引功能和之前單個字段索引類似。
#
附件
附件類型字段支持保存附件,主要是文檔、圖片等
?設(shè)置文件file表的url鏈接字段屬性為ATTACHMENT
?錄入數(shù)據(jù)時候,附件字段可以上傳文件,如果是圖片可以預(yù)覽。
#
表單設(shè)計API
?表單設(shè)計提供了API,如果默認提供的后臺管理UI不適合,可以二次開發(fā),重新設(shè)計UI,通過API管理表單,API文檔如下:
https://demo.crudapi.cn/swagger-ui.html(opens new window)
?Postman查詢customer表單元數(shù)據(jù)。
#
小結(jié)
本文介紹了表單設(shè)計完整功能,既可以通過UI配置實現(xiàn),也可以通過API進行二次開發(fā)。
#
附demo演示
本系統(tǒng)屬于產(chǎn)品級的零代碼平臺,不同于自動代碼生成器,不需要生成Controller、Service、Repository、Entity等業(yè)務(wù)代碼,程序運行起來就可以使用,真正0代碼,可以覆蓋基本的和業(yè)務(wù)無關(guān)的CRUD RESTful API。
官網(wǎng)地址:https://crudapi.cn
測試地址:https://demo.crudapi.cn/crudapi/login
