npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

element-datatables

v2.1.0

Published

一个基于element-ui的Table组件

Readme

ele-data-tables

一个基于element-ui 的表格组件,该组件封装了Ajax请求和分页,最初的灵感来自于DataTables,在项目中经过实践,有个这个组件的雏形.

  • 需要手动引入axios,element-ui ,qs
  • 由于axios依赖于Promise,因此如果要在IE9/IE10/IE11+上使用时,需要导入相应的polyfill,IE9-慎入
    代码中包含一个可运行的实例,通过下面的命令来启动实例
npm i && npm run dev

基本用法

  • 安装相关依赖
npm i -S axios element-ui qs element-datatables
  • 在项目中引入element-ui依赖,具体引入方式参见http://element.eleme.io.
    你需要在你的入口文件中引入element相关的css文件.
  • 通过以下两种方式之一展示数据
    • 通过ajax获取数据

<template>
    <div id="app">
        <h1>ele-data-tables</h1>
        <ele-data-tables ajax="/users" ref="renovate">
            <el-table-column prop="id" label="ID" align="center" />
            <el-table-column prop="name" label="姓名" />
            <el-table-column label="操作">
                <template slot-scope="scope">
                    <a style="margin-right: 10px;cursor: pointer" @click="op(scope.row)" class="link">操作</a>
                </template>
            </el-table-column>
        </ele-data-tables>
    </div>
</template>
<script>
    import EleDataTables from 'element-datatables'
    import { TableColumn as ElTableColumn } from 'element-ui'

    export default {
        components: {
            EleDataTables,
            ElTableColumn
        },
        data () {
        },
        methods: {
            op (value) {
                alert('你点击了' + JSON.stringify(value))
            }
        }
    }
</script>
  • 通过设置data属性获取数据

<template>
    <div id="app">
        <h1>ele-data-tables</h1>
        <ele-data-tables :data="users" ref="renovate">
            <el-table-column prop="id" label="ID" align="center" />
            <el-table-column prop="name" label="姓名" />
            <el-table-column label="操作">
                <template slot-scope="scope">
                    <a style="margin-right: 10px;cursor: pointer" @click="op(scope.row)" class="link">操作</a>
                </template>
            </el-table-column>
        </ele-data-tables>
    </div>
</template>
<script>
    import EleDataTables from 'element-datatables'
    import { TableColumn as ElTableColumn } from 'element-ui'

    export default {
        components: {
            EleDataTables,
            ElTableColumn
        },
        data () {
            users: [{
                id: 1,
                name: '张三'
            }, {
                id: 2,
                name: '李四'
            }, {
                id: 3,
                name: '王五'
            }]
        },
        methods: {
            op (value) {
                alert('你点击了' + JSON.stringify(value))
            }
        }
    }
</script>

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

其它table的高级功能

如果你要使用element table中的其它高级功能。请使用slot方式插入到表格中。

简介

element-datatable支持两种模式的数据显示,一是ajax服务模式,二是data的本地数据模式.当我们设置组件的data属性时,会启用本地数据模式,否则会启用服务器模式.本组件的主要功能是服务器端模式,通过少量的代码,实现较为复杂的服务器分页查询等逻辑.

服务器模式

当我们没有设置data的时候,组件启用服务器模式,我们可以通过设置服务器相关的参数来和从服务器获取数据.

与服务器相关的属性

  • ajax: 表示发送到服务器的请求,可以是一个字符串或者是一个完整的ajax对象.如果是一个字符串,则会向字符串指定的地址发送get请求以获取数据.本组件使用axios发送ajax请求,相关的ajax对象与axios 的config相同
  • server-params: 表示作为发送到服务器的附加参数,如果ajax请求的类型为get,则会将附件参数作为params发送到服务器,其它类型的请求会将数据作为data发送到服务器.

发送到服务器的参数

这几个查询参数:包括{draw,page,size},将始终通过params的方式发送到服务器.

  • draw: 请求标记,服务器应该原样返回该数据
  • page: 从0开始的分页号
  • size: 每页长度
  • server-params属性,在get请求时,会作为params发送到服务器,其它请求时会作为data发送到服务器
    一个示例地址:get http://localhost/users?draw=0&page=0&size=10&keywords=good

服务器响应

为了正确展示数据,服务器必须按照一定的规则响应数据,组件需要如下响应才能正常工作

{
  "draw"
:
  Number, // 服务器应当原样返回该标记,主要是做请求响应适配
    "success"
:
  Boolean, // 服务器是否正确的响应了查询
    "recordsTotal"
:
  Number, // 数据总量
    "error"
:
  String, // 错误信息,当success===true时,通常需要提供该信息,该信息会展示在表格中
    "data"
:
  Array //如果success===false,不需要该信息
}

以下是一个响应示例

{
  "draw": 1,
  "success": true,
  "recordsTotal": 100,
  "data": [
    {
      "id": 1,
      "name": "张三"
    },
    {
      "id": 2,
      "name": "李四"
    },
    {
      "id": 3,
      "name": "王五"
    }
  ]
}

数据过滤

当server-params改变时,会向服务器发送查询请求,并重新获取数据

本地数据

我们可以通过直接设置data属性来设置显示本地数据

ele-data-tables属性说明

|属性名称|属性类型|属性描述| | :- | :- | :- | |ajax|String/Object|后台服务器地址/完整的ajax对象| |server-params|Object|发送到服务器的查询参数| |data|Array|静态数组|

ele-data-tables实例方法

可供外部调用的实例方法有

  • $refs.table.reloadData() 根据当前的信息重新载入数据
  • 其它的实例方法不建议使用

更新历史

  • 2.1.0 更新一些数据逻辑,使用vue-datalist V1.1.2作为数据底层组件,修改一些bug
  • 2.0.15 添加一些element原始表格的方法到表格中
  • 2.0.14 对外$emit一些底层事件
  • 2.0.12 修改一个底层数据加载模块的错误
  • 2.0.10 增加加载loading框
  • 2.0.9 添加默认分页组件对齐方式的属性
  • 2.0.7 修改分页条默认的内容类型,并且添加layout属性,可以通过layout配置分页条的内容
  • 2.0.6 修改项目的发布方式为umd,解决不能正确被vue-cli识别的bug
  • 2.0.5 增加字符串为默认排序设置的功能
  • 2.0.4 修改表格排序不正常的bug
  • 2.0.3 修复一个不能排序的bug
  • 2.0.2 修复一个row-click事件异常的bug
  • 2.0.x 一个全新的版本。
  • 1.0.8 添加一个name=table插槽,使得前端可以自定义表格内容
  • 1.0.7 重新修改插件模式和typescript定义文件
  • 1.0.4 重新构建打包配置,使用webpack打包成commonjs2的模块发布到npm
  • 1.0.3 增加类型声明文件
  • 1.0.2 加入防抖属性debounceTime,实现输入防抖
  • 1.0.0 去掉0.X版本老旧数据格式的依赖,
  • 0.3.3
    修正了一个在新版本的响应体下,返回>1的页面没有数据时,不自动刷新到上一页的bug
  • 0.3.1
    修正了表格多次请求之后,数据不匹配的bug
  • 0.3.0 更新了数据请求的方式,现在不会再强制要求后台处理draw参数,支持处理后台返回的Spring Data 的Page<?>类型数据。
  • 0.2.6
    当使用ajax加载数据时,如果指定页面没有数据,而数据总条目不位0时,则会自动重新加载上一页的数据,递归引用,直至加载到数据
  • 0.2.5
    修正了自定义服务器参数时,sort不能正确传输到后台的bug
  • 0.2.4
    修正了一个多次点击表头排序,会导致传入后台的参数丢失的问题
  • 0.1.7 功能,增加表头排序
  • 0.1.3 修正:当请求参数改变时,会回第一页了
  • 0.1.1 修正了一个引入element相关组件,在某些工程中编译报错的bug
  • 0.1.0 修正了一个切换每页长度后,表格不能正常刷新的bug,基本趋于稳定的一个版本了
  • 0.0.6 修改依赖包的引入方式,修改IE兼容性问题
  • 0.0.5
    修改了显示加载动画的问题, 增加了一个选项,用于控制是否显示加载对话框
  • 0.0.4 修改说明文件,修改说明示例, 修改发布脚本 增加事件响应 增加分页项目配置
  • 0.0.1-0.0.3 初始版本