# Tables 表格 基于 Element [Table 表格](https://element.eleme.cn/#/zh-CN/component/table) 和 [Pagination 分页](https://element.eleme.cn/#/zh-CN/component/pagination) 封装的自定义 Table 组件,用于默认展示带分页的表格。 ## 基础用法 :::demo ```vue ``` ::: ## 带序号和选择的表格 :::demo ```vue ``` ::: ### 带分页的表格 ::: demo ```vue ``` ::: ## 处理分页改变 分页信息可以通过.sync 也可以通过change事件处理 ::: demo ```vue ``` ::: ## 选中某行 选中某行支持currentRow.sync , 也可以提供current-change事件进行处理 ::: demo ```vue ``` ::: ## 多选默认选择行 多选支持selected-rows.sync,也可以通过selection-change事件处理 ::: demo ```vue ``` ::: ## Props | 参数 | 说明 | 类型 | 可选值 | 默认值 | | --------------- | ------------------------------------------------------------ | -------------------- | ------------------------- | ------------------------------------------------------------ | | table | Table 组件自定义属性和监听器(**最高优先级,将会覆盖下面的同名属性**) | Object | - | {props: {},on: {},} | | pagination | Pagination 组件自定义属性和监听器(**最高优先级,将会覆盖下面的同名属性**) | Object | - | {props: {'page-sizes': [10, 20, 50],layout: 'total, sizes, prev, pager, next, jumper',},on: {},} | | minSelected | 最小选中条数(只限制去勾选) | number \| string | - | - | | clickToCheck | 是否允许点击行选中 | boolean | - | - | | data | 显示的数据 | Array | - | [] | | columns | 表格列的配置描述,具体项见下表 | Array | - | [] | | currentPage | 当前页数,支持 .sync 修饰符 | number | - | 1 | | page | 当前页数,和 currentPage 一样,**只是一个别名,两者只传一个** | number | - | 1 | | pageSize | 每页显示条目个数,支持 .sync 修饰符 | number | - | 10 | | total | 分页组件数据总数,为 0 时默认不显示分页 | number | - | 0 | | selection | 是否允许表格选择,开启后将向 columns 中自动注入 {type:'selection',width:50,align:'center'},如果 columns 中已有 type 为‘selection’将不注入 | boolean | - | false | | index | 是否添加索引列,开启后将向 columns 中注入 {type:'index',width:50,align:'center'},如果 columns 中已有 type 为‘index’将不注入 | boolean | - | false | | rowKey | 行数据的 Key,用来优化 Table 的渲染;在使用 reserve-selection 功能与显示树形数据时,该属性是必填的。类型为 String 时,支持多层访问:`user.info.id`,但不支持 `user.info[0].id`,此种情况请使用 `Function`。 | Function(row)/string | - | 'id' | | hidePagination | 是否隐藏分页(也可以通过 total 传 0 进行隐藏) | boolean | - | false | | paginationAlign | 分页组件水平对齐方式,支持 'left', 'center', 'right' | string | 'left'\|'center'\|'right' | 'right' | | currentRow | 当前行数据,支持.sync | Object | - | - | | selectedRows | 选中行数据,支持.sync | Array | - | [] | ### columns 参数说明 只是将标签属性进行对象化处理,未进行特殊处理。新增下面两个 renderProps 用于自定义渲染表格表头和单元格数据。 > 参考:Element [Table-column Props](https://element.eleme.cn/#/zh-CN/component/table#table-column-attributes) | name | 说明 | | :----------- | :----------------------------------------------------------------------- | | render | 自定义列的内容,参数分别为当前行的值,当前行数据,行索引,列信息,列索引 | | renderHeader | 自定义表头的内容. 参数分别为列,列索引 | ## Events | 参数 | 说明 | 回调参数 | | ------------------ | ---------------------------------------- | --------------------------- | | size-change | pageSize 改变时会触发 | 每页条数 | | current-change | currentPage 改变时会触发 | 当前页 | | change | pageSize 或 currentPage 改变时会触发 | {currentPage,page,pageSize} | | current-row-change | 当表格的当前行发生变化的时候会触发该事件 | currentRow, oldCurrentRow | | selection-change | 当选择项发生变化时会触发该事件 | selection | | row-click | 点击行触发该事件 | currentRow |