AdminLTE介紹和zTree的簡單使用


一.AdminLTE介紹

1.介紹

AdminLTE是一個開源的后台控制面板和儀表盤 WebApp 模板,是建立在Bootstrap3框架和JQuery之上的開源模板主題工具,它提供了一系列響應的組件,並內置了多個模板頁面,包括儀表盤、郵箱、日歷、鎖屏、登錄及注冊、404錯誤、500錯誤等頁面。通過AdminLTE,我們可以快速的創建一個響應式的Html5網站。

2.下載

我們可以到其官網下載:https://adminlte.io/

也可選擇中文版本的地址:http://adminlte.la998.com/index2.html

其中有一些模板是收費的,當然也有挺多免費的,看需求自行選擇。

 

3.AdminLTE的簡單使用

AdminLTE的使用並不難,和使用Bootstrap類似。我們將下載的文件導入到我們的工程當中,進行適當的刪改即可。當然,我們也可以只使用其中的一小部分,甚至是一個小組件。詳見其官方文檔:

中文文檔:http://adminlte.la998.com/documentation/#introduction

 

二.zTree的簡單使用

1.簡介

zTree 是一個依靠 jQuery 實現的多功能 “樹插件”。優異的性能、靈活的配置、多種功能的組合是 zTree 最大優點。專門適合項目開發,尤其是 樹狀菜單、樹狀數據的 Web 顯示、權限管理等等。

特點

  • zTree v3.0 將核心代碼按照功能進行了分割,不需要的代碼可以不用加載。

  • 采用了延遲加載技術,上萬節點輕松加載,即使在 IE6 下也能基本做到秒殺。

  • 兼容 IE、FireFox、Chrome、Opera、Safari 等瀏覽器。

  • 支持 JSON 數據。

  • 支持靜態和 Ajax 異步加載節點數據。

  • 支持任意更換皮膚 / 自定義圖標(依靠 css)。

  • 支持極其靈活的 checkbox 或 radio 選擇功能。

  • 提供多種事件響應回調。

  • 靈活的編輯(增/刪/改/查)功能,可隨意拖拽節點,還可以多節點拖拽喲。

  • 在一個頁面內可同時生成多個 Tree 實例。

  • 簡單的參數配置實現 靈活多變的功能。

2.基本使用

第一步:導入zTree組件

<link rel="stylesheet" href="${ctx }/components/zTree/css/zTreeStyle/zTreeStyle.css" type="text/css" />
<script type="text/javascript" src="${ctx }/components/zTree/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="${ctx }/components/zTree/js/jquery.ztree.core-3.5.min.js"></script>
<script type="text/javascript" src="${ctx }/components/zTree/js/jquery.ztree.excheck-3.5.min.js"></script>

第二步:編寫頁面

script

<script type="text/javascript">
   // 1.設置樹的配置信息
   var setting = {
       check: { // 復選框可用
           enable: true
       },
       data: {  // 定義使用簡單json數據格式,如下所示:
           simpleData: {
               enable: true
           }
       }
   };
   /** 簡單json數據格式:
    * [{ id:11, pId:1, name:"系統", checked:true}, { id:12, pId:1, name:"財務",checked:false}]
    * 當前項id  父項id  名稱         是否勾選
    */

   // 2.頁面加載完畢后發起異步請求獲得json格式的數據
   $(document).ready(function(){
       $.get("${ctx}/system/role/initModuleData.do?roleid=${role.id}",function(data) {
           initZtree(data);
       },"json");
   });

   // 3.定義zTree樹
   var zTreeObj; 
   // 4.根據獲取到的json數據展示ztree樹
   function initZtree(data) {
       //第一個參數:樹顯示的位置,第二個參數:樹的配置信息,第三個參數:要展示的數據
       zTreeObj = $.fn.zTree.init($("#treeDemo"), setting, data);
       zTreeObj.expandAll(true);//true:展開所有節點
   }

   // 5.實現權限分配(zTree樹復選框提交時)
   function submitCheckedNodes() {
       //1.獲取所有的勾選權限節點
       var nodes = zTreeObj.getCheckedNodes(true);//true:被勾選,false:未被勾選
       //2.循環nodes,獲取每個節點的id, 拼接模塊字符串(以,分隔)
       var moduleIds = "";
       for(var i=0;i<nodes.length;i++) {
           moduleIds += nodes[i].id +",";
       }
       if(moduleIds.length>0) {
           //substr : 字符串剪切    0 :起始位置, 第二個參數:最大長度
           //123456789,      0   9
           moduleIds = moduleIds.substr(0,moduleIds.length-1);
       }
       $("#moduleIds").val(moduleIds); // 設置表單隱藏域的值
       $("#icform").submit();  // 提交表單
   }
</script>

樹菜單

 

<!-- 樹菜單 -->
<form name="icform" id="icform" method="post" action="${ctx}/system/role/updateRoleModule.do">
    <input type="hidden" name="roleid" value="${role.id}"/>
    <input type="hidden" id="moduleIds" name="moduleIds" value=""/>
    <div class="content_wrap">
        <div class="zTreeDemoBackground left" style="overflow: visible">
            <!-- 展示zTree樹的地方 -->
            <ul id="treeDemo" class="ztree"></ul>  
        </div>
    </div>
</form>
<!-- 樹菜單 /-->

第三步:Controller返回正確的json格式數據

Tips: 分析頁面所需json數據格式為:

[{ id:11, pId:1, name:"系統", checked:true}, { id:12, pId:1, name:"財務",checked:false}]

因此可以將數據查出來后自行轉為json格式的。也可通過sql語句直接查出我們所需要的數據格式:

<!-- 查找角色權限的功能模塊(一條語句,包含所有模塊及當前角色的模塊權限標記)注意返回的是map類型 -->
<select id="findTreeJson" parameterType="string" resultType="map">
    select
    module_id as id ,
    parent_id as pId,
    name as name,
    case when module_id in (select module_id from pe_role_module where role_id = #{roleId})
    then 'true'
    else 'false'
    end
    as checked
    from ss_module;
</select>

Controller返回json數據

//頁面加載完畢后直接發起異步請求初始化 權限菜單樹
@RequestMapping(value = "/initModuleData",name = "加載角色權限")
public @ResponseBody List initModuleData(@RequestParam("roleid") String id){
    List<Map> list = roleService.findTreeJson(id);
    return list;
}

這樣,頁面就可以根據我們的json數據動態的生成一個zTree樹啦!

喜歡的朋友可以關注我的公眾號,需要廣告托管的朋友可以加QQ哦!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM