效果:

引用CSS、JS:

Vue、element-ui、Axios

treeTable: https://github.com/ProsperLee/element-tree-grid

模拟根据父id请求子数据的JSON:

 // data.json
[{
"id": "a1",
"name": "一级-1",
"parentId": "000"
}] // node.json
[{
"id": "123",
"name": "二级-1-1",
"parentId": "a1"
}, {
"id": "123",
"name": "二级-1-2",
"parentId": "a1"
}, {
"id": "123",
"name": "二级-1-3",
"parentId": "a1"
}]

HTML部分:

     <div id="app">
<el-table :data="data">
<el-table-column type="index" label="#"></el-table-column>
<el-table-tree-column :remote="remote" prop="name" parent-key="parentId" label="NAME"></el-table-tree-column>
<el-table-column prop="name" label="NAME"></el-table-column>
</el-table>
</div>

JS部分:// 注意属性表格要显示展开箭头需要加入 child_num 属性

         new Vue({
el: "#app",
data: {
data: []
},
methods: {
remote(row, callback) {
var that = this;
axios.get("./json/node.json", null)
.then(function (response) {
row.child_num = response.data.length; // 父级有几个孩子
var count = row.depth+1;
response.data.forEach((element)=>{ // 循环孩子
// element.child_num = 1;
element.depth = count;
})
var len = response.data.length;
for(var i = 0; i < len; i++){
if(response.data[i].parentId == row.id){
response.data.unshift(0,0); // 数组前面添加元素
Array.prototype.splice.apply(that.data, response.data); // 指定位置拼接两个数组
break;
}
}
callback(that.data.filter(f => f['parentId'] == row['id']))
})
.catch(function (error) {
console.log(error);
})
},
// 获取根节点
getParentIdData(){
var that = this;
axios.get("./json/data.json", null)
.then(function (response) {
response.data.forEach(element => {
element.child_num = 1;
element.depth = 0;
});
that.data = response.data;
})
.catch(function (error) {
console.log(error);
})
}
},
created() {
this.getParentIdData();
},
})

基于element-tree-table树型表格点击节点请求数据展开树型表格的更多相关文章

  1. element ui table组件自定义合计栏,后台给的数据

    合计的数据是后台传的,所以用table组件自定义一行用来合计 <el-table border fit v-loading.body="listLoading" elemen ...

  2. 【zTree】zTree展开树节点

    今天在做zTree树的时候想着将第一级tree展开,于是利用下面方法: /** * 展开树节点的第一层 */ function openFirstTreenode(){ // 获取树对象 var tr ...

  3. 手把手教学~基于element封装tree树状下拉框

    在日常项目开发中,树状下拉框的需求还是比较常见的,但是element并没有这种组件以供使用.在这里,小编就基于element如何封装一个树状下拉框做个详细的介绍. 通过这篇文章,你可以了解学习到一个树 ...

  4. 封装Vue Element的table表格组件

    上周分享了几篇关于React组件封装方面的博文,这周就来分享几篇关于Vue组件封装方面的博文,也好让大家能更好地了解React和Vue在组件封装方面的区别. 在封装Vue组件时,我依旧会交叉使用函数式 ...

  5. jquery的tree table(树表)

    因项目需要,需要在表格中加入tree,使用了jquery的tree table,经美化,完美兼容各种框架的table: 请移步下载tree table 的js文件及css文件等,http://ludo ...

  6. element ui table(表格)点击一行展开

    element ui是一个非常不错的vue的UI框架,element对table进行了封装,简化了vue对表格的渲染. element ui表格中有一个功能是展开行,在2.0版本官网例子中,只可以点击 ...

  7. vue,基于element的tree组件封装

    封装组件代码 // 组件:树 /* 参数说明-属性: 1.treeData:展示数据(array) 2.treeEmptyText:内容为空的时候展示的文本(String) 3.treeNodeKey ...

  8. element el-table表格的vue组件二次封装(附表格高度自适应)

    基于vue的el-table表格二次封装组件方法 前言 在公司实习使用vue+element-ui框架进行前端开发,使用表格el-table较为多,有些业务逻辑比较相似,有些地方使用的重复性高,如果多 ...

  9. python 解析xml 文件: Element Tree 方式

    环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...

随机推荐

  1. Winsock编程基础1

    1.加载和释放Winsoke库 //所有Winsock函数都是从WS2_32.DLL导出,包含相应库文件#include <winsock2.h>#pragma comment(lib, ...

  2. fremarker导出word list

    import java.io.File; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java ...

  3. 企业IT管理员IE11升级指南【9】—— IE10与IE11的功能对比

    企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...

  4. Python 安装和 Pycharm 环境配置

    一.Python 简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它 ...

  5. CSS3 阴影模拟灯照效果

    效果如下: 代码如下: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset= ...

  6. [Swift]LeetCode547. 朋友圈 | Friend Circles

    There are N students in a class. Some of them are friends, while some are not. Their friendship is t ...

  7. [Swift]LeetCode738. 单调递增的数字 | Monotone Increasing Digits

    Given a non-negative integer N, find the largest number that is less than or equal to Nwith monotone ...

  8. PHP算法之冒泡排序

    //冒泡排序 //①思路,先比较出第一次,找一个最大的值,排到最后; //②重复count遍之后,就能得到排序; //③优化,每一次循环之后不需要再次全部重复; $array = [11,5,4,58 ...

  9. 『宝藏 状态压缩DP NOIP2017』

    宝藏(NOIP2017) Description 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的m 条道路和它们的长度. 小明决 ...

  10. 补习系列(9)-springboot 定时器,你用对了吗

    目录 简介 一.应用启动任务 二.JDK 自带调度线程池 三.@Scheduled 定制 @Scheduled 线程池 四.@Async 定制 @Async 线程池 小结 简介 大多数的应用程序都离不 ...