实体配置文件
本文主要介绍实体配置文件需配置的内容以及如何配置,主要有以下可配置内容:
实体名称
字段信息
子实体关联
详情页
卡片
实体筛选
配置总览
{
"title": "采购单",
"partition": [],
"fields": [{
"name": "purchaseNo",
"title": "采购单号",
"marks": ["T"],
"type": "nvarchar(50)",
"input": "text",
"options": [],
"pattern": ".*",
"patternTip": ""
},{
"name": "purchaseId",
"title": "采购单编号",
"marks": ["FK(purchase,id,请购单,产品)"],
"type": "int",
"input": "text",
"options": [],
"pattern": "^[0-9]+$",
"patternTip": "数字"
},{
"name": "currency",
"title": "币别",
"marks": [],
"type":"nvarchar(50)",
"input":"select",
"options": [
{ "value": "RMB", "text": "RMB" },
{ "value": "USD", "text": "USD" },
{ "value": "JPY", "text": "JPY" }
],
"pattern": ".*",
"patternTip": ""
}, "..."],
"dataset": [{
"name": "product",
"elementId": "id",
"elementFK_Field": "purchaseId"
}],
"page": {
"details": [
{ "field": "consigneeAddress", "widget": "label", "row": 5, "column": 1},
{ "field": "consigneeAddress", "widget": "input", "row": 5, "column": 2, "columnSpan": 3}
],
"collections": [{
"title": "集合的标题",
"dataset": "对应的dataset中的集合的 name",
"pagination": "true/[false]",
"rows": "一页显示多少行, 默认 10",
"columns": [
{ "field": "tradeName", "width": 60, "align": "center" },
{ "field": "brand", "width": 60, "align": "center" },
{ "field": "specification", "width": 60, "align": "center" },
{ "field": "unit", "width": 60, "align": "center" },
{ "field": "quantity", "width": 60, "align": "center" },
{ "field": "unitPriceNoVAT", "width": 60, "align": "center" },
{ "field": "totalPriceIncludingTax", "width": 60, "align": "center" },
{ "field": "invoiceNo", "width": 60, "align": "center" }
]
}]
},
"card": {
"omit": "post",
"title": {
"field": "purchaseNo",
"logo": "logo.png"
},
"brief": [{
"field": "enquiryNo",
"img": "img.png"
}]
},
"filters": [
"purchaseNo"
]
}
实体标题名称
title:添加实体标题名称,客户端或者服务端需要展示实体名称时使用,如下图”前台作业信息“就是该实体的标题名称。自行命名即可,英文或中文都可以,英文名就是文件名,不单独指定,指定中文名不超过12个半角字符。
纵向分表依据
partition:略。
字段信息
fields:添加实体字段,系统会根据这个字段信息来生成数据库实体字段、实体详情页以及客户端实体类。开发人员不负责定义数据库中实体字段主键, 只定义自己的业务字段即可, 所有字段均可空。
名称
name:添加字段名称,对应了数据库中字段的名称,系统会根据这个名称生成数据库中的字段名称,所以命名规则要和数据库中字段命名规则一致,只允许包含英文、数字和下划线,如下图。
标题
title:添加字段标题,后面一般用来展示字段名称,中文限制长度在12个半角字符之内 例如,采购单实体详情页中显示的”采购单号“这几个字就是这里的title,如下图。
标记
marks:添加字段有特殊用途时的标记。例如,采购单号字段添加了标记["T"],采购单号就作为采购单实体的标题字段展示给用户,让用户知道是哪一条数据,如下图。更多标记含义请参照3.4字段标记说明。
类型
type:添加字段类型,按照之前实体设计时生成的物理模型将每个字段的数据类型一一对应添加在这里,系统会根据这里添加的数据类型生成mysql中实体表中每个字段的数据类型,所以这里添加的数据类型应与mysql数据类型一样,如下图。
主要数据类型:
MySQL数据类型 | 含义(有符号) |
---|---|
tinyint(m) | 整型,1个字节 范围(-128~127) |
smallint(m) | 整型,2个字节 范围(-32768~32767) |
mediumint(m) | 整型,3个字节 范围(-8388608~8388607) |
int(m) | 整型,4个字节 范围(-2147483648~2147483647) |
bigint(m) | 整型,8个字节 范围(+-9.22*10的18次方) |
float(m,d) | 单精度浮点型 8位精度(4字节) m总个数,d小数位 |
double(m,d) | 双精度浮点型 16位精度(8字节) m总个数,d小数位 |
char(n) | 字符串,固定长度,最多255个字符 |
varchar(n) | 字符串,固定长度,最多65535个字符 |
tinytext | 字符串,可变长度,最多255个字符 |
text | 字符串,可变长度,最多65535个字符 |
mediumtext | 字符串,可变长度,最多2的24次方-1个字符 |
longtext | 字符串,可变长度,最多2的32次方-1个字符 |
date | 日期 '2008-12-2' |
time | 时间 '12:25:36' |
datetime | 日期时间 '2008-12-2 22:06:44' |
timestamp | 自动存储记录修改时间 |
输入框类型
input:添加输入框类型,客户端实体详情页和服务端实体管理页常常需要显示或者修改字段内容,我们将字段内容放在一个input标签里来展示或者修改,所以这里的输入框类型应属于html中input标签的类型,如下图,采购单号类型是text采购日期类型是datetime。
主要输入框类型:
text | 文本型 |
password | 密码型 |
integer | 整数型 |
float | 单精度浮点型 |
textarea | 文本域 |
file | 文件 |
date | 日期 |
time | 时间 |
datetime | 日期+时间 |
color | 调色板 |
tristate | 复选框 |
checkbox | 复选框 |
select | 下拉框 |
multiselect | 下拉框 |
当input为tristate/checkbox时,未指定options,则使用默认[是/否]options。 当input为select/multiselect时,未指定options,则报错。
下拉框选项
options:添加输入框下拉选项,当输入框类型为select时需要添加选项内容,不是select类型的字段默认为[],如果[]添加了内容就表示此时的下拉框为静态选项,如果填写的是字符串则表示来自环境变量中的动态选项,该环境变量应当也是如下结构的数组。
"options": [
{ "value": "选项值", "text": "选项文本" },
{ "value": "选项值", "text": "选项文本" },
{ "value": "选项值", "text": "选项文本" },
]
选项值
value:选项值设定,只能包含英文和数字,作用相当于存放选项的变量,不会在页面上显示。
选项文本
text:填写每个选项的文本内容,它表示了字段具体的值有哪些可以选择,如下图,显示的都是下拉选项的文本。
格式校验
pattern:添加输入框格式校验规则,根据输入框类型设置相应的校验规则可以校验输入是否正确,指定了pattern时,输入框按照指定的pattern来校验,如果不需要校验填写默认值".*",填写正则表达式即可。如下图,如果需要添加邮箱格式校验只需在这里填写邮箱对应的正则表达式。
常用的几种正则表达式:
^[0-9]+$ | 数字 |
^[\u4E00-\u9FA5A-Za-z0-9_-]+$ | 中文、英文、数字、下划线、横线 |
^[0-9.]+$ | 数字、点 |
^\w+([-+.]\w+)@\w+([-.]\w+)\.\w+([-.]\w+)*$ | 邮箱 |
格式校验提示信息
patternTip:添加格式校验时提示信息,需要根据上面的格式校验的正则表达式来填写,可为空,当输入不符合格式要求的内容会显示这个提示信息,比如,上图中的邮箱添加了格式检验,我们可以添加提示信息“邮箱格式不正确”,用户输入错误的邮箱时会显示这个信息。
子实体关联
dataset:添加关联实体,添加这个信息的主要目的是将子实体数据展示在主实体的详情中。比如,采购单是主实体,与子关联的实体是产品,展示采购单数据时应显示采购单中包含了哪些产品。
子实体名称
name:添加子实体名称,这个名称应是实体设计时的实体名称,对应了entities文件夹下实体文件名称和数据库中实体表格名称。比如,下图中purchase表示的是当前正在配置的实体名称,product则表示子实体的名称。
当前实体id
elementId:添加当前实体id字段,主要是为了与子实体进行关联,填写id字段名称即可。
被关联字段
elementFK_Field:添加被关联子数据实体中对应当前实体的ID字段,主要是为了与主是实体进行关联,这个字段应该是子实体的外键,需要在这里填写字段在子实体中的名称,要做校验保证主实体和子实体中两者的数据类型一致。
详情页
page:添加实体详情页信息,主要配置当前实体和子实体需要将哪些字段信息展示在详情页面。
字段位置
details:添加详情页当前实体字段显示位置,widget中的label用来显示字段标题,统一右对齐,input用来显示字段内容,各占一列,每个页面的最大列数为6,如下图所示。
字段名称
field:需显示的字段名称,填写对应fields里面的name。
显示类型
widget:需显示的字段在html中的类型,选择相应的类型即可,如label、input等。
行
row:需显示字段所在的行,填写具体的数字表示显示在第几行即可。
列
column:需显示字段所在的列,填写具体的数字表示显示在第几列即可。
行高
rowSpan:需显示字段需要占几行,填写具体的数字表示所占行数即可。
列宽
columnSpan:需显示字段需要占几列,填写具体的数字表示所占列数即可。
子数据详情
collections:在主实体添加需要展示的子实体字段,默认采用不分页表格,当启用分页时,分页行数选项为[10,20,50,100],如下图,在采购单详情页中显示采购单的所有产品。
标题
title:添加子实体列表标题,可自行命名,中文限制长度在12个半角字符之内。
名称
dataset:填写dataset中对应的子实体的name。
分页
pagination:选择是否分页,true表示分页,false表示不分页。
行
rows:填写列表每页显示的行数。
列
columns:列表中需要显示子数据实体的字段信息。
字段名称
field:填写需要显示的字段名称。
列宽
width:填写需要显示的字段所占列的宽度。
对齐方式
align:填写对齐方式,left/right/center。
卡片
card:添加实体卡片配置信息,主要是用于数据预览时展示实体信息供用户选择执行后续操作,在这里确定要在页面上展示实体的哪些字段。
长文本省略策略
omit:卡片长文本省略策略,卡片的文本显示区域长度是有限的需要提前定义好当显示的字段内容过长时应该如何省略,pre表示前段省略,mid表示中段省略,post表示后段省略。
卡片标题
title:添加卡片标题。
标题字段
field:添加卡片标题字段,这里应该选取字段marks为[“T”]的字段并填写字段的name,但在卡片上呈现的是该字段数据库中的内容。
标题logo
logo:添加卡片标题logo,填写图片名称即可,图片不能以中文命名,可为空,格式为png,大小限制为24X24 px,图片存放在工程配置文件主目录下的images文件夹内。
卡片子信息
brief:添加卡片上除标题字段外所需要呈现的字段。
子信息字段
field:添加卡片子信息字段名称,但在卡片上呈现的是该字段数据库中的内容。
子信息logo
img:添加卡片子信息字段logo,填写图片名称即可,图片不能以中文命名,可为空,格式为png,大小限制为16X16 px,图片存放在工程配置文件主目录下的images文件夹内。
实体筛选
filters:添加用于筛选的字段信息,用于数据预览时按条件筛选数据,这里应该选取字段marks为[“S”]的字段并填写字段的name,如下图所示,可以按照订单号和下单时间筛选订单数据。