ztree的一些操作,不废话,上代码

ztree的操作简单使用,比bootstrap中的树更简单明了,故分享


1、index.ftl菜单界面:

<div id="ordinary_content">
                <div>
                    <li>
                        <a id="content1" style="display:none" title="目录一">
                           <i class="glyph-icon icon-linecons-tv"></i>
                           <span>目录一</span>
                        </a>
                        <ul id="content1_menu">
                           <li id="hellotestdo" style="display:none"><a href="/ps_admin/hellotest.do" title="菜单11"><span>菜单11</span></a></li>
                           <li id="hellotest2do" style="display:none"><a href="/ps_admin/hellotest2.do" title="菜单12"><span>菜单12</span></a></li>
                        </ul>
                    </li>
                </div>
                <div>
                    <li>
                        <a id="content2" style="display:none" title="目录二">
                           <i class="glyph-icon icon-linecons-tv"></i>
                           <span>目录二</span>
                        </a>
                        <ul id="content2_menu">
                           <li id="hellotest3do" style="display:none"><a href="/ps_admin/hellotest3.do" title="菜单21"><span>菜单21</span></a></li>
                           <li id="hellotest4do" style="display:none"><a href="/ps_admin/hellotest4.do" title="菜单22"><span>菜单22</span></a></li>
                           <li id="hellotest5do" style="display:none"><a href="/ps_admin/hellotest5.do" title="菜单23"><span>菜单23</span></a></li>
                        </ul>
                    </li>
                </div>
            </div>


2、操作按钮:加载树,查看树,更改树,删除树按钮:

<div id="tableList">
    <button style="width:150px" class="btn btn-success" οnclick="urlAdd()">添加角色</button>


    <table class="table table-bordered table-striped table-hover" id="rgtable1" style="color:#444444">
        <thead>
        <tr>
            <th>角色</th>
            <th>操作</th>
        </tr>
        </thead>
        <tbody>
        <#list urlBeanList as urlBean>
        <tr class="odd">
            <td><#if urlBean.urlType?exists>${urlBean.urlType}<#else>无</#if></td>
            <td>
                <button class="btn btn-success"
                        οnclick="urlLookUp('${urlBean.urlType}')"><span><span>查看</span></span>
                </button>
                <button class="btn btn-success"
                        οnclick="urlUpdate('${urlBean.urlType}')"><span><span>修改</span></span>
                </button>
                <button class="btn btn-danger" οnclick="urlDelete('${urlBean.urlType}')">
                    <span><span>删除</span></span></button>
            </td>
        </tr>
        </#list>
        </tbody>
    </table>


    <div class="pageNu" align="right">
        总共 ${pages?c} 页|第 ${currentPage?c} 页
        <a style='cursor:pointer;' οnclick=lastPage()>上一页</a>
        <a style='cursor:pointer;' οnclick=nextPage()>下一页</a>
        转至<input type="text" name="pageNum" id="pageNum" value="1" size="5"/>
        <button class="btn btn-success" οnclick="goPageByNum()"><span><span>Go</span></span></button>


        <input type="text" id="currentPage" style="display:none;" value="${currentPage?c}"/>
        <input type="text" id="pages" style="display:none;" value="${pages?c}"/>
    </div>


</div>


<!-- 新建/修改界面 -->
<div id="addDialog" style="display:none;">
    <table style="text-align: center;margin-top:20px;">
        <tr>
            <th>&nbsp;&nbsp;角色名称:</th>
            <td><input class="form-control" name="urlType" id="urlType" placeholder="例如:角色一"
                       style="width:250px"/></td>
        </tr>
        <tr>
            <th>&nbsp;&nbsp;角色权限关联:</th>
            <td>
                <ul id="treeDemo" class="ztree"></ul>
            </td>
        </tr>
        
    </table>
</div>


3、加载树:

function initZNodes(){
var zNodes =[];//树结构数据
var len1 = $("#ordinary_content").children("div").length;
for(var j=1;j<=len1;j++)
{
var map = {};
map['id']=""+j;
map['pId']="0";
map['name']=$("#content"+j+" span").text();
zNodes.push(map);

var len = $("#content"+j+"_menu").children("li").length;
for(var i=0;i<len;i++){
var mapMenu = {};
mapMenu['id']=$("#content"+j+"_menu a").eq(i).attr("href");
mapMenu['pId']=j;
mapMenu['name']=$("#content"+j+"_menu a span").eq(i).text();
zNodes.push(mapMenu);
}
}
return zNodes;
}

function initZtree(zNodes){

var setting = {
check: {
enable: true
   },
data: {
simpleData: {
enable: true
}
}
};
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
setCheck();
}


/*权限列表*/
function urlAdd() {
var zNodes = initZNodes();
initZtree(zNodes);
}


4、查看树,不可更改,所有的树的选项都为灰色不可选择:

function urlLookUp(roleName){
var url = "urlLookUp.json?roleName=" + roleName;
$.ajax({
        url: url,// 跳转到 action
        success: function (data) {//这个用来存储在数据库中的菜单id
            if (data.status) {
            var idList = [];//用来存储该角色关联的菜单id
                var summary="";
                var menuList = data.menuString;
                var lenOfMenu = menuList.length;
                for(var i=0;i<lenOfMenu;i++){
                var menuStr = menuList[i];
                var menuLL =  menuStr.split(";");
                idList.push(menuLL[1]);
                summary = menuLL[2];
                }
                loadZtree(idList,"true");
                $("#urlType").val(roleName);
                $('#urlType').attr("disabled",true);
            }
            else {
                alert("查询失败");
            }


        },
        error: function () {
            alert("异常!");
        }
    });


//加载已经对应角色的树,查看树用的
function loadZtree(idList,isLook){
var zNodes = initZNodes();
var len =zNodes.length;
var parentContentId = [];
for(var i=0;i<len;i++){//勾选子菜单
var node = zNodes[i];
if(idList.contains(node.id)){
node.checked=true;
parentContentId.push(node.pId.toString());
}
if(isLook == "true"){
node.chkDisabled=true;
}
}
for(var i=0;i<len;i++){//根据勾选的子菜单,勾选父菜单
var node = zNodes[i];
if(parentContentId.contains(node.id.toString())){
node.checked=true;
}
}
initZtree(zNodes);
}


Array.prototype.contains = function (obj) {  
    var i = this.length;  
    while (i--) {  
        if (this[i] === obj) {  
            return true;  
        }  
    }  
    return false;  
}  



5、加载原有的树,并且可进行更改:

function urlUpdate(roleName) {
var url = "urlLookUp.json?roleName=" + roleName;
$.ajax({
        url: url,// 跳转到 action
        success: function (data) {
            if (data.status) {
            var idList = [];//用来存储该角色关联的菜单id
            var roleName="";
                var summary="";
                var menuList = data.menuString;
                var lenOfMenu = menuList.length;
                for(var i=0;i<lenOfMenu;i++){
                var menuStr = menuList[i];
                var menuLL =  menuStr.split(";");
                idList.push(menuLL[1]);
                roleName = menuLL[0];
                summary = menuLL[2];
                }
                loadZtree(idList,"false");//这个函数在第4项中,false表示可以更改树
            }
            else {
                alert("查询失败");
            }


        },
        error: function () {
            alert("异常!");
        }
    });


6、操作树后,获取树的id与内容

function getMenuUrlAndName(){
var map = {};
var urlResource="";
    var menuName="";
    var treeObj=$.fn.zTree.getZTreeObj("treeDemo");
    nodes=treeObj.getCheckedNodes(true);
    for(var i=0;i<nodes.length;i++){
    var id = nodes[i].id;
    if(id.match("^[0-9]*$"))//去掉一级目录,因为任何一个二级目录勾选一级目录都会勾选
    {
    continue;
    }
    urlResource+=id + ";";
    menuName+=nodes[i].name+";";
}
    map.urlResource = urlResource;
    map.menuName = menuName;
    return map;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值