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 18 Vue.js
深入了解Vue3模板编译原理
Nov 19 Vue.js
解决vue页面刷新,数据丢失的问题
Nov 24 Vue.js
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
vue 使用rules对表单字段进行校验的步骤
Dec 25 Vue.js
vue+element table表格实现动态列筛选的示例代码
Jan 14 Vue.js
vue element el-transfer增加拖拽功能
Jan 15 Vue.js
vue form表单post请求结合Servlet实现文件上传功能
Jan 22 Vue.js
vue3.0 项目搭建和使用流程
Mar 04 Vue.js
vue实现同时设置多个倒计时
May 20 Vue.js
vue2实现provide inject传递响应式
May 21 Vue.js
分享一个vue实现的记事本功能案例
Apr 11 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文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
CodeIgniter中使用Smarty3基本配置
2015/06/29 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
javascript中length属性的探索
2011/07/31 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
2014/05/21 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
jQuery中 attr() 方法使用小结
2015/05/03 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
2015/07/27 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
JQuery 传送中文乱码问题的简单解决办法
2016/05/24 Javascript
js仿腾讯QQ的web登陆界面
2016/08/19 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
2016/12/24 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
2017/06/28 Javascript
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
Python实现数据库并行读取和写入实例
2017/06/09 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
Python3查找列表中重复元素的个数的3种方法详解
2020/02/13 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
详解用Python进行时间序列预测的7种方法
2020/03/13 Python
Python pymsql模块的使用
2020/09/07 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
物流管理专业职业生涯规划书
2014/01/06 职场文书
《小蝌蚪找妈妈》教学反思
2014/02/21 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
vue css 相对路径导入问题级踩坑记录
2022/06/05 Vue.js