scheme.md
3.11 KB
Scheme 方案
根据JSON Scheme配置自动生成一个包含搜索条件、表格、编辑表单、详情表单的页面
4f38f3a4834286a3f21560f8f60783af936c9cb3/examples/views/docs/component/scheme.md#">基础用法
通过配置JSON Scheme快速生成CURD逻辑
::: snippet 通过list配置项目
<template>
<z-scheme :list="list" :searchAPI="searchAPI" :getAPI="getAPI" :submitAPI="submitAPI" :deleteAPI="deleteAPI" auto real-selection>
<el-table-column type="selection" align="center" width="40"></el-table-column>
<template #header>
<el-tabs v-model="activeName">
<el-tab-pane label="待执行" name="wait"></el-tab-pane>
<el-tab-pane label="已执行" name="done"></el-tab-pane>
</el-tabs>
</template>
<template #button="{ size, openDialog }">
<el-button :size="size" plain>删除</el-button>
<el-button :size="size" plain @click="openDialog('other', '追加')">追加操作</el-button>
</template>
<template #dialog-other="{ model, closeDialog }">
<el-tag type="success">其它页面</el-tag>
<el-input
type="textarea"
:rows="2"
placeholder="请输入内容"
v-model="model.name">
</el-input>
<el-button @click="closeDialog">关闭弹出框</el-button>
</template>
</z-scheme>
</template>
<script>
export default {
data() {
return {
activeName: 'wait',
list: [
{ type: 'el-input', label: '姓名', key: 'name', rules: [{ required: true, message: '请输入', trigger: 'change' }] },
{ type: 'el-input', label: '年龄', key: 'age' },
]
}
},
methods: {
searchAPI(params) {
console.log(params);
return new Promise(resolve => {
setTimeout(() => {
const list = [
{ id: '0', name: '李饼', age: 32, location: { lat: 0, lng: 0 } },
{ id: '1', name: '陈拾', age: 20 },
{ id: '2', name: '阿里巴巴', age: 24 },
{ id: '3', name: '王七', age: 26 },
{ id: '4', name: '崔倍', age: 27 },
{ id: '5', name: '孙豹', age: 38 },
{ id: '6', name: '庞柏', age: 42 },
{ id: '7', name: '蔡疏', age: 60 },
{ id: '8', name: '卢纳', age: 55 },
]
resolve({
result: params.currentPage === 1 ? list.slice(0, 5) : list.slice(5),
totalCount: list.length
});
}, 1500);
});
},
getAPI(row) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve({ ...row, name: `[${row.name}]` });
}, 1500);
});
},
submitAPI(model, config) {
console.log(JSON.parse(JSON.stringify(model)));
console.log(config);
console.log('start');
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('done');
reject();
}, 1500);
});
},
deleteAPI() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve();
}, 1500);
});
}
}
}
</script>
:::
API
Attribute 属性
参数|说明|类型|可选值|默认值 -|-|-|-|- list | JSON Scheme配置项列表 | Array | - | []