schema配置模板
1 { 2 "bsonType": "object", // 固定节点 3 "description": "表的描述", 4 "required": [], // 必填字段,比如name,age 5 "permission": { 6 "read": false, // 前端非admin的读取记录权限控制。默认值是false,即可以不写。可以简单的true/false,也可以写表达式 7 "create": "'CREATE_OPENDB_ADMIN_MENUS' in auth.permission", // 指定权限 8 "update": false, // 前端非admin的更新记录权限控制。默认值是false,即可以不写。可以简单的true/false,也可以写表达式 9 "delete": false, // 前端非admin的删除记录权限控制。默认值是false,即可以不写。可以简单的true/false,也可以写表达式 10 "count": false // 前端非admin的求数权限控制。默认值是true,即可以不写。可以简单的true/false,也可以写表达式 11 // 对数据进行数量统计时(包括count方法、及groupField内的count操作)均会同时触发表级的count权限及read权限 12 }, 13 "properties": { // 表的字段清单 14 "_id": { 15 "description": "ID,系统自动生成" 16 }, 17 "other": { // 字段名称,每个表都会带有_id字段 18 "bsonType": "", // 字段类型,可选值: string | password | int | double | bool | date | timestamp | object | file | array 19 "arrayType": "file", // 指定字段类型为数时,其元素项类型,bsonType="array" 时有效。 20 "title": "", //<string> 标题,开发者维护时自用。在schema2code生成前端表单代码时,默认用于表单项前面的label 21 "description": "", //<string> 描述,开发者维护时自用。在生成前端表单代码时,如果字段未设置componentForEdit,且字段被渲染为input,那么input的placehold将默认为本描述 22 "defaultValue": "", //<string | object>默认值 23 "forceDefaultValue": "", //<string | object> 强制默认值,不可通过clientDB的代码修改,常用于存放用户id、时间、客户端ip等固定值。 24 "required": [], //<array> 是否必填。支持填写必填的下级字段名称。required可以在表级的描述出现,约定该表有哪些字段必填。也可以在某个字段中出现,如果该字段是一个json对象,可以对这个json中的哪些字段必填进行描述。 25 "enum": [], //<array> 字段值枚举范围,数组中至少要有一个元素,且数组内的每一个元素都是唯一的。enum最多只可以枚举500条 26 "enumType": "", //<string> 字段值枚举类型,可选值tree。设为tree时,代表enum里的数据为树形结构。此时schema2code可生成多级级联选择组件 27 "fileMediaType": "", //<string> 文件类型,bsonType="file" 时有效,可选值 all|image|video 默认值为all,表示所有文件,image表示图片类型文件,video表示视频类型文件 28 "fileExtName": "", //<string>文件扩展名过滤,bsonType="file" 时有效,多个文件扩展名用 "," 分割,例如: jpg,png, 29 "maximum": 20, //<number>如果bsonType为数字时,可接受的最大值 30 "exclusiveMaximum": , //<boolean>bsonType为数字时, 是否排除 maximum 31 "minimum": , //<number>如果bsonType为数字时,可接受的最小值 32 "exclusiveMinimum", //<boolean>bsonType为数字时, 是否排除 minimum 33 "minLength", //<number>bsonType = String | Array时,限制字符串或数组的最小长度 34 "maxLength", //<number>bsonType = String | Array时,限制字符串或数组的最大长度 35 "trim": "both", //<boolean> bsonType = String 时,去除空白字符。可选值none|both|start|end,默认值none trim优先级高于其它驗证,它会在先去掉空格之后,再进行驗证。 36 "format": //枚举类型,可选值 url | email。设置字段数据格式。目前只支持这二种格式。数据不符合此格式时无法录入。 37 "pattern": //<string>正则表达式,比如设置手机号码正则,如果该字段值不符合手机号正则,则录入失败。 验证手机号正则:"pattern": "^\\+?[0-9-]{3,20}$" 38 39 "validateFunction": "", //<string | object>扩展校验函数名,用于校验该字段值是否符合要求 40 /* 值类型为:String 时表示校验函数名 41 值类型为object格式: 42 { 43 "name": """ //<string>校验函数名 44 "client": true //<boolean>默认值true。值为true时客户端也可以在生成的代码中改为自己的校验函数,此时客户端的校验仍然生效(不懂) 45 } */ 46 47 "permission": { //<object> 字段的数据库权限,仅write、read 48 "write": true, 49 "read": true 50 }, 51 "errorMessage": "", //<string|Objeect>当数据写入或更新时,校验数据合法性失败后,返回的错误提示 52 // 比如: 53 // "errorMessage": "{title}不能为空" {title} 为当前字段设置的title属性值 54 // 或者指定具体出错点 55 // "errorMessage": { 56 // "required": "{title}不能为空", //当required不满足时,出错提示内容 57 // "minLength": """ , //当minLength不满足时,出错提示内容 58 // "maximum": """ , //当maximum不满足时,出错提示内容 59 // "pattern": , //当pattern不满足时,出错提示内容 60 // "format": "{title}格式无效" //当format不满足时,出错提示内容 61 // } 62 "foreignKey": "", //<string>外键索引。关联字段。表示该字段的原始定义指向另一个表的某个字段,值的格式为:关联表名.字段名。关联字段定义后可用于联表查询,通过关联字段合成虚拟联表,极大的简化了联表查询的复杂度 63 "parentKey": "", //<string>同一个数据表内父级的字段。 用于树状(tree)数据查询 64 "label": "", //<string> schema2code的配置。字段标题。schema2code生成前端代码时,渲染表单项前面的label标题。如果不填,会使用title属性。适用于title不便显示在表单项前面的情况 65 "group": "", //<string> schema2code的配置。分组id。schema2code生成前端代码时,多个字段对应的表单项可以合并显示在一个uni-group组件中 66 "order": 0, //<int> schema2code的配置。表单项排序序号。 67 68 //!!!!! componentForEdit 类型为对象和数组。测试数组不成功。对象可以。~!!!! 69 "componentForEdit": {}, //<object | array> 生成前端编辑页面文件时(add.vue、edit.vue),使用什么组件渲染这个表单项。比如使用input输入框。格式: 70 /* 示例一:简单的组件 71 { 72 "name": "input", //此字段所用组件名 73 "props": { //设置组件属性 74 "placeholder": "请输入昵称" //逻辑或数值类型要加:号,比如: ":disabled": false 75 } 76 //"children": '' //<string> 子组件名。 77 //"childrenData": [] //<array> 子组件数据 78 } 79 示例二:带子组件的组件 80 { 81 "name": "select", 82 "children": "<option value=\"{value}\">{label}</option>", 83 "childrenData": [{"label": "中文简体", "value": "zh-cn"}] 84 } */ 85 86 "componentForShow": [] // <object | array>生成前端展示页面时(list.vue、detail.vue),使用什么组件渲染。比如使用uni-dateformat格式化日期。 87 } 88 }, 89 "fieldRules": [ 90 /* 字段之间的约束关系。比如字段开始时间小于字段结束时间。也可以只校验一个字段。支持表达式 91 注意:这里的rule是为符合条件,而不是不满足条件 92 { 93 "rule": "end_date == null || end_date != null && create_date < end_date", // 校验规则 94 "errorMessage": "创建时间和结束时间不匹配", // 错误提示信息(仅在新增时生效,更新数据时不会提示此信息) 95 "client": false // schema2code时,当前规则是否带到前端也进行校验。目前此属性暂不生效,fieldRules不会在客户端校验数据,仅会在云端进行校验 96 } */ 97 ] 98 }
相关问题整理:
"bsonType": "file", "fileMediaType": "image", 自动调用上传图片。不用设置componentForEdit属性
"bsonType": "bool", 时自动变成切换开关样式(switch)。
"bsonType": "int", 时如果不指明组件类型,会以文本框形式存在。但是会限制输入类型为数字。 可以指定其它组件比如组件slider: "sort": { "bsonType": "int", "title": "排序", "defaultValue": 1, "componentForEdit": { "name": "slider", "props": { "min": 1, "max": 100, "step": 1, "value": 1, "show-value": true } }, "componentForShow": {} }
1 enum定义数据来源为其它表时,一定要配合foreignKey字段,否则出现提示错误:禁止使用数据库内包含的字段名作为别名,产生冲突的数据表为:... 2 3 "enum": { 4 "collection": "movies-config-type", 5 "field": "title as value, title as text", 6 "orderby": "sort" 7 }, 8 "foreignKey": "movies-config-type.title",
常用配置
//权限常用配置: "permission": { "read": "doc.user_id == auth.uid", //仅能访问自已的数据 "create": "auth.uid != null", //必须登陆才能创建内容 "update": false, "delete": false },
//自动获取当前登陆者的USER_ID "user_id": { "bsonType": "string", "description": "用户id,参考uni-id-users表", "foreignKey": "uni-id-users._id", "forceDefaultValue": { "$env": "uid" } },
//自动添加创建时间 "create_date": { "bsonType": "timestamp", "description": "下单时间", "forceDefaultValue": { "$env": "now" } },
//自动获取当前录入数据者的IP地址 "buyer_ip": { "bsonType": "string", "description": "购买者IP", "forceDefaultValue": { "$env": "clientIP" } },
//手机号码校验 "phone": { "bsonType": "string", "title": "手机号码", "description": "手机号码", "pattern": "^\\+?[0-9-]{3,20}$" },
//url校验 或 email校验 "icon": { "bsonType": "string", "description": "类别图标/图片地址", "title": "图标URL", "trim": "both", “format”: "url", //可选值 url | email "pattern": "^(http://|https://|/|./|@/)\\S" },
//限定值内容 "type": { "bsonType": "string", "description": "操作类型", "enum": [ "upload-product", "modify-product", "down-product" ] },

浙公网安备 33010602011771号