# Schema Page 方案页面 根据JSON Schema配置自动生成一个包含搜索、表格、表单、详情功能的页面 ## 基础用法 `schema`设置配置项,其中包括`filter`、`table`、`form`三个基本schema配置,配置方式分别对应`z-schema-filter`、`z-schema-table`、`z-schema-form`,绑定值则分别对应`value-filter`、`value-table`、`value-form`,由于是多个双向绑定的值,所以使用`sync`修饰符来做双向绑定。 ::: snippet 基础示例 ```html ``` ::: ## 详情入口 可以通过自定义插槽的方式,在单元格内指定详情入口。由于三个子组件均支持自定义插槽,所以在本组件中使用自定义插槽时需要加上子组件**前缀**。 ::: snippet 配置表格中的详情入口可以使用`table-cell-`插槽。 ```html ``` ::: ## 对接接口 本组件预置了增删改查逻辑,因此分别对应`api-search`、`api-new`、`api-edit`、`api-get`、`api-delete`五个基本接口。 ::: snippet 接口格式为返回一个**Promise**对象的**Function**。其中,`api-search`的执行结果必须是{ list: [...], total: n }的格式,`api-get`的执行结果必须与`valur-form`相对应,`api-new`、`api-edit`、`api-delete`保持默认的**Promise**的resolve或reject逻辑即可,详情见示例。 ```html ``` ::: ## 详情接口 由于可能出现详情与表单不同的情况,因此本组件提供了`value-detail`属性和`api-detail`接口可独立维护详情页面,若详情表单项也不同,则可以在`schema`中配置`detail`来设置。 ::: snippet 若没有详情绑定值属性和接口,则默认以表单的值为准。 ```html ``` ::: ## 弹窗类型 除了本组件内置的`new`、`edit`、`detail`三种弹出框模式之外,还可以通过任意插槽打开任意自定义弹出框。也支持重新定义原有的三种弹框,同时也需要重新自定义表单校验和提交等逻辑。 ::: snippet 插槽提供`openDialog`打开弹出框方法,参数类型为(type: 弹出框类型, title: 弹出框标题, config: 弹出框配置),弹出框主体通过`dialog-`插槽定义。`closeDialog`为关闭弹出框。 ```html ``` ::: ## 按钮权限 本组件不包含自定义业务逻辑,因此配置项不包含权限判断,如果需要按钮的权限判断,可以通过`action`插槽和`operation`插槽将渲染逻辑暴露在视图模板中,然后进行自定义判断。 ::: snippet 本示例项目中没有`v-permission`等自定义权限指令,使用时根据实际情况在对应的按钮加上判断即可 ```html ``` ::: ## API ## Attribute 属性 参数|说明|类型|可选值|默认值 -|-|-|-|- schema | JSON Schema配置项列表 | Array | - | []