vue实现树状表格效果


Posted in Vue.js onDecember 29, 2020

本文实例为大家分享了vue实现树状表格的具体代码,供大家参考,具体内容如下

1. 初始化配置

安装模块:

npm i vue-table-with-tree-grid -S

main.js 文件

import ZkTable from 'vue-table-with-tree-grid'
Vue.component(ZkTable.name, ZkTable);

2. 使用

<template lang="html">
 <div id="example">
 <zk-table
  ref="table"
  index-text="#"
  :data="data"
  :columns="columns"
  :stripe="props.stripe"
  :border="props.border"
  :show-header="props.showHeader"
  :show-summary="props.showSummary"
  :show-row-hover="props.showRowHover"
  :show-index="props.showIndex"
  :tree-type="props.treeType"
  :is-fold="props.isFold"
  :expand-type="props.expandType"
  :selection-type="props.selectionType">

  <template slot="likes" scope="scope">
  {{ scope.row.likes.join(',') }}
  </template>
 </zk-table>
 </div>
</template>

<script>

 export default {
 name: 'example',

 data() {
  return {
  props: {
   stripe: false, // 是否显示间隔斑马纹
   border: true, // 是否显示纵向边框
   showHeader: true, // 是否显示表头
   showSummary: false, // 是否显示表尾合计行
   showRowHover: true, // 鼠标悬停时,是否高亮当前行
   showIndex: true, // 是否显示数据索引
   treeType: true, // 是否为树形表格
   isFold: true, // 树形表格中父级是否默认折叠
   expandType: false, // 是否为展开行类型表格(为 True 时,需要添加名称为 '$expand' 的作用域插槽, 它可以获取到 row, rowIndex)
   selectionType: false, // 是否为多选类型表格
  },
  data: [
   {
   name: 'Jack',
   sex: 'male',
   likes: ['football', 'basketball'],
   score: 10,
   children: [
    {
    name: 'Ashley',
    sex: 'female',
    likes: ['football', 'basketball'],
    score: 20,
    children: [
     {
     name: 'Ashley',
     sex: 'female',
     likes: ['football', 'basketball'],
     score: 20,
     },
     {
     name: 'Taki',
     sex: 'male',
     likes: ['football', 'basketball'],
     score: 10,
     children: [
      {
      name: 'Ashley',
      sex: 'female',
      likes: ['football', 'basketball'],
      score: 20,
      },
      {
      name: 'Taki',
      sex: 'male',
      likes: ['football', 'basketball'],
      score: 10,
      children: [
       {
       name: 'Ashley',
       sex: 'female',
       likes: ['football', 'basketball'],
       score: 20,
       },
       {
       name: 'Taki',
       sex: 'male',
       likes: ['football', 'basketball'],
       score: 10,
       },
      ],
      },
     ],
     },
    ],
    },
    {
    name: 'Taki',
    sex: 'male',
    likes: ['football', 'basketball'],
    score: 10,
    },
   ],
   },
   {
   name: 'Tom',
   sex: 'male',
   likes: ['football', 'basketball'],
   score: 20,
   children: [
    {
    name: 'Ashley',
    sex: 'female',
    likes: ['football', 'basketball'],
    score: 20,
    children: [
     {
     name: 'Ashley',
     sex: 'female',
     likes: ['football', 'basketball'],
     score: 20,
     },
     {
     name: 'Taki',
     sex: 'male',
     likes: ['football', 'basketball'],
     score: 10,
     },
    ],
    },
    {
    name: 'Taki',
    sex: 'male',
    likes: ['football', 'basketball'],
    score: 10,
    children: [
     {
     name: 'Ashley',
     sex: 'female',
     likes: ['football', 'basketball'],
     score: 20,
     },
     {
     name: 'Taki',
     sex: 'male',
     likes: ['football', 'basketball'],
     score: 10,
     },
    ],
    },
   ],
   },
   {
   name: 'Tom',
   sex: 'male',
   likes: ['football', 'basketball'],
   score: 20,
   },
   {
   name: 'Tom',
   sex: 'male',
   likes: ['football', 'basketball'],
   score: 20,
   children: [
    {
    name: 'Ashley',
    sex: 'female',
    likes: ['football', 'basketball'],
    score: 20,
    },
    {
    name: 'Taki',
    sex: 'male',
    likes: ['football', 'basketball'],
    score: 10,
    },
   ],
   },
  ],
  columns: [
   {
   label: 'name', // 列标题名称
   prop: 'name', // 对应列内容的属性名
   width: '400px', // 列宽度
   },
   {
   label: 'sex',
   prop: 'sex',
   minWidth: '50px',
   },
   {
   label: 'score',
   prop: 'score',
   },
   {
   label: 'likes',
   prop: 'likes',
   minWidth: '200px',
   type: 'template',
   template: 'likes', // 列类型为 'template'(自定义列模板) 时,对应的作用域插槽(它可以获取到 row, rowIndex, column, columnIndex)名称
   },
  ],
  };
 },
 };
</script>

<style scoped lang="less">
 * {
 margin: 0;
 padding: 0;
 }
 .switch-list {
 margin: 20px 0;
 list-style: none;
 overflow: hidden;
 }
 .switch-item {
 margin: 20px;
 float: left;
 }
</style>

3. 效果

vue实现树状表格效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Vue.js 相关文章推荐
vue动态合并单元格并添加小计合计功能示例
Nov 26 Vue.js
在vue中动态修改css其中一个属性值操作
Dec 07 Vue.js
Vue与React的区别和优势对比
Dec 18 Vue.js
vue实现购物车的小练习
Dec 21 Vue.js
vue 页面跳转的实现方式
Jan 12 Vue.js
Vue中的nextTick作用和几个简单的使用场景
Jan 25 Vue.js
vue-video-player 断点续播的实现
Feb 01 Vue.js
Vue如何实现变量表达式选择器
Feb 18 Vue.js
vue引入Excel表格插件的方法
Apr 28 Vue.js
解决vue $http的get和post请求跨域问题
Jun 07 Vue.js
vue实现锚点定位功能
Jun 29 Vue.js
vue实现图书管理系统
Dec 29 #Vue.js
Vue实现随机验证码功能
Dec 29 #Vue.js
vue3+typeScript穿梭框的实现示例
Dec 29 #Vue.js
Vue.extend 登录注册模态框的实现
Dec 29 #Vue.js
vue实现简易的双向数据绑定
Dec 29 #Vue.js
vue中配置scss全局变量的步骤
Dec 28 #Vue.js
为什么推荐使用JSX开发Vue3
Dec 28 #Vue.js
You might like
PHP伪造referer实例代码
2008/09/20 PHP
PHP 类型转换函数intval
2009/06/20 PHP
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
php中session使用示例
2014/03/29 PHP
php实现的双向队列类实例
2014/09/24 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
2015/09/22 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
PHPExcel 修改已存在Excel的方法
2018/05/03 PHP
JQuery中关于jquery.js与jquery.min.js的比较探讨
2013/05/15 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
AngularJS基础知识
2014/12/21 Javascript
js实现简单鼠标跟随效果的方法
2015/04/10 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
Javascript中的Prototype到底是什么
2016/02/16 Javascript
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
2016/04/05 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
vue元素实现动画过渡效果
2017/07/01 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
vue基础之v-bind属性、class和style用法分析
2019/03/11 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
TensorFlow2.0矩阵与向量的加减乘实例
2020/02/07 Python
python中pivot()函数基础知识点
2021/01/03 Python
Too Faced官网:美国知名彩妆品牌
2017/03/07 全球购物
密封类可以有虚函数吗
2014/08/11 面试题
英文简历中的自我评价
2013/10/06 职场文书
优秀村官事迹材料
2014/01/10 职场文书
八一演出活动方案
2014/02/03 职场文书