1.0.0 • Published 3 years ago

@xuanmo/d-table v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

基于 Element-UI Table 二次封装表格

具体示例参考 example 目录

安装

$ yarn add @xuanmo/d-table

使用

vue 项目 main.js 引入组件

import Vue from 'vue'
import DTable from '@xuanmo/d-table'
Vue.use(DTable)

配置 vue.config.js

module.exports = {
  transpileDependencies: [
    '@xuanmo/d-table'
  ]
}

全局配置

在引入 DTable 时,可以传入一个全局配置对象。 该对象共支持 tableConfigpaginationConfig props 三个字段。 1. tableConfig 用于设置表格,参考 el-table 的属性; 1. paginationConfig 用于设置分页,参考 el-pagination 的属性; 1. props 具体说明见后续 props 章节。

在页面中使用

基础用法

<d-table
  :request-method="getTableData"
  :show-pagination="false"
/>
export default {
  methods: {
    getTableData(params) {
      return {
        header: [
          //  其他属性继承 el-table-column
          // 多级表头直接新增 children 字段即可,每次数据渲染为最后一级
          { name: '头1', column: 'column1', align: 'center' },
          { name: '头2', column: 'column2' },
          { name: '头3', column: 'column3' }
        ],
        data: [
          { column1: 'column1', column2: 'column2', column3: 'column3' },
          { column1: 'column1', column2: 'column2', column3: 'column3' }
        ]
      }
    }
  }
}

带插槽用法

<d-table
  :request-method="getTableData"
  :show-pagination="false"
>
  <!-- 继承 Element-UI Table 插槽属性 -->
  <template v-slot:column1="{ row }">{{ row }}</template>
  <template v-slot:slot2="{ row }">{{ row }}</template>
</d-table>
export default {
  methods: {
    getTableData(params) {
      return {
        header: [
          { name: '头1', column: 'column1', align: 'center' },
          { name: '头2', column: 'column2', slotName: 'slot2' },
          { name: '头3', column: 'column3' }
        ],
        data: [
          { column1: 'column1', column2: 'column2', column3: 'column3' },
          { column1: 'column1', column2: 'column2', column3: 'column3' }
        ]
      }
    }
  }
}

Attributes

备注:$attrs 默认用于继承 el-table 所有属性,$listeners 用于继承 el-table 所有事件

参数说明类型默认值是否必填
auto-request是否立即执行 request 方法BooleantrueN
request-method数据源,具体返回参数说明参考 propsFunction() => ({ header: [], data: [] })Y
props配置选项,具体参考下表说明Object参考下表N
before-create-header表头生成之前Function(header)-N
creating-header表头执行创建中Function(item, index)-N
selection是否展示复选框BooleanfalseN
pagination-config继承 el-pagination 属性Object{}N
show-pagination是否展示分页功能BooleantrueN
pagination-layout分页布局Stringtotal, sizes, prev, pager, next, jumperN
page-size每页请求条数Number10N
page-sizes每页显示个数选择器的选项设置Array10, 20, 40, 60, 80N

props

参数说明默认值是否必填
header表头字段名headerY
data表格数据字段名dataY
page分页页码字段名pageN
pageSize每页分页量字段名pageSizeN
total数据返回总条数字段名totalN

Slots

插槽的设置方式为两种,一种需要在 header 的每项中设置 slotName 字段,用于注册插槽,另一种插槽名字为 column 字段,可直接使用

<d-table
  :request-method="getTableData"

  <!-- 继承 Element-UI Table 插槽属性 -->
  <template v-slot:column1="{ row }">{{ row }}</template>
  <template v-slot:slot2="{ row }">{{ row }}</template>
</d-table>

Methods

方法名说明参数
reload重新渲染表格-

特殊参数说明

header 每项支持 formatType 属性,用于格式化当前列的值,目前支持的具体值如下:

说明
money千分位
percent百分号
1.0.0

3 years ago

0.0.9

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago