# Schema Page 方案页面 根据JSON Schema配置自动生成一个包含搜索、表格、表单、详情功能的页面 ## 基础用法 `schema`设置配置项,其中包括`filter`、`table`、`form`三个基本schema配置,配置方式分别对应`eagle-schema-filter`、`eagle-schema-table`、`eagle-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`的执行结果必须是[分页数据, 数据总数]的格式,`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 ``` ::: ## 弹窗类型 弹出框组件默认为`el-dialog`,使用自定义弹窗时,可以设置为`el-drawer`。 ::: snippet 通过`openDialog`的config参数配置`is: 'el-drawer'`即可改为抽屉式弹窗,`dialog-xxx-footer`可以设置抽屉固定的footer ```html ``` ::: ## 按钮权限 本组件不包含自定义业务逻辑,因此配置项不包含权限判断,如果需要按钮的权限判断,可以通过`action`插槽和`operation`插槽将渲染逻辑暴露在视图模板中,然后进行自定义判断。 ::: snippet 本示例项目中没有`v-permission`等自定义权限指令,使用时根据实际情况在对应的按钮加上判断即可 ```html ``` ::: ## 静态表格 设置`datagrid`将组建转化为静态表格,即不包含增删改查API的可编辑表格,不分页。 ::: snippet 基本参数和基础用法相同 ```html ``` ::: ## API ## Attribute 属性 参数|说明|类型|可选值|默认值 -|-|-|-|- schema | JSON Schema配置项列表 | Array | - | [] ## Schema 参数 参数|说明|类型|可选值|默认值 -|-|-|-|- filter | 搜索表单,false表示不显示,Object表示Schema | Object, Boolean | - | false action | 操作栏显示状态 | Boolean | - | true table | 表格,false表示不显示,Object表示Schema | Object, Boolean | - | false operation | 操作列,false表示不显示,Object表示操作栏配置 | Object, Boolean | - | {} pagination | 分页器,false表示不显示,Object表示分页器配置 | Object, Boolean | - | {} form | 表单,false表示不显示,Object表示Schema | Object, Boolean | - | false action | 表单 | Boolean | - | true selection | 可选择 | Boolean | - | true