美文网首页
element-datatable

element-datatable

作者: lwj1426282929 | 来源:发表于2018-11-22 14:02 被阅读0次

    element-datatable

    一款基于element-ui的表格插件,支持所有element-ui的属性和方法,可以接受本地数据和ajax参数异步请求服务器数据

    A form plug-in based on element-ui that supports the properties and methods of all element-ui and can accept local data or ajax parameter asynchronous request server data

    相关依赖 Dependencies

    基本用法 Build Setup

    • 安装 install
    npm i element-datatable -S
    
    • 在项目中引入element-ui依赖,参见http://element.eleme.io. 引入element相关的css等文件.

    • 使用本地数据 use local data

    <template>
      <div id="app">
        <element-datatable :column-attributes="columnAttributes" :data="tableData" />
      </div>
    </template>
    
    <script>
    import { ElementDatatable  } from '@/components'
    
    export default {
      name: "App",
      components: {
        ElementDatatable
      },
      data() {
        return {
          tableData: [
            {
              date: '2018-09-30',
              content: '123',
              isDelay: false,
              delayReason: '',
              checked: true
            }
          ],
          columnAttributes: [ // columnAttributes里面的属性与table-column attributes 一致, 但是采用小驼峰命名
            { label: "序号", type: 'index', width: '50', align: 'center' },
            { type: 'selection', align: 'center', width: 55 },
            { label: '日期', prop: 'date', width: '120', align: 'center', sortable: true },
            { label: '工作内容', prop: 'content', headerAlign: 'center', },
            { label: '工期是否延误', prop: 'isDelay', headerAlign: 'center', width: 130 },
            { label: '延误原因', prop: 'delayReason', headerAlign: 'center' }
          ]
        }
      }
    }
    </script>
    
    • 使用ajax获取数据 get data by ajax
    <template>
      <div id="app">
        <element-datatable :column-attributes="columnAttributes" :ajax="ajax" />
      </div>
    </template>
    
    <script>
    import ElementDatatable from './components'
    
    export default {
      name: "App",
      components: {
        ElementDatatable
      },
      data() {
        return {
          tableData: [
            {
              date: '2018-09-30',
              content: '123',
              isDelay: false,
              delayReason: '',
              checked: true
            }
          ],
          columnAttributes: [
            { label: "序号", type: 'index', width: '50', align: 'center' },
            { type: 'selection', align: 'center', width: 55 },
            { label: '日期', prop: 'date', width: '120', align: 'center', sortable: true },
            { label: '工作内容', prop: 'content', headerAlign: 'center', },
            { label: '工期是否延误', prop: 'isDelay', headerAlign: 'center', width: 130 },
            { label: '延误原因', prop: 'delayReason', headerAlign: 'center' }
          ],
          ajax: { // 支持传入完整的ajax对象
            url: '',
            method: '',
            headers: {},
            params: {},
            data: {}
          }
        }
      }
    }
    </script>
    

    有关el-table和el-table-column使用方法,请参考element-ui相关说明

    其它功能 Other property & event

    • 支持所有的el-table、el-table-column属性、事件和方法.

    • checked-prop
      仅在tyep="selection"时有效,该属性接收一个字符串指定某一属性或方法,通过验证数据的指定属性值确认是否选中该条数据;方法接收两个参数(row, index), 通过返回true或false指定该数据是否选中

    • selectAbleProp
      仅在tyep="selection"时有效,该属性接收一个字符串指定某一属性,通过验证数据的该属性值判断是否可选,作用与el-table-column的selectable属性相同。

    ElementDatatable Attributes

    参数 说明 类型 可选值 默认值
    ajax 用于向后端发送ajax请求, 类型为string时接收一个url地址, 类型为object时接收整个ajax对象, 默认使用get方式 string / object -- --
    serverParams 表格请求的查询条件、请求参数 object -- --
    showLoading 表格请求时是否显示loading加载 boolean -- true
    columnAttributes 表格列的属性, 属性值与element table-column attributes 一致, 但是采用小驼峰命名规则 array -- --
    checkedProp 仅对 type=selection 的列有效, 指定默认选中, 或者传入一个函数,返回一个Boolean 表示是否选中 string/function(row, index) -- --
    selectAbleProp 仅对 type=selection 的列有效,与表格列中的selectAble属性作用一致,决定这一行的 CheckBox 是否可以勾选 string -- --
    createdUnload 指定表格初始化的时候是否发送请求获取数据 boolean -- false
    pageIndexKey 指定表格的pageIndex属性 string -- pageIndex
    pageSizeKey 指定表格的pageSize属性 string -- pageSize
    dataKey 指定后台返回数据的key值 string -- tbody
    totalKey 指定后台返回表格总条数的key值 string -- --
    data 采用本地数据时有效,显示的数据 array -- --
    height Table 的高度,默认为自动高度。如果 height 为 number 类型,单位 px;如果 height 为 string 类型,则这个高度会设置为 Table 的 style.height 的值,Table 的高度会受控于外部样式。 string/number -- --
    max-height Table 的最大高度 string/number -- --
    stripe 是否为斑马纹 table boolean -- false
    border 是否带有纵向边框 boolean -- true
    size Table 的尺寸 string medium / small / mini --
    fit 列的宽度是否自撑开 boolean -- true
    show-header 是否显示表头 boolean -- true
    highlight-current-row 是否要高亮当前行 boolean -- false
    current-row-key 当前行的 key,只写属性 string/number -- --
    row-class-name 行的 className 的回调方法,也可以使用字符串为所有行设置一个固定的 className。 Function({row, rowIndex})/String -- --
    row-style 行的 style 的回调方法,也可以使用一个固定的 Object 为所有行设置一样的 Style。 Function({row, rowIndex})/Object -- --
    cell-class-name 单元格的 className 的回调方法,也可以使用字符串为所有单元格设置一个固定的 className。 Function({row, column, rowIndex, columnIndex})/String -- --
    cell-style 单元格的 style 的回调方法,也可以使用一个固定的 Object 为所有单元格设置一样的 Style。 Function({row, column, rowIndex, columnIndex})/Object -- --
    header-row-class-name 表头行的 className 的回调方法,也可以使用字符串为所有表头行设置一个固定的 className。 Function({row, rowIndex})/String -- --
    header-row-style 表头行的 style 的回调方法,也可以使用一个固定的 Object 为所有表头行设置一样的 Style。 Function({row, rowIndex})/Object -- --
    header-cell-class-name 表头单元格的 className 的回调方法,也可以使用字符串为所有表头单元格设置一个固定的 className。 Function({row, column, rowIndex, columnIndex})/String -- --
    header-cell-style 表头单元格的 style 的回调方法,也可以使用一个固定的 Object 为所有表头单元格设置一样的 Style。 Function({row, column, rowIndex, columnIndex})/Object -- --
    row-key 行数据的 Key,用来优化 Table 的渲染;在使用 reserve-selection 功能的情况下,该属性是必填的。类型为 String 时,支持多层访问:user.info.id,但不支持 user.info[0].id,此种情况请使用 Function。 Function(row)/String -- --
    empty-text 空数据时显示的文本内容,也可以通过 slot="empty" 设置 String -- 暂无数据
    default-expand-all 是否默认展开所有行,当 Table 中存在 type="expand" 的 Column 的时候有效 Boolean -- false
    expand-row-keys 可以通过该属性设置 Table 目前的展开行,需要设置 row-key 属性才能使用,该属性为展开行的 keys 数组。 Array --
    default-sort 默认的排序列的 prop 和顺序。它的prop属性指定默认的排序的列,order指定默认排序的顺序 Object order: ascending, descending 如果只指定了prop, 没有指定order, 则默认顺序是ascending
    tooltip-effect tooltip effect 属性 String dark/light --
    show-summary 是否在表尾显示合计行 Boolean -- false
    sum-text 合计行第一列的文本 String -- 合计
    summary-method 自定义的合计计算方法 Function({ columns, data }) -- --
    span-method 合并行或列的计算方法 Function({ row, column, rowIndex, columnIndex }) -- --
    select-on-indeterminate 在多选表格中,当仅有部分行被选中时,点击表头的多选框时的行为。若为 true,则选中所有行;若为 false,则取消选择所有行 Boolean -- true
    small 是否使用小型分页样式 boolean -- false
    background 是否为分页按钮添加背景色 -- false
    page-count 总页数,total 和 page-count 设置任意一个就可以达到显示页码的功能;如果要支持 page-sizes 的更改,则需要使用 total 属性 Number -- --
    pager-count 页码按钮的数量,当总页数超过该值时会折叠 number 大于等于 5 且小于等于 21 的奇数 7
    layout 组件布局,子组件名用逗号分隔 String sizes, prev, pager, next, jumper, ->, total, slot 'prev, pager, next, jumper, ->, total'
    page-sizes 每页显示个数选择器的选项设置 number[] -- [10, 20, 30, 50, 100]
    popper-class 每页显示个数选择器的下拉框类名 string -- --
    prev-text 替代图标显示的上一页文字 string -- --
    next-text 替代图标显示的下一页文字 string -- --
    disabled 是否禁用分页按钮 boolean -- false

    ElementDatatable Events

    事件名 说明 参数
    select 当用户手动勾选数据行的 Checkbox 时触发的事件 selection, row
    select-all 当用户手动勾选全选 Checkbox 时触发的事件 selection
    selection-change 当选择项发生变化时会触发该事件 selection
    cell-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, event, column
    row-contextmenu 当某一行被鼠标右键点击时会触发该事件 row, event
    row-dblclick 当某一行被双击时会触发该事件 row, 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 当用户对某一行展开或者关闭的时候会触发该事件 row, expandedRows

    ElementDatatable Methods

    方法名 说明 参数
    reloadData 重新加载表格数据,可以新加参数座位查询字段 searchObj

    ElementDatatable Slot

    slot
    slot name=“first”

    相关文章

      网友评论

          本文标题:element-datatable

          本文链接:https://www.haomeiwen.com/subject/mldlqqtx.html