scheme.md
4.13 KB
Scheme 方案
Scheme是一个数据驱动的解决方案,通过既定的业务配置参数,生成可模块化编辑的CURD业务视图
caa7ba030ad86973b7f846fe8539a9c3af38f066/examples/views/docs/scheme.md#">基础用法
配置项list中通过type可以配置任意组件,不受框架限制
:::snippet 使用list属性设置数据源,列表项中的type指定组件类型,每一项都已设置为el-form-item的子组件,通过rules配置校验规则
<template>
<eagle-scheme :list="schemeList" :option="{ auto: false }">
<!-- <div slot="action-bar" slot-scope="{ handleNew }">
<el-button type="warn" @click="handleNew">新增</el-button>
</div> -->
<el-button slot="action-button" type="success" plain size="small">启用</el-button>
<el-button slot="action-button" type="danger" plain size="small">禁用</el-button>
<el-table-column type="selection" width="50" align="center"></el-table-column>
<template #table-status="{ setDialog }">
<el-table-column prop="status" label="激活状态" min-width="120">
<el-tag @click="setDialog({ title: 'Status模式', type: 'dialog-status' })" slot-scope="{ row: { status } }" :type="status === 'active' ? 'success' : 'danger'">{{ status === 'active' ? '激活' : '禁用' }}</el-tag>
</el-table-column>
</template>
<template #search-status="{ model }">
<eagle-select v-model="model.status" :dataSource="dataSource"></eagle-select>
</template>
<template #form-group-setting >
<div style="padding: 10px 0px;margin-bottom: 30px;border-bottom: 1px dashed #aaa;display: flex;justify-content: space-between;">
<span>哎哟 - 设置 - 不错哦</span>
<el-button size="mini" type="primary">这是一个按钮</el-button>
</div>
</template>
<template #form-item-status="{ model }">
<el-input-number v-model="model.status"></el-input-number>
</template>
<template #view-item-code="{ model }">
<el-input disabled :value="model.code"></el-input>
</template>
<!-- <template #dialog-view="{ row }">
<div>这是一个自定义弹出框内容</div>
<div>{{ row }}</div>
</template> -->
<template #dialog-status>
<div>这是Status的内容</div>
</template>
<!-- 自定义按钮组 -->
<!-- <el-table-column slot="table-operation" prop="$operation" label="操作" min-width="140">
<el-tag>自定义按钮组</el-tag>
</el-table-column> -->
<!-- 在操作按钮组前加上新的按钮 -->
<!-- <template slot="table-operation-btn">
<el-button class="eagle-scheme__table-btn" type="text" title="启用">启用</el-button>
<el-button class="eagle-scheme__table-btn" type="text" title="禁用">禁用</el-button>
</template> -->
<!-- 在操作按钮组后追加新的按钮 -->
<!-- <template slot="table-operation-btn-append">
<el-button class="eagle-scheme__table-btn" type="text" title="启用">启用</el-button>
<el-button class="eagle-scheme__table-btn" type="text" title="禁用">禁用</el-button>
</template> -->
</eagle-scheme>
</template>
<script>
export default {
data() {
return {
schemeList: [
{ type: 'el-input', key: 'name', label: '名称', rules: [{ required: true, message: '请输入名称' }] },
{ type: 'el-input', key: 'code', label: '编码', rules: [{ required: true, message: '请输入编码' }],
exclude: 'search', group: { label: '设置', key: 'setting', tip: { content: '哇哦', placement: 'left' } }, tip: '编码为数字' },
{ type: 'el-input', key: 'type', label: '类型', group: { label: '设置', key: 'setting', icon: 'edit' }, formScheme: { tip: '类型随便填' } },
{ type: 'el-input-number', key: 'sort', label: '排序', include: ['form', 'table'], sortable: true },
{ type: 'el-input', key: 'status', label: '状态', group: { label: '信息', key: 'info', icon: 'info' }, formScheme: { label: '状态码' } },
],
dataSource: [
{ label: '选项A', value: 'A' },
{ label: '选项B', value: 'B' },
],
}
},
}
</script>
:::
API
Attribute 属性
参数|说明|类型|可选值|默认值 -|-|-|-|- list | 表单项配置列表 | Array | - | []