vue-easytable demo

介绍

vue-easytable是一个基于vue的可编辑表格开源组件,功能强大,文档完善。
github地址:https://github.com/huangshuwei/vue-easytable
文档地址:http://doc.huangsw.com/vue-easytable/app.html#/intro

使用指导

  1. 创建vue工程:vue init webpack vue-easytable-demo
  2. 下载vue-easytable
    npm install vue-easytable --save-dev
  3. 在main.js中全局引入
import 'vue-easytable/libs/themes-base/index.css'
import {VTable, VPagination} from 'vue-easytable'

Vue.component(VTable.name, VTable)
Vue.component(VPagination.name, VPagination)
  1. 创建测试数据
    先在src下创建mock文件夹,在下面创建文件tableData.js
export default [
  { 'id': '1', 'name': '小红', 'age': '12', 'height': '112', 'sex': '女', 'score': '100' },
  { 'id': '2', 'name': '小丽', 'age': '12', 'height': '116', 'sex': '女', 'score': '99' },
  { 'id': '3', 'name': '小芳', 'age': '12', 'height': '113', 'sex': '女', 'score': '98' },
  { 'id': '4', 'name': '小华', 'age': '12', 'height': '130', 'sex': '男', 'score': '96' },
  { 'id': '5', 'name': '小聪', 'age': '12', 'height': '120', 'sex': '男', 'score': '93' },
  { 'id': '6', 'name': '小胖', 'age': '12', 'height': '118', 'sex': '男', 'score': '86' },
  { 'id': '7', 'name': '小明', 'age': '12', 'height': '121', 'sex': '男', 'score': '59' },
  { 'id': '8', 'name': '小飞', 'age': '12', 'height': '125', 'sex': '男', 'score': '92' },
  { 'id': '9', 'name': '小环', 'age': '12', 'height': '120', 'sex': '女', 'score': '93' },
  { 'id': '10', 'name': '小义', 'age': '12', 'height': '116', 'sex': '男', 'score': '79' },

  { 'id': '11', 'name': '小白', 'age': '12', 'height': '116', 'sex': '男', 'score': '81' },
  { 'id': '12', 'name': '小黑', 'age': '12', 'height': '118', 'sex': '男', 'score': '88' },
  { 'id': '13', 'name': '小海', 'age': '12', 'height': '125', 'sex': '男', 'score': '83' },
  { 'id': '14', 'name': '小金', 'age': '12', 'height': '129', 'sex': '男', 'score': '82' },
  { 'id': '15', 'name': '小路', 'age': '12', 'height': '127', 'sex': '女', 'score': '72' },
  { 'id': '16', 'name': '小龙', 'age': '12', 'height': '125', 'sex': '男', 'score': '96' },
  { 'id': '17', 'name': '小蓝', 'age': '12', 'height': '118', 'sex': '女', 'score': '93' },
  { 'id': '18', 'name': '小兰', 'age': '12', 'height': '124', 'sex': '女', 'score': '71' },
  { 'id': '19', 'name': '小高', 'age': '12', 'height': '116', 'sex': '女', 'score': '79' },
  { 'id': '20', 'name': '小国', 'age': '12', 'height': '130', 'sex': '男', 'score': '68' }
]
  1. 创建展示文件TablePage.vue(放置在conponents目录下)
<template>
  <div class="tablePage">
    <h1>表格+分页</h1>
    <!-- 表格-->
    <v-table
      :columns="tableConfig.columns"
      :table-data="tableConfig.tableData"
      :paging-index="(pageIndex-1)*pageSize"
    ></v-table>
    <!-- 分页-->
    <v-pagination
      @page-change="pageChange"
      @page-size-change="pageSizeChange"
      :total="total"
      :page-size="pageSize"
      :layout="['total', 'prev', 'pager', 'next', 'sizer', 'jumper']"
    ></v-pagination>
  </div>
</template>
<script>
import tableDate from '../mock/tableData.js'
export default {
  data () {
    return {
      pageIndex: 1,
      pageSize: 10,
      total: '',
      tableConfig: {
        tableData: [],
        columns: [
          {
            field: 'id',
            title: '编号',
            width: 50,
            columnAlign: 'center'
          },
          {
            field: 'name',
            title: '姓名',
            width: 120,
            columnAlign: 'center'
          },
          {
            field: 'age',
            title: '年龄',
            width: 50,
            columnAlign: 'center'
          },

          {
            field: 'height',
            title: '身高',
            width: 100,
            columnAlign: 'left'
          },
          {
            field: 'sex',
            title: '性别',
            width: 50,
            columnAlign: 'center'
          },
          {
            field: 'score',
            title: '成绩',
            width: 80,
            columnAlign: 'center'
          }
        ]
      }
    }
  },
  created () {
    this.getTableData()
  },
  methods: {
    getTableData () {
      this.tableConfig.tableData = tableDate.slice(
        (this.pageIndex - 1) * this.pageSize,
        this.pageIndex * this.pageSize
      )
      this.total = tableDate.length
    },
    pageChange (pageIndex) {
      this.pageIndex = pageIndex
      this.getTableData()
      console.log(pageIndex)
    },
    pageSizeChange (pageSize) {
      this.pageIndex = 1
      this.pageSize = pageSize
      this.getTableData()
    }
  }
}
</script>

  1. 运行:npm run dev
  2. 效果图(界面访问http://localhost:8080/#/):
  3. 打包(用于发布):npm run build
    生成文件在根目录下的dist目录下。
  4. demo源代码
    https://gitee.com/cxyzy1/vue-easytable

附录

  1. vue-easytable源代码:https://github.com/huangshuwei/vue-easytable
  2. vue进阶之vue-easytable实现前端的表格+分页 https://blog.csdn.net/youyanh/article/details/81501971
  3. 使用严格模式eslint时,报错Missing space before function parentheses的问题 http://08643.cn/p/2f5cded8a2d3
最后编辑于
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352

推荐阅读更多精彩内容

  • 本文基于工作项目开发,做的整理笔记因工作需要,项目框架由最初的Java/jsp模式,逐渐转移成node/expre...
    SeasonDe阅读 7,442评论 3 35
  • ## 框架和库的区别?> 框架(framework):一套完整的软件设计架构和**解决方案**。> > 库(lib...
    Rui_bdad阅读 2,901评论 1 4
  • Vue是近两年来比较火的一个前端框架(渐进式框架吧),与reactjs和angularjs三国鼎立,我不是职业前端...
    玄木阅读 272,755评论 70 259
  • 从小老师就教育我们要学雷锋,做好人。 于是生活中就有了那么一群人,舔着脸满世界要求别人做雷锋。不管熟不熟,不管别人...
    盛慧阅读 1,155评论 1 6
  • 亲爱的: 我也不知,何时会再遇见你。 清晨, 你捎信来, 说寒风穿梭在窗檐, 小河里的清流还没醒, 我坐在公交车上...
    PuppyMe阅读 214评论 0 0