easyui tree菜单根据json转换

/**
 * Created by cjj on 2018/5/4.
 */
function convert(rows){//默认三级 ,图标可变
    function exists(rows, parentId){
        for(var i=0; i<rows.length; i++){
            if (rows[i].id == parentId) return true;
        }
        return false;
    }

    var nodes = [];
    // get the top level nodes
    for(var i=0; i<rows.length; i++){
        var row = rows[i];
        if (!exists(rows, row.parentId)){
            nodes.push({
                id:row.id,
                text:row.name
            });
        }
    }

    var toDo = [];
   // var toDo = nodes;
  for(var i=0; i<nodes.length; i++){
       toDo.push(nodes[i]);
   }
    while(toDo.length){
        var node = toDo.shift();   // the parent node
        // get the children nodes
        for(var i=0; i<rows.length; i++){
            var row = rows[i];
            if (row.parentId == node.id){
                var child = {id:row.id,text:row.name};
                if (node.children){
                    node.children.push(child);
                } else {
                    node.children = [child];
                }
                toDo.push(child);
            }
        }
    }

    //设置菜单图标
    var iconCls=["fi-home","fi-battery-half","fi-monitor"];
    function icon(nodes,index) {
        if(index<iconCls.length)
        nodes["iconCls"] = iconCls[index++];//本级
        if(nodes.children) {//子集递归
            for (var i = 0; i < nodes.children.length; i++) {
                icon( nodes.children[i],index);
            }
        }
    }
    //遍历第一级
    for(var j=0;j<nodes.length;j++){
        nodes[j]["iconCls"]=iconCls[0];//一级
        icon( nodes[j],0);
    }
//                console.log( nodes[j]);
//                if(nodes[j].children){
//                    for(var i=0;i<nodes[j].children.length;i++){
//
//                        var node =nodes[j].children[i];
//                        node["iconCls"]="fi-battery-half";//二级
//                if(node.children) {//三级
//                            for (var i = 0; i < nodes[j].children.length; i++) {
//                                var node = nodes[j].children[i];
//                                node["iconCls"] = "fi-monitor";//三级
//                            }
//                        }
//                    }
    //}
    return nodes;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
easyui是一个基于jQuery的UI框架,提供了丰富的界面组件和交互效果,方便开发人员快速构建Web页面。而treeeasyui中的一个树状组件,用于展示层级关系的数据。 在使用easyui tree进行java开发时,我们首先需要引入easyui的相关依赖包,并在页面中引入相应的脚本和样式文件。然后,我们可以通过在页面中定义一个div容器,将tree组件渲染在页面上。 在java后台代码中,我们需要提供数据给tree组件进行展示。一般来说,我们可以通过数据库查询、接口调用等方式获取数据,并将数据转换json格式。然后,将json数据返回给前端页面,供tree组件使用。 接下来,我们需要在前端页面中初始化并配置tree组件。通过调用easyui提供的API,我们可以设置tree的数据源、展开图标、折叠图标、节点点击事件等。可以根据具体需求对tree进行自定义配置,以满足我们的业务需求。 在页面渲染完成后,easyui tree组件会自动将数据渲染为树状结构,并提供相应的交互功能,比如展开收起节点、选中节点等。我们可以通过对tree组件的事件进行监听,实现特定操作,比如点击节点后加载子节点、在节点上右键弹出菜单等。 总之,通过使用easyui tree组件,结合java后台开发,我们可以方便地实现树形结构的展示和交互操作,提升用户体验,简化开发流程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值