{ "$id": "/schemas/action.json#", "$schema": "http://json-schema.org/draft-07/schema#", "allOf": [ { "$ref": "/schemas/action.json#/definitions/common" }, { "additionalProperties": false, "patternProperties": { "^(\\$ref|type|label|block|icon|iconClassName|className|size|level|block|primary|tooltip|tooltipPlacement|actionType|api|dialog|drawer|link|url|target|reload|confirmText|copy|disabled|disabledOn|disabledTip|visible|visibleOn|hidden|hiddenOn|required)$": {} }, "properties": { "$schema": { "format": "uri", "type": "string", "description": "绑定 JSON 格式说明,可忽略!" }, "type": { "description": "指定为按钮", "enum": ["button", "submit", "reset"], "type": "string" } }, "required": ["type"], "type": "object" } ], "definitions": { "common": { "description": "amis Action 渲染器,格式说明。https://baidu.github.io/amis/docs/renderers#action", "allOf": [ { "$ref": "/schemas/action.json#/definitions/baseButton" }, { "$ref": "/schemas/action.json#/definitions/baseAction" } ] }, "ajaxAction": { "description": "当前 Action 为 ajax 类型,用来发送 ajax 请求。", "properties": { "$ref": { "$ref": "/schemas/page.json#/definitions/$ref", "description": "引用页面中的定义" }, "actionType": { "description": "当前 Action 为 ajax 类型,用来发送 ajax 请求。", "enum": ["ajax"], "type": "string" }, "api": { "$ref": "/schemas/page.json#/definitions/api", "description": "当按钮为 ajax 类型时,用来配置 ajax 发送得目标地址" }, "confirmText": { "description": "操作前的确认文字设置。", "type": "string" }, "feedback": { "$ref": "/schemas/dialog.json", "description": "配置 action 结束后的反馈行为。通过配置此属性,可以自动弹出一个 dialog 继续操作。" }, "optimistic": { "description": "是否启用乐观模式", "type": "boolean" }, "reload": { "description": "指定此次 Action 之后,需要刷新的组件名字。请填入目标组件的 name 值。", "type": "string" } }, "required": ["actionType", "api"], "type": "object" }, "baseAction": { "if": { "properties": { "actionType": { "const": "ajax" } } }, "then": { "$ref": "/schemas/action.json#/definitions/ajaxAction" }, "else": { "if": { "properties": { "actionType": { "const": "url" } } }, "then": { "$ref": "/schemas/action.json#/definitions/urlAction" }, "else": { "if": { "properties": { "actionType": { "const": "dialog" } } }, "then": { "$ref": "/schemas/action.json#/definitions/dialogAction" }, "else": { "if": { "properties": { "actionType": { "const": "drawer" } } }, "then": { "$ref": "/schemas/action.json#/definitions/drawerAction" }, "else": { "if": { "properties": { "actionType": { "const": "copy" } } }, "then": { "$ref": "/schemas/action.json#/definitions/copyAction" }, "else": { "if": { "properties": { "actionType": { "const": "reload" } } }, "then": { "$ref": "/schemas/action.json#/definitions/reloadAction" }, "else": { "$ref": "/schemas/action.json#/definitions/otherAction" } } } } } } }, "baseButton": { "properties": { "block": { "default": false, "description": "是否独占一行 `display: block`", "type": "boolean" }, "className": { "$ref": "/schemas/page.json#/definitions/className", "description": "配置容器 className" }, "disabled": { "description": "是否为禁用状态。", "type": "boolean" }, "disabledOn": { "$ref": "/schemas/page.json#/definitions/expression", "description": "通过 JS 表达式来配置当前表单项的禁用状态。" }, "hidden": { "type": "boolean", "description": "设置是否隐藏" }, "hiddenOn": { "$ref": "/schemas/page.json#/definitions/expression", "description": "通过 JS 表达式来配置当前表单项是否隐藏。" }, "icon": { "description": "按钮图标,请查看 fontAwesome http://fontawesome.io/icons/", "type": "string" }, "iconClassName": { "type": "string", "description": "icon 上面的 css 类名" }, "label": { "description": "按钮名字", "type": "string" }, "level": { "description": "按钮级别", "enum": ["info", "success", "warning", "danger", "link", "primary"], "type": "string" }, "primary": { "default": false, "description": "按钮是否为主按钮,影响样式。", "type": "boolean" }, "size": { "description": "按钮大小", "enum": ["xs", "sm", "md", "lg", ""], "type": "string" }, "tooltip": { "description": "按钮提示文字,hover 时显示", "type": "string" }, "tooltipPlacement": { "default": "top", "description": "按钮提示文字显示的位置", "enum": ["left", "top", "right", "bottom"], "type": "string" }, "type": { "description": "按钮类型", "enum": ["button", "submit", "reset"], "type": "string" }, "visible": { "type": "boolean", "description": "设置是否显示" }, "visibleOn": { "$ref": "/schemas/page.json#/definitions/expression", "description": "通过 JS 表达式来配置当前表单项是否显示" } }, "type": "object" }, "otherAction": { "properties": { "actionType": { "description": "Action 类型", "enum": ["prev", "next", "cancel", "close", "submit", "confirm", ""], "type": "string" }, "confirmText": { "description": "操作前的确认文字设置。", "type": "string" }, "target": { "type": "string", "description": "可以指定由目标来相应这个事件" } }, "type": "object" }, "copyAction": { "description": "当前 Action 为 copy 类型,用来复制内容到剪切板。", "properties": { "actionType": { "description": "当前 Action 为 copy 类型,用来复制内容到剪切板。", "enum": ["copy"], "type": "string" }, "copy": { "$ref": "/schemas/page.json#/definitions/tpl", "description": "copy 到剪切板的内容" } }, "required": ["actionType", "copy"], "type": "object" }, "dialogAction": { "description": "当前 Action 为 dialog 类型,用来做弹窗操作。", "properties": { "actionType": { "description": "当前 Action 为 dialog 类型,用来做弹窗操作。", "enum": ["dialog"], "type": "string" }, "dialog": { "$ref": "/schemas/dialog.json#/definitions/common", "description": "dialog的展示schema" }, "nextCondition": { "description": "下一个的条件,写法类似于 disabledOn、visibleOn 等等,用来判断是否还有下一条数据,只有 crud 中才有用。", "type": "string" }, "reload": { "description": "指定此次 Action 之后,需要刷新的组件名字。请填入目标组件的 name 值。", "type": "string" } }, "required": ["actionType", "dialog"], "type": "object" }, "drawerAction": { "description": "当前 Action 为 drawer 类型,用来做抽出式弹窗操作。", "properties": { "actionType": { "description": "当前 Action 为 drawer 类型,用来做抽出式弹窗操作。", "enum": ["drawer"], "type": "string" }, "drawer": { "$ref": "/schemas/drawer.json#/definitions/common", "description": "drawer的展示schema" }, "nextCondition": { "description": "下一个的条件,写法类似于 disabledOn、visibleOn 等等,用来判断是否还有下一条数据,只有 crud 中才有用。", "type": "string" }, "reload": { "description": "指定此次 Action 之后,需要刷新的组件名字。请填入目标组件的 name 值。", "type": "string" } }, "required": ["actionType", "drawer"], "type": "object" }, "linkAction": { "description": "当前 Action 为 link 类型, 用来做站内跳转。", "properties": { "actionType": { "description": "当前 Action 为 link 类型, 用来做站内跳转。", "enum": ["link"], "type": "string" }, "confirmText": { "description": "操作前的确认文字设置。", "type": "string" }, "link": { "description": "站内地址,支持相对路径和绝对路径。同时还支持 `$varName` 或者 `${varName}` 取值。", "type": "string" } }, "required": ["actionType", "link"], "type": "object" }, "reloadAction": { "description": "当前 Action 为 reload 类型,用来让目标组件刷新数据。", "properties": { "actionType": { "description": "当前 Action 为 reload 类型,用来让目标组件刷新数据。", "enum": ["reload"], "type": "string" }, "confirmText": { "description": "操作前的确认文字设置。", "type": "string" }, "target": { "description": "reload 的目标对象,用 name 来指定,支持用 . 来指定更详细的路径如: aform.acontrol", "type": "string" } }, "required": ["actionType", "reload"], "type": "object" }, "urlAction": { "description": "当前 Action 为 url 类型,用来做站外跳转。", "properties": { "actionType": { "description": "当前 Action 为 url 类型,用来做站外跳转。", "enum": ["url"], "type": "string" }, "blank": { "default": true, "description": "是否在新页面打开", "type": "boolean" }, "confirmText": { "description": "操作前的确认文字设置。", "type": "string" }, "url": { "description": "跳转地址", "patten": "^https?://", "type": "string" } }, "required": ["actionType", "url"], "type": "object" }, "test": { "properties": { "type": { "enum": ["button", "submit", "reset"] } } } }, "description": "amis Action 渲染器,格式说明。https://baidu.github.io/amis/docs/renderers#action", "type": "object" }