Python递归实现Easyui combotree树

最近项目中用到easyui combotree,需要使用python实现,网上资料很少,做好后特地分享给大家

希望对一些朋友有帮助。


表结构:

DOMAIN_ID                 N INTEGER  --ID

NAME                         N VARCHAR2(128)  --名称

PAR_DOMAIN_ID N INTEGER          --父子关联ID


Html代码:

<input class="easyui-combotree" style="width:200px" id="topDetail" name="topDetail" data-options="editable:true" >

Javascript代码:

 $.ajax({
          type:'post',
          url: "get_comb_tree?domainID={{ domainID }}",
          dataType:'json',
          success: function(data){
              for(var i = 0; i < data.length; i ++){
                  if(data[i].checked == "true"){
                      $("#topDetail").combotree("setValue",data[i].id);
                      break;
                  }
              }
              $('#topDetail').combotree('loadData', data);
          }
});

Python代码:

def recursion_tree_data(par_domainId):
    """
    @说明:递归,按照Easyui ComboTree数据格式,生成对应的json数据
    @param par_domainId: 子ID
    """
    tree_list = []
    c = connections[gdata.dn].cursor()
    
    topoly_sql = """ 
                 SELECT T.DOMAIN_ID,T.NAME,T.PAR_DOMAIN_ID,T.PIC_PATH
                      FROM V2_TOPLOGY_DOMAIN T where  nvl(T.PAR_DOMAIN_ID,0) = %s 
                 """ % par_domainId
                 
    topoly  = dbquery(c ,topoly_sql)
    for t in topoly:
        children_map  = {}
        
        domain_id     = t['DOMAIN_ID']
        par_domain_id = t['PAR_DOMAIN_ID']
        name          = t['NAME']
        
        children_map['id']       = domain_id
        children_map['text']     = name
        children_map['state']    = 'closed'
        children_map['iconCls']    = 'icon-domain'
        
        # 这里开始递归子节点
        children_map['children'] = recursion_tree_data(domain_id)
        tree_list.append(children_map)
        
    return tree_list
    
def get_comb_tree(request, response=None, render=None):
    """
    @说明:调用递归算法生成树列表转为json返回到页面
    """
    domainId = request.REQUEST.get("domainID","0")
    data     = recursion_tree_data(domainId)
    return HttpResponse(content_type = 'application/json; charset=utf-8' , content = json.write(data))

原创内容,装载请注明出处,谢谢!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值