zTree 修改显示内容以及节点增删改操作

前言

笔者代码中使用了vue和jquery,以下代码片段中的this有时指向的是vue实例对象

修改显示内容

zTrees 初始化代码如下,第二个 param 是配置选项

$.fn.zTree.init($("#treeDemo"), setting, this.zNodes);
在 setting 中 view 对象上加上 addDiyDom 方法
var setting={
        view: {
            addDiyDom: this.addDiyDom
              },
        }

在 addDiyDom 方法中可以对内容进行修改

var setting={
        addDiyDom :function(treeId, treeNode) {
            var spaceWidth = 5;
            var switchObj = $("#" + treeNode.tId + "_switch");
            var spaceStr = "html代码块,构建出想要的样式,图片或文字";
            switchObj.before(spaceStr);
        },

节点增删改操作

以更改节点内容为例

为了取到当前操作节点的数据,需要在 setting 中 callback 对象上加上触发回调的方法,例如onRightClick

 callback: { 
    onRightClick: this.OnRightClick,
                }

在 onRightClick 方法中调用 treeObj 对象的 selectNode 方法(用来确定操作的节点对象)

OnRightClick:function OnRightClick(event, treeId, treeNode) {
        if (treeNode && !treeNode.noR) {
                    this.treeObj.selectNode(treeNode);
                }

            }

确定了要操作的节点对象,就可以用 getSelectedNodes()[0] 取到,进而修改节点的属性,最后别忘了 update

alertTreeNode:function (url) {
                   var oldNode =  this.treeObj.getSelectedNodes()[0];
                    oldNode.name = "图片";
                    oldNode.imgurl = url;
            this.treeObj.updateNode(oldNode);        
                }