# chaso-table **Repository Path**: chuion/chaso-table ## Basic Information - **Project Name**: chaso-table - **Description**: A powerful table component based on Vue and element-ui - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-20 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## chaso-table ### Intro 简介 `chaso-table` 是一款表格组件,基于 `vue` 和 `element-ui` 进行的二次封装,无需繁琐的模板代码,所有的表格列配置项均可通过属性传递,使你的代码更干净。 ### Feature 特色 - `chaso-table` 通过 `column` 属性来实现表格列的配置,灵活的 `JSX` 语法便于高度自定义表格组件; - `chaso-table` 采用 `$attrs` 和 `$listeners` 接收参数和监听事件,无缝对接 `element-ui` 中的 `Table` 文档板块,包含自定义 `slot` 插槽,上手更快; - `column` 每列配置,最低限度仅传递 `prop` 和 `label` 属性,就可实现标准值输出,也可以使用 `formatter` 或 `render` 属性进行格式化输出; ### Install 安装 - 通过 `npm` 或者 `yarn` 安装项目 ```bash npm i chaso-table # 或者 yarn add chaso-table ``` - 引用组件,根据需要可全局引入或者局部引入 ```javascript // 组件依赖 vue 和 element-ui // 全局引入 // >>> main.js import Vue from 'vue' import Element from 'element-ui' import 'element-ui/libs/theme-chalk/index.css' import ChasoTable from 'chaso-table' Vue.use(ChasoTable, options) // chaso-table 全局引用时可传入配置项,具体内容见下方 // 局部引入 // >>> Demo.vue ``` ### Options 配置项 配置项内容可在全局引入时设置,或者直接使用 `` ,需注意:直接使用的优先级高于全局配置 | 参数 | 数据类型 | 默认值 | 可选值 | 说明 | |:----------------------:|:--------:|:------:|:-----------------:|:----------------------------------:| | colAlign | String | center | left/right/center | 设置表格列的对齐方式 | | colHeaderAlign | String | center | left/right/center | 设置表头的对其方式 | | colEmptyText | String | '-' | - | 表格单元数据为空时显示的文本内容 | | pagerOffset | Number | 0 | - | 设置分页器与表格的间距,单位是'px' | | customClassName | String | '' | - | 自定义class名称 | | tablePadding | Number | 0 | - | Table的Padding值,计算表格高度会用 | | colShowOverflowTooltip | Boolean | false | true/false | 当内容过长被隐藏时显示 tooltip | ### Table Attributes 表格属性 仅展示必填项和新增项,其余参数见 [Element Doc Table #Table-column Attributes](https://element.eleme.cn/#/zh-CN/component/table) 及 [Element Doc Pagination](https://element.eleme.cn/#/zh-CN/component/pagination) | 参数 | 数据类型 | 是否必须 | 默认值 | 可选值 | 说明 | |:----------------------:|:--------:|:--------:|:------:|:-----------------:|:----------------------------------:| | data | Array | 是 | - | - | 表格数据 | | column | Array | 是 | - | - | 表格列配置项,具体内容见下方说明 | | pagination | Boolean | 否 | false | - | 是否显示分页器 | | pagerOffset | Number | 否 | 0 | - | 设置分页器与表格的间距,单位是'px' | | colAlign | String | 否 | center | left/right/center | 设置表格列的对齐方式 | | colHeaderAlign | String | 否 | center | left/right/center | 设置表头的对其方式 | | colEmptyText | String | 否 | '-' | - | 表格单元数据为空时显示的文本内容 | | customClassName | String | 否 | - | - | 自定义class名称 | | tablePadding | Number | 否 | 0 | - | Table的Padding值,计算表格高度会用 | | colShowOverflowTooltip | Boolean | 否 | false | true/false | 当内容过长被隐藏时显示 tooltip | ### Table Events 表格事件 仅展示新增事件,其余事件见 [Element Doc Table #Table Events](https://element.eleme.cn/#/zh-CN/component/table) 及 [Element Doc Pagination](https://element.eleme.cn/#/zh-CN/component/pagination) | 事件名 | 说明 | 参数 | |:--------------------:|:----------------------------------:|:-------------------------:| | page-change | 同 el-pagination 的 current-change | currentPage | | table-current-change | 同 el-table 的 current-change | currentRow, oldCurrentRow | ### Table Methods 表格方法 支持全部 `el-table` 和 `el-pagination` 方法,详见 [Element Doc Table #Table Methods](https://element.eleme.cn/#/zh-CN/component/table) 及 [Element Doc Pagination](https://element.eleme.cn/#/zh-CN/component/pagination) ### Table Slot 表格插槽 | name | 说明 | |:----------:|:------------------------------------------------------------------------:| | append | 插入至表格最后一行之后的内容。若表格有合计行,该 slot 会位于合计行之上。 | | empty | 空数据时显示的文本内容。 | | pagination | 分页器中的自定义内容,需要在 layout 中列出 slot | ### Column 列配置项 仅展示必填项和新增项,其余参数见 [Element Doc Table #Table-column Attributes](https://element.eleme.cn/#/zh-CN/component/table) | 参数 | 数据类型 | 是否必须 | 说明 | |:---------:|:-----------------------------------:|:--------:|:------------------------------:| | prop | String | 是 | 设置表格列的对齐方式 | | label | String | 是 | 设置表头的对其方式 | | render | Function(h, context)/VNode | 否 | 自定义渲染内容,可选返回VNode | | formatter | Function(row, column, index)/String | 否 | 自定义渲染内容,可选返回字符串 | | show | Function()/Boolean | 否 | 是否渲染该列,默认渲染 | ### Usage Example 使用示例 - 所有 `` 接受的属性和事件, `` 都接受 - 由于 `` 和 `` 同时存在事件 @current-change , 建议使用 @table-current-change 和 @page-change 区分 - `` 接受一些新属性,见配置清单 - `` 中实现了 `` 和 `` 的所有 `` - 需要注意:`` 的自定义插槽在 `` 中为 `` ```javascript ```