问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

jquery的树形控件ztree怎么用怎么导入

发布网友 发布时间:2022-04-24 19:02

我来回答

2个回答

懂视网 时间:2022-05-14 21:45

本篇文章给大家分享的是关于vue如何利用树形控件z-tree动态添加数据,内容很不错,有需要的朋友可以参考一下,希望可以帮助到大家。

环境:vue 2.9.3; webpack;

插件:z-tree,jquery(cnpm install xxxx)

问题;由于数据量比较多,需要动态加载数据,默认第一次请求的数据是最高一级,然后子集都是空。

目标:点击第一级查询当前父节点的子集,并展开父节点下面的子节点。

实现方式:el-tree(element-ui里面的树形控件)、z-tree

el-tree

使用这个方法可以获取当前点击节点的数据row,根据row的属性判断当前节点是不是父节点,如果是父节点就请求接口,在当前节点push子节点的数据,但是push的时候还是有点蛋疼,直接插入某个位置并不好操作,虽然最后还是实现了(添加的索引位置),但是并不适用,导致第一次点击父节点并不会直接展开,因为第一次是请求数据,所以不会展开,第二次点击就会展开,因为数据已经push进去了,但是很显然不行,很不人性化。

我不知道是我处理的方式不对还是咋的,鉴于时间,我也没有细致看el-tree的动态加载数据,所以跳过这里。

z-tree

引入z-tree和样式

import 'ztree'import 'ztree/css/metroStyle/metroStyle.css'import $ from 'jquery'

配置信息

shuyusetting:{
  view: {
  showLine: false
  },
  data: {
  simpleData: {
  enable: true
  }
  },
  callback: {
  onClick: this.shuyuOnClick, //点击函数
  onExpand: this.shuyuOnExpand, // 展开内容  }
 },

引用z-tree

 <p style="cursor: pointer;min-height: 200px; max-height:300px; overflow-y: auto" >
 <ul id="shuyuSelect" class="ztree" style=" width: 230px; height: 30%;overflow:auto;cursor: pointer; " ></ul> // 注意id,下面需要用到id
 </p>

初始化控件,显示最顶级数据      var params=new Object();

this.$http.post(this.ip + '/xhhms/rest/interRemoteReportController/v1/getKnowledge', params, {
headers: {
'X-AUTH-TOKEN': this.token
}
}).then((res) => {
var data = JSON.parse(res.data);
//console.log(data);
if (!!data&&data.status=="1") {
$.fn.zTree.init($("#shuyuSelect"), this.shuyusetting, data.data);  // 初始化数据 id需要和上面一样 第二个是配置信息 第三个是顶层的数据

// console.log(this.knowledgetreedata);
} else {
return false;
}
}, (err) => {
console.log(err);
});

接下来是两个对应配置的函数

 shuyuOnClick(event, treeId, treeNode){
 if(!treeNode.isParent){ // 判断当前节点不是父级节点 //根据自己的数据来 
  var acknowledgeid = treeNode.id;
  var params= {id:acknowledgeid};
  this.$http.post(this.ip+'/xhhms/rest/interRemoteReportController/v1/getKnowledgeByid', params, {
  headers: {'X-AUTH-TOKEN': localStorage.getItem('token') }
  }).then((res) => {
  var data = JSON.parse(res.data);
  if (!!data&&data.status=="1") {
  //console.log(data.data);
  document.getElementById('edit-iframe').contentWindow.postMessage(JSON.stringify({"DescriptionToReport":data.data.description}),"*");
  document.getElementById('edit-iframe').contentWindow.postMessage(JSON.stringify({"ConclusionToReport":data.data.conclusion}) ,"*");
  this.description = data.data.description;
  this.conclusion = data.data.conclusion;
  } else {
  return false;
  }
  }, (err) => {
  console.log(err);
  });
 }else{
  // 是父级 请求子级增加内容
  this.shuyuOnExpand(event, treeId, treeNode);
 }
 },
 shuyuOnExpand(event, treeId, treeNode){
 console.log("shuyuOnExpand");
  var treeNodeId = treeNode.id;
  if(treeNodeId == 0){
  return;
  }else{
  var params={parentid:treeNodeId};
  this.$http.post(this.ip + '/xhhms/rest/interRemoteReportController/v1/getKnowledge', params, {
  headers: {'X-AUTH-TOKEN': localStorage.getItem('token') }
  }).then((res) => {
  var data = JSON.parse(res.data);
  console.log("data");
  if (!!data&&data.status=="1") {
  var tree = $.fn.zTree.getZTreeObj("shuyuSelect"); //重新渲染
  if (!treeNode.zAsync){
   tree.addNodes(treeNode, data.data);
   treeNode.zAsync = true;
  } else{
   tree.reAsyncChildNodes(treeNode, "refresh"); //刷新内容
  }
  } else {
  return false;
  }
  }, (err) => {
  console.log(err);
  });
  }

 },

这是两个核心的函数。

相关推荐:

关于Node中事件循环的解析

Vue中class与style绑定以及条件与列表渲染的分析

热心网友 时间:2022-05-14 18:53

zTree是最流行的一款jquery树形控件。 zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 Tree 插件 兼容 IE、FireFox、Chrome 等浏览器 在一个页面内可同时生成多个 Tree 实例 支持 JSON 数据 支持一次性静态生成 和 Ajax 异步...
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果什么软件看小说免费推荐一个苹果可以用的免费看小说app 苹果手机有没有一个全免费的书多的,能听的小说软件,下了好多,离线下载... 苹果手机小说免费软件苹果系统有什么免费看小说的软件 有哪些好用的听书软件? 苹果上听书软件苹果手机听书软件哪个好用而且免费 学UI设计下来要几个月 又要花费多少money?3Q 小米手机相册中已删除的图片恢复教程教你轻松找回误删的珍贵照片 小米照片回收站删除后如何找回快速恢复误删照片的方法与技巧_百度知 ... 小米手机误删照片找程教你简单几步找回误删照片 win10用摄像头 礼物的英文单词怎么写 如何使用jquery.treeview.js控件,显示树形菜单 jquery树形表格treetable插件怎么用 礼物用英语怎么读? 生日礼物怎么准备? 礼物用英语怎么写 礼物用英语怎么说? 约克空调到底怎么样? 三菱重工中央空调与约克中央空调那个性价比高 怎么才能把自已的手机照片变成小于2m? 如何把rv格式的文件转换成可以用视频合并软件合并的文件格式 rvmd文件受保护或被加密?!! delphi 制作报表时RvProject1属性projectfile要用到一个rav格式的文件 从哪里来, 有吧rv格式直接转化为mp4格式的转换器吗 rv文件如何转换mp4格式 如何播放RMS格式的媒体文件 请问打开压缩文件和解压是不是一样的啊? 请教前辈RA,rv,rm,rmv格式文件如何转化为MPG格式的视频,用那种软件呢?谢谢! 不知道视频文件格式 如何使用WinRAR??? “礼物怎么造句 我有一个树形选择控件,Jquery的,它默认是收缩的,怎么将他默认是展开的... 买礼物应该怎么选择? 通过jquery的ready方法 treeObj和zTree分别是什么? 礼物怎么选 关于JQUERY做树形菜单,可以动态添加子节点 “礼物”这个词怎么造句? 使用jQuery json生成动态的无限分级树,每个节点不一样的图标 jquery 有没有类似于select tree的插件 礼物怎么造句 求jquery版的多选树形下拉框的插件(Multiple ComboTree)? 求jquery 树形插件 要可多选拖动的。 礼物 怎么做? jquery树怎么做 怎么包礼物? JSP中如何制作树形选择框 一个jQuery实现的树形菜单,每点击一个节点都显示那个节点的所有子节点... zTree -- jQuery 树插件的问题,了解的朋友求指点 jquery树插件ztree怎么给节点增加一个背景色。 为什么我引入了jquery ui的插件,树形菜单还是不显示,页面也没报错_百度...