字段
在 Collection 点击code或者详细图标可以进入列表页面,这个页面有三个标签,Fields,Data,Graphql,这里先说Fields。
Qenya 提供了两种方式生成表结构字段,一种是以表单的方式,单个字段编辑,另一种是根据一个已有的json数据生成多个字段。
单个字段编辑,类型和长度等是为了mock数据配置,后面会详细说明。
根据json数据生成,可以一次生成全部字段,但是比较模糊,需要做一些调整来做mock数据的配置。
字段类型
目前 Qenya 有 8 种数据类型(但是仍然不够细,后续会增加),分别是 'text', 'bool', 'date', 'datetime', 'integer', 'number', 'json', 'enum'
text
text 是最常见的文本类型,会有两个选项,最小长度和最大长度,mock数据的时候会生成这两个长度之间的字符串。最大长度默认值为 20
bool
true 和 false
date
会生成 'yyyy-MM-dd' 格式的日期
datetime
会生成 'yyyy-MM-dd hh:mm:ss' 格式的日期
integer
会生成整数
number
浮点数,会比整数多一个小数位数的选项,可以决定生成的数据精确到小数点后几位
json
json 类型用来存储复杂的对象,比如一个 object 或 array。会多一个 默认值 的选项,生成数据的时候会使用这个默认值来生成,不填的话,默认值为 {}
enum
enum 是一个比较复杂的类型,用来处理枚举类型和数据关联,配置项比较多
多选
默认数据是单选的,选中多选以后,会多出一个 “分隔符” 的输入框,如果这里不填,那么服务端接口会期待一个 ['a', 'b'] 这样的array结构数据,如果填写了,会期待以这个分隔符分隔的字符串,例如填写了 ',' ,服务端会接受 'a,b' 这样的数据。
静态数据
如果数据源选择了静态数据,会多出一个数据选项的输入框,mock数据的时候会从这个指定的数据里选择。支持三种格式的数据。
第一种,简单数组
["男", "女"]
第二种,object
{ "male": "男", "famale": "女" }
第三种,复杂数组,前两种类型不需要填写 ValueTpl 和 TextTpl,复杂数组需要填写这两个选项
[
{ "code": "male", "text": "男" },
{ "code": "famale", "text": "女" }
]
tpl 是一个格式化字符串的模版,会用 object 的 key 值替换对应的 '{}' 内的值,如:'{code}-{text}' => 'male-男'
关联表
enum 支持关联表操作,例如在另一个 Collection 里有一个字段 authorId,关联到 作者 这个 Collection
数据类型这个选项,这里先忽略,后面写 Graphql 的时候再说明。