对vue element table二次封装
最近公司要做一个后台管理系统,框架用vue + element,很多模块要用到table组件,基于此现状,对table进行了简单的封装,可以支持自定义搜索选项,可设置是否选择checkbox,增加了对特殊选项的支持,自定义操作栏。
以下是代码:
table组件
<template>
<!-- 表格 公共组件 包含表格上面的搜索栏 表头 操作栏 都是自定义的 -->
<div>
<div class="search-box">
<slot name="searchBox"></slot>
</div>
<el-table
class="public-table"
v-loading="loading"
:data="tableData"
style="width: 100%"
:max-height="tableHeight? tableHeight: height"
@selection-change="handleSelectionChange"
>
<el-table-column v-if="isShowSelect" type="selection" width="55"></el-table-column>
<el-table-column
v-for="obj in tableConfiguration"
:prop="obj.prop"
:key="obj.key"
:label="obj.label"
:width="obj.width"
>
<template slot-scope="scope">
<slot name="specialItem" :row="scope.row" :column="obj.prop"></slot>
</template>
</el-table-column>
<el-table-column v-if="isShowOperate" fixed="right" label="操作" :width="operateWidth">
<template slot-scope="scope">
<slot name="operateBox" :row="scope.row"></slot>
</template>
</el-table-column>
</el-table>
<!-- 分页栏 -->
<el-pagination
v-if="pagination"
background
layout="total, sizes, prev, pager, next, jumper"
:page-sizes="[5,10,20,30]"
:page-size="pagination.pageSize"
:total="pagination.total"
:current-page="pagination.page"
@size-change="handleSizeChange"
@current-change="currentChange"
></el-pagination>
</div>
</template>
<script>
export default {
name