<template> <div class="eContainer-table-block"> <el-table ref="table" :data="data" style="width: 100%" class="eContainer-table" :header-cell-style="{ background: 'rgb(235, 235, 235)', color: 'rgb(51, 51, 51)', }" :highlight-current-row="true" :border="true" max-height="380" > <c-table-column v-for="(item, key) in columns" :key="key" :prop="item.prop" :label="item.label" :width="item.width" sortable > <template v-slot="{ scope }"> <span>{{ scope.row[item.prop] }}</span> </template> </c-table-column> <slot></slot> </el-table> <c-col :span="24"> <el-pagination class="eContainer-pagination" layout="prev, pager, next, jumper, ->, sizes, total" :page-sizes="pageSizes" :page-size="pageSize" :current-page="pageNumber" :total="total" @size-change="sizeChange" @current-change="currentChange" ></el-pagination> </c-col> </div> </template> <script> import CodeTable from "~/config/CodeTable"; /** * 后端分页的 Table 组件 */ export default { props: { columns: { type: Array, default: () => { return []; }, }, data: { type: Array, default: () => { return []; }, }, pageNumber: { type: Number, default: 1, }, pageSize: { type: Number, default: 1, }, total: { type: Number, default: 0, }, }, data() { return { pageSizes: [5, 10, 20, 30, 40, 50, 100], codes: { ...CodeTable, }, }; }, mounted() {}, methods: { sizeChange(size) { this.$emit("queryFunc", this.pageNumber, size); }, currentChange(currentPage) { this.$emit("queryFunc", currentPage, this.pageSize); }, }, }; </script> <style scoped> </style>