# Scheme 方案
Scheme是一个数据驱动的解决方案,通过既定的业务配置参数,生成可模块化编辑的`CURD`业务视图。本组件核心是将一个list解析为Search、Table、Form三个组件的配置项,再将这几个组件组合使用。
## 基础用法
配置一个数据项列表快速生成一个增删改查业务视图,默认为静态数据维护。
::: snippet 使用`list`属性设置数据源,列表项中的`type`指定组件类型,其它参数包括**Form**、**Table**、**Search**组件的配置参数格式。可以使用`include`和`exclude`设置需要包括或者排除在哪个组件中,支持**String**和**Array**,不传则表示默认存在所有组件中。
```html
```
:::
## 表单分组
与Form组件配置类似,将表单分组显示。
::: snippet 组件`formProps`设置表单参数,在配置项属性中设置`group`参数配置分组。
```html
```
:::
## 动态列
设置表格列可以动态的控制显示状态
::: snippet `option`中设置`dynamicColumn: true`即可
```html
```
:::
## 弹出框类型
设置编辑表格时弹出框的类型
::: snippet 设置`dialogComponent`,默认为**el-dialog**,若设置为**el-drawer**,则可在`dialogProps`中可以设置`direction`弹出方向。
```html
```
:::
## 自定义内容
与**Form**、**Table**、**Search**组件相同,可以在Scheme中设置具名插槽替换相关组件。
::: snippet 配置**Form**组件的插槽有:`form-key`表单分组、`form-item-key`表单项、`form-label-key`表单项标题;配置**Table**组件的插槽有:`table-value-key`表格值渲染插槽、`table-key`表格列插槽、`table-append`表格后置列追加、`table-operation`表格操作栏自定义、`table-operation-btn-edit`表格编辑按钮自定义、`table-operation-btn-append`表格操作栏按钮追加;配置**Search**组件的插槽有:`search-key`搜索表单项;配置**Detail**组件的插槽有:`view-key`详情分组、`view-item-key`详情项;其它插槽有:`action-bar`按钮栏自定义、`action-button`按钮追加、`action-btn-new`新增按钮自定义、`render-key`表格和详情表单渲染插槽、`field-key`搜索表单和编辑表单项渲染插槽
```html
{{ value === 'BROKEN' ? '已损坏' : '正常' }}
{{ value }}
```
:::
## API快速配置
传入CURD对应API的Promise方法及URL地址,返回指定格式的结果
::: snippet 配置`option`参数设置组件配置项,其中`$http`为配置好拦截器的支持Promise的http框架、`url`基础url地址。`currPageAlias`分页当前页别名、`pageSizeAlias`分页每页数据量别名、`totalCountAlias`response返回分页条件中总数据量的别名。API交互逻辑处理见[说明](/component/specification)
```html
```
:::
## 自定义API配置
传入CURD对应API的Promise方法,返回指定格式的结果
::: snippet 配置`option`参数设置组件配置项,**searchAPI**查询、**detailAPI**查询详情、**getAPI**编辑查询数据、**deleteAPI**删除、**newAPI**新增保存、**editAPI**编辑保存
```html
```
:::
## API
## Attribute 属性
参数|说明|类型|可选值|默认值
-|-|-|-|-
value / v-model | 绑定值 | Array | - | []
list | 表单项配置列表 | Array | - | []
searchScheme | search域做配置 | Object | - | -
formScheme | form域做配置 | Object | - | -
tableScheme | table域做配置 | Object | - | -
其它参数 | 同时包含Form、Table、Search、Detail配置项的参数 | - | - | -
## Methods 方法
方法名|说明|参数
-|-|-
setModelValue | 设置表单值 | model
setDialog | 打开并设置弹出框模式 | { title, type, model }
## Events 事件
事件名称|说明|回调参数
-|-|-
change | 表单model发生变化时触发 | model对象
dialog-change | 设置弹出框类型或类型变化时触发 | dialogType
selection | 选中表格内容时触发 | selection
## List 表单项配置列表
参数|说明|类型|可选值|默认值
-|-|-|-|-
include | 包含在哪些组件中 | String,Array | - | ['search', 'table', 'form']
exclude | 不包含在哪些组件中 | String,Array | - | []
其它参数 | 同时包含Form、Table、Search、Detail配置项的参数 测试 | - | - | -