<BmTable url="/project/list"
:columns="columns"
:formItem="formItem"
:formConfig="formConfig"
:isPagination="true"
@postData="postData"
@preData="preData"
ref="bmTable">
<template #bmSuffix>
<div>
<el-button type="success">新增</el-button>
</div>
</template>
</BmTable>
export default {
mixins: [IndexMixin],
setup() {
const bmTable = ref()
const postData = (data)=> { return data; }
const preData = (data)=> { return data; }
return {
postData,
preData,
bmTable
}
}
}
export default {
data() {
return {
columns: [
{
prop: 'creatTime',
label: '创建时间',
},
{
prop: 'datas',
label: '操作',
labelWidth: 180,
render: (item)=> {
return <>
<el-button link type="success" onClick={()=> { this.deletes(item); }}>删除</el-button>
</>
}
}
],
formItem: [
{
prop: 'created',
label: '创建时间',
el: 'el-input',
placeholder: '123',
defaultValue: 'test'
},
{
prop: 'crea',
label: '创建',
el: 'el-select',
data: [{label: '123', value: '1'}, {label: '3', value: '2'}],
elOpt: 'el-option',
placeholder: '123',
defaultValue: '1'
},
],
formConfig: { }
}
},
}
参数
事件
实现方案
原理:当我们存在多个组件中的数据或者功能很相近时,我们就可以利用 mixins 将公共部分提取出来,通过 mixins 封装函数,组件调用他们是不会改变函数作用域外部的。
注意事项
if (!isPagination) {
tableData.list = onPostData ? onPostData(data.data) : data.data;
tableData.data = tableData.list.slice(
(tableData.pagination.page - 1) * tableData.pagination.pageSize,
tableData.pagination.page * tableData.pagination.pageSize
);
tableData.pagination.total = tableData.list.length;
return;
}
tableData.data = onPostData
? onPostData(data.data.result)
: data.data.result;
tableData.pagination.total = data.data.total;
});