2.1.2 • Published 11 months ago

rework-table v2.1.2

Weekly downloads
-
License
-
Repository
-
Last release
11 months ago

CommonTable

该组件采用jsx写法;对于组件的插槽放在config.slots;及作用域插槽放在scopedSlots中 由于jsx写法; 在vue2.x中通过config.on的方式调用组件传出的事件;不能再在组件上绑定传出的事件;否则会报错; 包2.0以上适合vue3.x ;2.0以下适合vue2.x

Props

NameDescriptionTypeRequiredDefault
datatable展示的数据vue2.xArrayfalse[]
modelValuetable展示的数据vue3.xArrayfalse[]
columns表格单元列展示的内容Arrayfalse[]
configtable除data外其他的配置Objectfalse{}
drag配置table是否开启拖拽,2.0.4版本以上的才有该属性Booleanfalsefalse
options对拖拽table的详细配置;具体查看sortablejs的optionsObjectfalse{}

Events

Event NameDescriptionParameters
drag-change拖拽列表排序时触发的事件,2.0.6以上有该事件data
select当用户手动勾选数据行的 Checkbox 时触发的事件selection, row
select-all当用户手动勾选全选 Checkbox 时触发的事件-
selection-change当选择项发生变化时会触发该事件selection
cell-mouse-entercell-mouse-enter 当单元格 hover 进入时会触发该事件row, column, cell, event
cell-mouse-leave当单元格 hover 退出时会触发该事件row, column, cell, event
cell-click当某个单元格被点击时会触发该事件row, column, cell, event
cell-dblclick当某个单元格被双击击时会触发该事件row, column, cell, event
row-click当某一行被点击时会触发该事件row, column, event
row-contextmenu当某一行被鼠标右键点击时会触发该事件row, column, event
row-dblclick当某一行被双击时会触发该事件row, column, event
header-click当某一列的表头被点击时会触发该事件column, event
header-contextmenu当某一列的表头被鼠标右键点击时触发该事件column, event
sort-change当表格的排序条件发生变化的时候会触发该事件{ column, prop, order }
filter-change当表格的筛选条件发生变化的时候会触发该事件,参数的值是一个对象,对象的 key 是 column 的 columnKey,对应的 value 为用户选择的筛选条件的数组filters
current-change当表格的当前行发生变化的时候会触发该事件,如果要高亮当前行,请打开表格的 highlight-current-row 属性currentRow,oldCurrentRow
header-dragend当拖动表头改变了列的宽度的时候会触发该事件newWidth, oldWidth, column, event
expand-change当用户对某一行展开或者关闭的时候会触发该事件(展开行时,回调的第二个参数为 expandedRows;树形表格时第二参数为 expanded)row, (expandedRowsexpanded)

例子

  • 安装 npm install rework-table sortablejs -D
  • 使用

import CommonTable from "rework-table"

Vue.use(CommonTable) vue2.x

app.use(CommonTable) vue3.x

<template>
  <div>
    <h2>vue2.x写法,版本2.0以下</h2>
    <common-table :data='data' :config="config" :columns="columns"></common-table>
    <h2>vue3.x写法,版本2.0以上</h2>
    <h2>想拖拽表格,drag必须是'true',若对拖拽有个性化需求,可以在options传入自己需要的属性;如果没有,options可以不传入,即可拖拽</h2>
    <common-table v-model='data' :config="config" :columns="columns" :drag="true" :options="options"></common-table>
  </div>
</template>

<script>
data(){
    return {
        config:{
            slots:{
                default:(props)=>{
                            return (
                                <span>天</span>
                            )
                        },//匿名插槽
                append:()=>{
                    return (
                    <div>123</div>
                    )
                },    //el-table支持的插槽
            },
            script:true,
            on:{
                select:(selection, row)=>{
                  
                },//通过render函数的方式调用组件传出的事件;不能与在组件上绑定传出事件同时使用;只能选其一
            },  // vue2.x的写法 只在vue2.x生效
            onSelect:(selection, row)=>{} // vue3.x的写法 只在vue3.x生效
        },
        data:[],
        columns:[
            {  
                label:'姓名',
                props:'name',
                scopedSlots:{
                        heander:(props)=>{
                            return (
                                <span>天</span>
                            )
                        },//具名作用域插槽
                        default:(props)=>{
                            return (
                                <span>天</span>
                            )
                        },//匿名作用域插槽
                }, //表格列作用域插槽写法 距离是该组件有一个header的作用域插槽 vue2.x写法 只在vue2.x生效
                slots:{
                        heander:(props)=>{
                            return (
                                <span>天</span>
                            )
                        },//具名作用域插槽
                        default:(props)=>{
                            return (
                                <span>天</span>
                            )
                        },//匿名作用域插槽
                }, //表格列作用域插槽写法 距离是该组件有一个header的作用域插槽 vue3.x写法 只在vue3.x生效
                children:[
                    {
                      label:'性别',
                      props:'sex',
                      ...
                    },
                    {
                      label:'年龄',
                      props:'age',
                      ...
                    }
                ], //vue3.x中才有该属性,用于多级表头
            }
        ],
        options:{
            sort:true
        }  //具体查看sortablejs的options属性,它的事件大部分禁用了
    }
}
2.1.2

11 months ago

2.1.1

12 months ago

2.0.9

12 months ago

2.0.8

12 months ago

2.1.0

12 months ago

2.0.5

1 year ago

2.0.4

1 year ago

2.0.7

12 months ago

2.0.6

1 year ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.0-beta.2

2 years ago

2.0.0-beta.1

2 years ago

2.0.0-beta.0

2 years ago

2.0.1

2 years ago

1.0.0

2 years ago