[change] bindata: update generated bindata
This commit is contained in:
parent
106631b106
commit
0ff7fccc55
20 changed files with 39 additions and 2147 deletions
3
Makefile
3
Makefile
|
|
@ -40,6 +40,9 @@ test:
|
|||
fi; \
|
||||
done
|
||||
|
||||
.PHONY: fmt
|
||||
fmt:
|
||||
$(GOFMT) -w $(GOFILES)
|
||||
|
||||
.PHONY: fmt-check
|
||||
fmt-check:
|
||||
|
|
|
|||
498
data/bindata.go
498
data/bindata.go
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
# API 接口
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
"name": "数据分析接口",
|
||||
"version": "1.0.0",
|
||||
"description": "数据分析接口API",
|
||||
"group": "xiang/chart",
|
||||
"guard": "bearer-jwt",
|
||||
"paths": [
|
||||
{
|
||||
"path": "/:name/data",
|
||||
"method": "GET",
|
||||
"process": "xiang.chart.Data",
|
||||
"in": ["$param.name", ":query"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/setting",
|
||||
"method": "GET",
|
||||
"process": "xiang.chart.Setting",
|
||||
"in": ["$param.name", "$query.select"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,75 +0,0 @@
|
|||
{
|
||||
"name": "数据导入接口",
|
||||
"version": "1.0.0",
|
||||
"description": "数据分析接口API",
|
||||
"group": "xiang/import",
|
||||
"guard": "bearer-jwt",
|
||||
"paths": [
|
||||
{
|
||||
"path": "/:name",
|
||||
"method": "POST",
|
||||
"process": "xiang.import.Run",
|
||||
"in": ["$param.name", "$payload.file", "$payload.mapping"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/setting",
|
||||
"method": "GET",
|
||||
"process": "xiang.import.Setting",
|
||||
"in": ["$param.name"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/data",
|
||||
"method": "POST",
|
||||
"process": "xiang.import.Data",
|
||||
"in": [
|
||||
"$param.name",
|
||||
"$payload.file",
|
||||
"$payload.page",
|
||||
"$payload.size",
|
||||
"$payload.mapping"
|
||||
],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/data/setting",
|
||||
"method": "GET",
|
||||
"process": "xiang.import.DataSetting",
|
||||
"in": ["$param.name"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/mapping",
|
||||
"method": "GET",
|
||||
"process": "xiang.import.Mapping",
|
||||
"in": ["$param.name", "$query.file"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/mapping/setting",
|
||||
"method": "GET",
|
||||
"process": "xiang.import.MappingSetting",
|
||||
"in": ["$param.name", "$query.file"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
"name": "页面接口",
|
||||
"version": "1.0.0",
|
||||
"description": "页面接口API",
|
||||
"group": "xiang/page",
|
||||
"guard": "bearer-jwt",
|
||||
"paths": [
|
||||
{
|
||||
"path": "/:name/data",
|
||||
"method": "GET",
|
||||
"process": "xiang.page.Data",
|
||||
"in": ["$param.name", ":query"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/setting",
|
||||
"method": "GET",
|
||||
"process": "xiang.page.Setting",
|
||||
"in": ["$param.name", "$query.select"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
{
|
||||
"name": "存储接口",
|
||||
"version": "1.0.0",
|
||||
"description": "存储接口API",
|
||||
"group": "xiang/storage",
|
||||
"guard": "bearer-jwt",
|
||||
"paths": [
|
||||
{
|
||||
"path": "/upload",
|
||||
"method": "POST",
|
||||
"process": "xiang.fs.Upload",
|
||||
"in": ["$file.file"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/readfile",
|
||||
"method": "GET",
|
||||
"process": "xiang.fs.ReadFile",
|
||||
"in": ["$query.name", "$query.encode"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/url",
|
||||
"method": "GET",
|
||||
"guard": "-",
|
||||
"process": "xiang.fs.GetURL",
|
||||
"in": ["$query.name", "$query.type", "$query.token"],
|
||||
"out": { "status": 200, "type": "image/png" }
|
||||
},
|
||||
{
|
||||
"path": "/token",
|
||||
"method": "GET",
|
||||
"process": "xiang.fs.GetToken",
|
||||
"in": ["$query.name"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,135 +0,0 @@
|
|||
{
|
||||
"name": "数据表格接口",
|
||||
"version": "1.0.0",
|
||||
"description": "数据表格接口API",
|
||||
"group": "xiang/table",
|
||||
"guard": "table-guard",
|
||||
"paths": [
|
||||
{
|
||||
"path": "/:name/search",
|
||||
"method": "GET",
|
||||
"process": "xiang.table.Search",
|
||||
"in": ["$param.name", ":query-param", "$query.page", "$query.pagesize"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/find/:id",
|
||||
"method": "GET",
|
||||
"process": "xiang.table.Find",
|
||||
"in": ["$param.name", "$param.id", ":query-param"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/select",
|
||||
"method": "GET",
|
||||
"process": "xiang.table.Select",
|
||||
"in": [
|
||||
"$param.name",
|
||||
"$query.keyword",
|
||||
"$query.name",
|
||||
"$query.value",
|
||||
"$query.limit"
|
||||
],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/save",
|
||||
"method": "POST",
|
||||
"process": "xiang.table.Save",
|
||||
"in": ["$param.name", ":payload"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/quicksave",
|
||||
"method": "POST",
|
||||
"process": "xiang.table.QuickSave",
|
||||
"in": ["$param.name", ":payload"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/delete/:id",
|
||||
"method": "POST",
|
||||
"process": "xiang.table.Delete",
|
||||
"in": ["$param.name", "$param.id"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/insert",
|
||||
"method": "POST",
|
||||
"process": "xiang.table.Insert",
|
||||
"in": ["$param.name", "$payload.columns", "$payload.values"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/delete/where",
|
||||
"method": "POST",
|
||||
"process": "xiang.table.DeleteWhere",
|
||||
"in": ["$param.name", ":query-param"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/delete/in",
|
||||
"method": "POST",
|
||||
"process": "xiang.table.DeleteIn",
|
||||
"in": ["$param.name", "$query.ids", "$query.primary"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/update/where",
|
||||
"method": "POST",
|
||||
"process": "xiang.table.UpdateWhere",
|
||||
"in": ["$param.name", ":query-param", ":payload"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/update/in",
|
||||
"method": "POST",
|
||||
"process": "xiang.table.UpdateIn",
|
||||
"in": ["$param.name", "$query.ids", "$query.primary", ":payload"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/:name/setting",
|
||||
"method": "GET",
|
||||
"process": "xiang.table.Setting",
|
||||
"in": ["$param.name", "$query.select"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
{
|
||||
"name": "系统用户接口",
|
||||
"version": "1.0.0",
|
||||
"description": "系统用户API",
|
||||
"group": "xiang/user",
|
||||
"guard": "bearer-jwt",
|
||||
"paths": [
|
||||
{
|
||||
"path": "/captcha",
|
||||
"method": "GET",
|
||||
"guard": "-",
|
||||
"process": "xiang.user.Captcha",
|
||||
"in": [":query"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/login",
|
||||
"method": "POST",
|
||||
"guard": "-",
|
||||
"process": "xiang.user.Login",
|
||||
"in": [":payload"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/token",
|
||||
"method": "POST",
|
||||
"guard": "-",
|
||||
"process": "xiang.user.Token",
|
||||
"in": ["$payload.key", "$payload.secret"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/menu",
|
||||
"method": "GET",
|
||||
"process": "flows.xiang.menu",
|
||||
"in": [],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/info",
|
||||
"method": "GET",
|
||||
"process": "xiang.user.Info",
|
||||
"in": [],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/token/refresh",
|
||||
"method": "GET",
|
||||
"process": "xiang.user.TokenRefresh",
|
||||
"in": [],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
{
|
||||
"name": "系统接口",
|
||||
"version": "1.0.0",
|
||||
"description": "系统接口API",
|
||||
"group": "xiang",
|
||||
"guard": "bearer-jwt",
|
||||
"paths": [
|
||||
{
|
||||
"path": "/ping",
|
||||
"method": "GET",
|
||||
"guard": "-",
|
||||
"process": "xiang.main.Ping",
|
||||
"in": [":query"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/ping/post",
|
||||
"method": "POST",
|
||||
"guard": "-",
|
||||
"process": "xiang.main.Ping",
|
||||
"in": [":payload"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/inspect",
|
||||
"method": "GET",
|
||||
"guard": "-",
|
||||
"process": "xiang.main.inspect",
|
||||
"in": [],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/menu",
|
||||
"method": "GET",
|
||||
"process": "flows.xiang.menu",
|
||||
"in": ["$session.id"],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "application/json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "/favicon.ico",
|
||||
"method": "GET",
|
||||
"guard": "-",
|
||||
"process": "xiang.main.Favicon",
|
||||
"in": [],
|
||||
"out": {
|
||||
"status": 200,
|
||||
"type": "image/x-icon"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
# 工作流
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
{
|
||||
"label": "后台用户鉴权",
|
||||
"version": "1.0.0",
|
||||
"description": "后台用户鉴权",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "签发人",
|
||||
"process": "session.Get",
|
||||
"args": ["issuer"]
|
||||
},
|
||||
{
|
||||
"name": "鉴权",
|
||||
"process": "xiang.flow.IF",
|
||||
"args": [
|
||||
{
|
||||
"when": [{ "用户身份": "{{$res.签发人}}", "!=": "xiang" }],
|
||||
"name": "更新用户资料",
|
||||
"process": "xiang.flow.Throw",
|
||||
"args": ["token 签发人不合法", 403]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"output": "success"
|
||||
}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
{
|
||||
"label": "菜单列表",
|
||||
"version": "1.0.0",
|
||||
"description": "菜单列表",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "menus",
|
||||
"process": "models.xiang.menu.get",
|
||||
"args": [
|
||||
{
|
||||
"select": [
|
||||
"id",
|
||||
"name",
|
||||
"icon",
|
||||
"parent",
|
||||
"path",
|
||||
"blocks",
|
||||
"visible_menu"
|
||||
],
|
||||
"withs": {
|
||||
"children": {
|
||||
"query": {
|
||||
"limit": 2000,
|
||||
"select": [
|
||||
"id",
|
||||
"name",
|
||||
"icon",
|
||||
"parent",
|
||||
"path",
|
||||
"blocks",
|
||||
"visible_menu"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"wheres": [
|
||||
{ "column": "status", "value": "enabled" },
|
||||
{ "column": "parent", "op": "null" }
|
||||
],
|
||||
"limit": 200,
|
||||
"orders": [{ "column": "rank", "option": "asc" }]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"output": "{{$res.menus}}"
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
"label": "用户资料",
|
||||
"version": "1.0.0",
|
||||
"description": "用户资料",
|
||||
"nodes": [
|
||||
{
|
||||
"name": "user",
|
||||
"process": "models.xiang.user.Find",
|
||||
"args": [
|
||||
"{{$in.0}}",
|
||||
{ "select": ["id", "name", "type", "mobile", "email", "status"] }
|
||||
]
|
||||
}
|
||||
],
|
||||
"output": "{{$res.user}}"
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
# 数据模型
|
||||
|
|
@ -1,121 +0,0 @@
|
|||
{
|
||||
"name": "菜单",
|
||||
"table": {
|
||||
"name": "xiang_menu",
|
||||
"comment": "菜单表",
|
||||
"engine": "InnoDB"
|
||||
},
|
||||
"columns": [
|
||||
{
|
||||
"name": "id",
|
||||
"type": "ID",
|
||||
"comment": "ID"
|
||||
},
|
||||
{
|
||||
"name": "parent",
|
||||
"type": "bigInteger",
|
||||
"comment": "父节点",
|
||||
"nullable": true,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "名称",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "icon",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "图标",
|
||||
"nullable": true
|
||||
},
|
||||
{
|
||||
"name": "blocks",
|
||||
"type": "boolean",
|
||||
"comment": "block布局",
|
||||
"default": false,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "visible_menu",
|
||||
"type": "boolean",
|
||||
"comment": "显示",
|
||||
"default": false,
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "path",
|
||||
"type": "string",
|
||||
"length": 200,
|
||||
"comment": "路由",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"name": "rank",
|
||||
"type": "integer",
|
||||
"default": 9999,
|
||||
"comment": "排列",
|
||||
"index": true
|
||||
},
|
||||
{
|
||||
"label": "状态",
|
||||
"name": "status",
|
||||
"type": "enum",
|
||||
"default": "enabled",
|
||||
"option": ["enabled", "disabled"],
|
||||
"comment": "菜单状态 enabled 开启, disabled 关闭",
|
||||
"index": true
|
||||
}
|
||||
],
|
||||
"relations": {
|
||||
"children": {
|
||||
"type": "hasMany",
|
||||
"model": "xiang.menu",
|
||||
"key": "parent",
|
||||
"foreign": "id",
|
||||
"query": {
|
||||
"select": ["name", "icon", "blocks", "path", "rank", "status"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"values": [
|
||||
{
|
||||
"name": "数据看板",
|
||||
"path": "/kanban",
|
||||
"icon": "icon-activity",
|
||||
"rank": 1,
|
||||
"status": "enabled",
|
||||
"visible_menu": 0,
|
||||
"blocks": 1
|
||||
},
|
||||
{
|
||||
"name": "云服务库",
|
||||
"path": "/table/service",
|
||||
"icon": "icon-cloud",
|
||||
"rank": 2,
|
||||
"status": "enabled",
|
||||
"visible_menu": 0,
|
||||
"blocks": 0,
|
||||
"children": [
|
||||
{
|
||||
"name": "云服务库",
|
||||
"path": "/table/service",
|
||||
"icon": "icon-list"
|
||||
},
|
||||
{
|
||||
"name": "创建云服务库",
|
||||
"path": "/form/service/0",
|
||||
"icon": "icon-plus"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"indexes": [],
|
||||
"option": {
|
||||
"timestamps": true,
|
||||
"soft_deletes": true
|
||||
}
|
||||
}
|
||||
|
|
@ -1,345 +0,0 @@
|
|||
{
|
||||
"name": "用户",
|
||||
"table": {
|
||||
"name": "xiang_user",
|
||||
"comment": "用户表",
|
||||
"engine": "InnoDB"
|
||||
},
|
||||
"columns": [
|
||||
{ "label": "ID", "name": "id", "type": "ID" },
|
||||
{
|
||||
"label": "类型",
|
||||
"name": "type",
|
||||
"type": "enum",
|
||||
"option": ["admin", "staff", "user", "robot"],
|
||||
"comment": "账号类型 admin 管理员, staff 员工, user 用户, robot 机器人",
|
||||
"default": "user",
|
||||
"index": true,
|
||||
"validations": [
|
||||
{
|
||||
"method": "typeof",
|
||||
"args": ["string"],
|
||||
"message": "{{input}}类型错误, {{label}}应该为字符串"
|
||||
},
|
||||
{
|
||||
"method": "enum",
|
||||
"args": ["admin", "staff", "user", "robot"],
|
||||
"message": "{{input}}不在许可范围, {{label}}应该为 admin/staff/user/robot"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "邮箱",
|
||||
"name": "email",
|
||||
"type": "string",
|
||||
"length": 50,
|
||||
"comment": "邮箱",
|
||||
"index": true,
|
||||
"nullable": true,
|
||||
"validations": [
|
||||
{
|
||||
"method": "typeof",
|
||||
"args": ["string"],
|
||||
"message": "{{input}}类型错误, {{label}}应该为字符串"
|
||||
},
|
||||
{
|
||||
"method": "email",
|
||||
"args": [],
|
||||
"message": "{{input}}不是邮箱地址"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "手机号",
|
||||
"name": "mobile",
|
||||
"type": "string",
|
||||
"length": 50,
|
||||
"comment": "手机号",
|
||||
"index": true,
|
||||
"nullable": true,
|
||||
"crypt": "AES",
|
||||
"validations": [
|
||||
{
|
||||
"method": "mobile",
|
||||
"args": [],
|
||||
"message": "{{input}}格式错误"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "登录密码",
|
||||
"name": "password",
|
||||
"type": "string",
|
||||
"length": 256,
|
||||
"comment": "登录密码",
|
||||
"crypt": "PASSWORD",
|
||||
"index": true,
|
||||
"nullable": true,
|
||||
"validations": [
|
||||
{
|
||||
"method": "typeof",
|
||||
"args": ["string"],
|
||||
"message": "{{input}}类型错误, {{label}}应该为字符串"
|
||||
},
|
||||
{
|
||||
"method": "minLength",
|
||||
"args": [6],
|
||||
"message": "{{label}}应该由6-18位,大小写字母、数字和符号构成"
|
||||
},
|
||||
{
|
||||
"method": "maxLength",
|
||||
"args": [18],
|
||||
"message": "{{label}}应该由6-18位,大小写字母、数字和符号构成"
|
||||
},
|
||||
{
|
||||
"method": "pattern",
|
||||
"args": ["[0-9]+"],
|
||||
"message": "{{label}}应该至少包含一个数字"
|
||||
},
|
||||
{
|
||||
"method": "pattern",
|
||||
"args": ["[A-Z]+"],
|
||||
"message": "{{label}}应该至少包含一个大写字母"
|
||||
},
|
||||
{
|
||||
"method": "pattern",
|
||||
"args": ["[a-z]+"],
|
||||
"message": "{{label}}应该至少包含一个小写字母"
|
||||
},
|
||||
{
|
||||
"method": "pattern",
|
||||
"args": ["[@#$&*\\+]+"],
|
||||
"message": "{{label}}应该至少包含一个符号"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "操作密码",
|
||||
"name": "password2nd",
|
||||
"type": "string",
|
||||
"length": 256,
|
||||
"comment": "操作密码",
|
||||
"crypt": "PASSWORD",
|
||||
"index": true,
|
||||
"nullable": true,
|
||||
"validations": [
|
||||
{
|
||||
"method": "typeof",
|
||||
"args": ["string"],
|
||||
"message": "{{input}}类型错误, {{label}}应该为字符串"
|
||||
},
|
||||
{
|
||||
"method": "minLength",
|
||||
"args": [6],
|
||||
"message": "{{label}}应该由6-18位,大小写字母、数字和符号构成"
|
||||
},
|
||||
{
|
||||
"method": "maxLength",
|
||||
"args": [18],
|
||||
"message": "{{label}}应该由6-18位,大小写字母、数字和符号构成"
|
||||
},
|
||||
{
|
||||
"method": "pattern",
|
||||
"args": ["[0-9]+"],
|
||||
"message": "{{label}}应该至少包含一个数字"
|
||||
},
|
||||
{
|
||||
"method": "pattern",
|
||||
"args": ["[A-Z]+"],
|
||||
"message": "{{label}}应该至少包含一个大写字母"
|
||||
},
|
||||
{
|
||||
"method": "pattern",
|
||||
"args": ["[a-z]+"],
|
||||
"message": "{{label}}应该至少包含一个小写字母"
|
||||
},
|
||||
{
|
||||
"method": "pattern",
|
||||
"args": ["[@#$&*\\+]+"],
|
||||
"message": "{{label}}应该至少包含一个符号"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "姓名",
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"length": 80,
|
||||
"comment": "姓名",
|
||||
"index": true,
|
||||
"nullable": true,
|
||||
"validations": [
|
||||
{
|
||||
"method": "typeof",
|
||||
"args": ["string"],
|
||||
"message": "{{input}}类型错误, {{label}}应该为字符串"
|
||||
},
|
||||
{
|
||||
"method": "minLength",
|
||||
"args": [2],
|
||||
"message": "{{label}}至少需要2个字"
|
||||
},
|
||||
{
|
||||
"method": "maxLength",
|
||||
"args": [40],
|
||||
"message": "{{label}}不能超过20个字"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "身份证号码",
|
||||
"name": "idcard",
|
||||
"type": "string",
|
||||
"length": 256,
|
||||
"comment": "身份证号码",
|
||||
"crypt": "AES",
|
||||
"nullable": true,
|
||||
"index": true,
|
||||
"validations": [
|
||||
{
|
||||
"method": "typeof",
|
||||
"args": ["string"],
|
||||
"message": "{{input}}类型错误, {{label}}应该为字符串"
|
||||
},
|
||||
{
|
||||
"method": "pattern",
|
||||
"args": ["^(\\d{18})|(\\d{14}X)$"],
|
||||
"message": "{{label}}格式错误"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "API Key",
|
||||
"name": "key",
|
||||
"type": "string",
|
||||
"length": 256,
|
||||
"comment": "API Key",
|
||||
"nullable": true,
|
||||
"unique": true,
|
||||
"validations": [
|
||||
{
|
||||
"method": "typeof",
|
||||
"args": ["integer"],
|
||||
"message": "{{input}}类型错误, {{label}}应该为数字"
|
||||
},
|
||||
{
|
||||
"method": "pattern",
|
||||
"args": ["^[0-9]{10}$"],
|
||||
"message": " {{label}}应该由10位数字构成"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "API 密钥",
|
||||
"name": "secret",
|
||||
"type": "string",
|
||||
"length": 256,
|
||||
"nullable": true,
|
||||
"crypt": "AES",
|
||||
"comment": "API 密钥",
|
||||
"index": true,
|
||||
"validations": [
|
||||
{
|
||||
"method": "typeof",
|
||||
"args": ["string"],
|
||||
"message": "{{input}}类型错误, {{label}}应该为字符串"
|
||||
},
|
||||
{
|
||||
"method": "pattern",
|
||||
"args": ["^[0-9A-Za-z@#$&*]{32}$"],
|
||||
"message": "{{label}}应该由32位,大小写字母、数字和符号构成"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "扩展信息",
|
||||
"name": "extra",
|
||||
"type": "json",
|
||||
"comment": "扩展信息",
|
||||
"nullable": true
|
||||
},
|
||||
{
|
||||
"label": "状态",
|
||||
"comment": "用户状态 enabled 有效, disabled 无效",
|
||||
"name": "status",
|
||||
"type": "enum",
|
||||
"default": "enabled",
|
||||
"option": ["enabled", "disabled"],
|
||||
"index": true,
|
||||
"validations": [
|
||||
{
|
||||
"method": "typeof",
|
||||
"args": ["string"],
|
||||
"message": "{{input}}类型错误, {{label}}应该为字符串"
|
||||
},
|
||||
{
|
||||
"method": "enum",
|
||||
"args": ["enabled", "disabled"],
|
||||
"message": "{{input}}不在许可范围, {{label}}应该为 enabled/disabled"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"relations": {},
|
||||
"values": [
|
||||
{
|
||||
"name": "管理员",
|
||||
"type": "admin",
|
||||
"email": "xiang@iqka.com",
|
||||
"mobile": null,
|
||||
"password": "A123456p+",
|
||||
"key": "8304925176",
|
||||
"secret": "XMTdNRVigbgUiAPdiJCfaWgWcz2PaQXw",
|
||||
"status": "enabled",
|
||||
"extra": { "sex": "男" }
|
||||
},
|
||||
{
|
||||
"name": "员工",
|
||||
"type": "staff",
|
||||
"email": "staff@iqka.com",
|
||||
"mobile": null,
|
||||
"password": "S123456p+",
|
||||
"key": null,
|
||||
"secret": null,
|
||||
"status": "enabled",
|
||||
"extra": { "sex": "女" }
|
||||
},
|
||||
{
|
||||
"name": "用户",
|
||||
"type": "user",
|
||||
"email": null,
|
||||
"mobile": "13900001111",
|
||||
"password": "U123456p+",
|
||||
"key": null,
|
||||
"secret": null,
|
||||
"status": "enabled",
|
||||
"extra": { "sex": "女" }
|
||||
},
|
||||
{
|
||||
"name": "机器人",
|
||||
"type": "robot",
|
||||
"email": null,
|
||||
"mobile": null,
|
||||
"password": null,
|
||||
"key": "3845196072",
|
||||
"secret": "wBeYjL7FjbcvpAdBrxtDFfjydsoPKhRN",
|
||||
"status": "enabled",
|
||||
"extra": { "sex": "女" }
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"comment": "类型邮箱唯一",
|
||||
"name": "type_email_unique",
|
||||
"columns": ["type", "email"],
|
||||
"type": "unique"
|
||||
},
|
||||
{
|
||||
"comment": "类型手机号唯一",
|
||||
"name": "type_mobile_unique",
|
||||
"columns": ["type", "mobile"],
|
||||
"type": "unique"
|
||||
}
|
||||
],
|
||||
"option": { "timestamps": true, "soft_deletes": true }
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
# 数据表格
|
||||
|
|
@ -1,570 +0,0 @@
|
|||
{
|
||||
"name": "菜单",
|
||||
"version": "1.0.0",
|
||||
"decription": "菜单设置",
|
||||
"bind": {
|
||||
"model": "xiang.menu"
|
||||
},
|
||||
"guard": "flows.xiang.admin.guard",
|
||||
"apis": {
|
||||
"search": {
|
||||
"process": "models.xiang.menu.Paginate",
|
||||
"guard": "-",
|
||||
"default": [
|
||||
{
|
||||
"withs": {
|
||||
"children": {
|
||||
"query": {
|
||||
"select": ["name", "id"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"wheres": [
|
||||
{
|
||||
"column": "parent",
|
||||
"op": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
null,
|
||||
15
|
||||
]
|
||||
}
|
||||
},
|
||||
"columns": {
|
||||
"ID": {
|
||||
"label": "ID",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":id"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "input",
|
||||
"props": {
|
||||
"value": ":id"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"blocks": {
|
||||
"label": "block布局",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":blocks"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "checkbox",
|
||||
"props": {}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"block布局": {
|
||||
"label": "block布局",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":blocks"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "select",
|
||||
"props": {
|
||||
"value": ":blocks",
|
||||
"placeholder": "请选择是否为block布局",
|
||||
"options": [
|
||||
{
|
||||
"label": "是",
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"label": "否",
|
||||
"value": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"created_at": {
|
||||
"label": "创建时间",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":created_at"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "datetime",
|
||||
"props": {
|
||||
"value": ":created_at"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"deleted_at": {
|
||||
"label": "删除标记",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":deleted_at"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "datetime",
|
||||
"props": {
|
||||
"value": ":deleted_at"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"icon": {
|
||||
"label": "图标",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":icon"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "input",
|
||||
"props": {
|
||||
"value": ":icon"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"id": {
|
||||
"label": "ID",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":id"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "input",
|
||||
"props": {
|
||||
"value": ":id"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"name": {
|
||||
"label": "名称",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":name"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "input",
|
||||
"props": {
|
||||
"value": ":name"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"parent": {
|
||||
"label": "父节点",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":parent"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "input",
|
||||
"props": {
|
||||
"value": ":parent"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"path": {
|
||||
"label": "路由",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":path"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "input",
|
||||
"props": {
|
||||
"value": ":path"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"rank": {
|
||||
"label": "排列",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":rank"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "input",
|
||||
"props": {
|
||||
"value": ":rank"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"status": {
|
||||
"label": "状态",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":status"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "select",
|
||||
"props": {
|
||||
"options": [
|
||||
{
|
||||
"label": "enabled",
|
||||
"value": "enabled"
|
||||
},
|
||||
{
|
||||
"label": "disabled",
|
||||
"value": "disabled"
|
||||
}
|
||||
],
|
||||
"value": ":status"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"updated_at": {
|
||||
"label": "更新时间",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":updated_at"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "datetime",
|
||||
"props": {
|
||||
"value": ":updated_at"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"visible_menu": {
|
||||
"label": "显示",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":visible_menu"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "checkbox",
|
||||
"props": {
|
||||
"value": ":visible_menu"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"创建时间": {
|
||||
"label": "创建时间",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":created_at"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "datetime",
|
||||
"props": {
|
||||
"value": ":created_at"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"删除标记": {
|
||||
"label": "删除标记",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":deleted_at"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "datetime",
|
||||
"props": {
|
||||
"value": ":deleted_at"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"名称": {
|
||||
"label": "名称",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":name"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "input",
|
||||
"props": {
|
||||
"value": ":name"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"图标": {
|
||||
"label": "图标",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":icon"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "input",
|
||||
"props": {
|
||||
"value": ":icon"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"排列": {
|
||||
"label": "排列",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":rank"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "input",
|
||||
"props": {
|
||||
"value": ":rank"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"显示": {
|
||||
"label": "显示",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":visible_menu"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "select",
|
||||
"props": {
|
||||
"value": ":visible_menu",
|
||||
"placeholder": "请选择是否显示",
|
||||
"options": [
|
||||
{
|
||||
"label": "是",
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"label": "否",
|
||||
"value": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"更新时间": {
|
||||
"label": "更新时间",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":updated_at"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "datetime",
|
||||
"props": {
|
||||
"value": ":updated_at"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"父节点": {
|
||||
"label": "父节点",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":parent"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "input",
|
||||
"props": {
|
||||
"value": ":parent"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"状态": {
|
||||
"label": "状态",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":status"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "select",
|
||||
"props": {
|
||||
"options": [
|
||||
{
|
||||
"label": "enabled",
|
||||
"value": "enabled"
|
||||
},
|
||||
{
|
||||
"label": "disabled",
|
||||
"value": "disabled"
|
||||
}
|
||||
],
|
||||
"value": ":status"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
},
|
||||
"路由": {
|
||||
"label": "路由",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":path"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "input",
|
||||
"props": {
|
||||
"value": ":path"
|
||||
}
|
||||
},
|
||||
"form": {}
|
||||
}
|
||||
},
|
||||
"filters": {},
|
||||
"list": {
|
||||
"primary": "id",
|
||||
"layout": {
|
||||
"columns": [
|
||||
{
|
||||
"name": "名称",
|
||||
"width": "240px"
|
||||
},
|
||||
{
|
||||
"name": "父节点"
|
||||
},
|
||||
{
|
||||
"name": "图标"
|
||||
},
|
||||
{
|
||||
"name": "状态"
|
||||
},
|
||||
{
|
||||
"name": "路由"
|
||||
},
|
||||
{
|
||||
"name": "排列"
|
||||
},
|
||||
{
|
||||
"name": "block布局"
|
||||
},
|
||||
{
|
||||
"name": "显示"
|
||||
}
|
||||
],
|
||||
"filters": [
|
||||
{
|
||||
"name": "名称",
|
||||
"width": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
"actions": {
|
||||
"create": {
|
||||
"type": "button",
|
||||
"props": {
|
||||
"label": "新建菜单",
|
||||
"icon": "fas fa-plus"
|
||||
}
|
||||
},
|
||||
"view": {},
|
||||
"edit": {},
|
||||
"import": {},
|
||||
"update": {},
|
||||
"delete": {},
|
||||
"insert": {},
|
||||
"updateWhere": {},
|
||||
"deleteWhere": {},
|
||||
"updateSelect": {},
|
||||
"deleteSelect": {},
|
||||
"pagination": {},
|
||||
"setting": {}
|
||||
},
|
||||
"option": { "operation": { "unfold": true } }
|
||||
},
|
||||
"edit": {
|
||||
"primary": "id",
|
||||
"layout": {
|
||||
"fieldset": [
|
||||
{
|
||||
"title": "基础信息",
|
||||
"description": "",
|
||||
"columns": [
|
||||
{
|
||||
"name": "名称",
|
||||
"width": 6
|
||||
},
|
||||
{
|
||||
"name": "图标",
|
||||
"width": 6
|
||||
},
|
||||
{
|
||||
"name": "路由",
|
||||
"width": 6
|
||||
},
|
||||
{
|
||||
"name": "排列",
|
||||
"width": 6
|
||||
},
|
||||
{
|
||||
"name": "block布局",
|
||||
"width": 6
|
||||
},
|
||||
{
|
||||
"name": "显示",
|
||||
"width": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"actions": {
|
||||
"cancel": {},
|
||||
"save": {
|
||||
"type": "button",
|
||||
"props": {
|
||||
"label": "保存"
|
||||
}
|
||||
},
|
||||
"delete": {}
|
||||
}
|
||||
},
|
||||
"insert": {},
|
||||
"view": {}
|
||||
}
|
||||
|
|
@ -1,107 +0,0 @@
|
|||
{
|
||||
"name": "用户",
|
||||
"version": "1.0.0",
|
||||
"decription": "象传用户",
|
||||
"guard": "flows.xiang.admin.guard",
|
||||
"bind": {
|
||||
"model": "xiang.user"
|
||||
},
|
||||
"apis": {
|
||||
"find": { "process": "flows.xiang.user.find" },
|
||||
"search": {
|
||||
"default": [
|
||||
{ "select": ["id", "name", "type", "mobile", "email"] },
|
||||
1,
|
||||
10
|
||||
]
|
||||
}
|
||||
},
|
||||
"columns": {
|
||||
"登录密码": {
|
||||
"label": "登录密码",
|
||||
"view": {
|
||||
"type": "label",
|
||||
"props": {
|
||||
"value": ":password"
|
||||
}
|
||||
},
|
||||
"edit": {
|
||||
"type": "input",
|
||||
"props": {
|
||||
"value": ":password",
|
||||
"type": "password"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"filters": {
|
||||
"关键词": {
|
||||
"label": "关键词",
|
||||
"bind": "where.name.match",
|
||||
"input": {
|
||||
"type": "input",
|
||||
"props": {
|
||||
"placeholder": "请输入关键词"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"primary": "id",
|
||||
"layout": {
|
||||
"columns": [
|
||||
{ "name": "姓名", "width": 100 },
|
||||
{ "name": "类型", "width": 200 },
|
||||
{ "name": "手机号", "width": 200 },
|
||||
{ "name": "邮箱", "width": 200 },
|
||||
{ "name": "状态" }
|
||||
],
|
||||
"filters": [{ "name": "关键词", "width": 6 }]
|
||||
},
|
||||
"actions": {
|
||||
"create": {
|
||||
"type": "button",
|
||||
"props": {
|
||||
"label": "添加用户",
|
||||
"icon": "fas fa-plus"
|
||||
}
|
||||
},
|
||||
"view": {},
|
||||
"edit": {},
|
||||
"import": {},
|
||||
"update": {},
|
||||
"delete": {},
|
||||
"insert": {},
|
||||
"updateWhere": {},
|
||||
"deleteWhere": {},
|
||||
"updateSelect": {},
|
||||
"deleteSelect": {},
|
||||
"pagination": {},
|
||||
"setting": {}
|
||||
},
|
||||
"option": { "operation": { "unfold": true } }
|
||||
},
|
||||
"edit": {
|
||||
"primary": "id",
|
||||
"layout": {
|
||||
"fieldset": [
|
||||
{
|
||||
"columns": [
|
||||
{ "name": "姓名", "width": 12 },
|
||||
{ "name": "类型", "width": 12 },
|
||||
{ "name": "手机号", "width": 12 },
|
||||
{ "name": "邮箱", "width": 12 },
|
||||
{ "name": "登录密码", "width": 12 }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"actions": {
|
||||
"cancel": {},
|
||||
"save": { "type": "button", "props": { "label": "保存" } },
|
||||
"delete": { "type": "button", "props": { "label": "删除" } }
|
||||
}
|
||||
},
|
||||
"insert": {},
|
||||
"view": {}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue