分享

zTree(二)树状图下拉框

 一本正经地胡闹 2019-05-23

需求

添加、修改终端需要选择组织,组织是多级架构(树状图显示)。

思路

1、因为下拉框需要树状图显示,所以排除使用select做下拉框,改用input 模拟下拉框
2、树状图采用zTree插件

开工

1、布局

<script src="https://cdn./jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn./zTree.v3/3.5.33/js/jquery.ztree.core.min.js"></script>
<link href="https://cdn./zTree.v3/3.5.33/css/zTreeStyle/zTreeStyle.min.css" rel="stylesheet">
<style>
.trg{
    width: 0;
    height: 0;
    border-left: 3px solid transparent;
    border-right: 3px solid transparent;
    border-top: 6px solid black;;
    position: absolute;
    left:181px;
    top:8px;

}
.org-select{
    cursor: default;
    z-index: -1;
    width:200px;
}
</style>
<div style="position: relative;margin:90px;">
    <input id="orgName" class="org-select" onclick="showTree()"  readonly > 
    <!-- 模拟select点击框 以及option的text值显示-->
    <i class="trg"style="position: absolute;"></i>
    <!-- 模拟select右侧倒三角 -->
    <input id="orgCode" type="hidden" name="orgCode" />
    <!-- 存储 模拟select的value值 -->

    <!-- zTree树状图 相对定位在其下方 -->
    <div class="ztree"  style="display:none; position: absolute;border:1px solid #4aa5ff;width:200px;">
        <ul id="treeDemo"></ul>
    </div>  
</div>

2、js方法部分


//树状图展示
var orgList =[
      { id:1, pId:0, name:"父节点1 - 展开", open:true},
      { id:11, pId:1, name:"父节点11 - 折叠"},
      { id:111, pId:11, name:"叶子节点111"},
      { id:112, pId:11, name:"叶子节点112"},
      { id:113, pId:11, name:"叶子节点113"},
      { id:114, pId:11, name:"叶子节点114"},
      { id:12, pId:1, name:"父节点12 - 折叠"},
      { id:121, pId:12, name:"叶子节点121"},
      { id:122, pId:12, name:"叶子节点122"},
      { id:123, pId:12, name:"叶子节点123"},
      { id:124, pId:12, name:"叶子节点124"},     
  ];
  var setting = {
      data: {
          simpleData: {
              enable: true
          }
      },
      //回调
      callback: {
          onClick: zTreeOnClick
      },
      view: {
          fontCss: { fontSize: "14px" }
      }
  };
  //节点点击事件
  function zTreeOnClick(event, treeId, treeNode) {
      $('#orgName').val(treeNode.name);
      $('#orgCode').val(treeNode.Id)
      hideTree();  
  };
  $(document).ready(function () {
      //初始组织树状图
      $.fn.zTree.init($("#treeDemo"), setting, orgList);
  });
//下拉框显示 隐藏
 function showTree(){
    if($('.ztree').css('display') == 'none'){
         $('.ztree').css('display','block'); 
     } else{
         $('.ztree').css('display','none'); 
     }
     $("body").bind("mousedown", onBodyDownByActionType); 
 }
 function hideTree() {  
    $('.ztree').css('display','none');
    $("body").unbind("mousedown", onBodyDownByActionType); 
    return false;
} 

//区域外点击事件
function onBodyDownByActionType(event) {  
    if (event.target.id.indexOf('treeDemo') == -1){  
        if(event.target.id != 'selectDevType'){
            hideTree(); 
        } 
    }  
}

效果图

效果

代码:树状图下拉框

转自 https://blog.csdn.net/jx950915/article/details/80403027

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多