引入ztree库
-
存放目录和结构
src/main/webapp/js/lib/ztree
原则:按需引入 -
requireJs中的设置
shim: {
'jquery': {
"exports": "$"
},
'zTree-core' : ['jquery'],
'zTree-excheck' : ['jquery','zTree-core'],
}
由于不满足AMD规范,需在shim中指定外部调用的别名、依赖的模块
前端调用
- JSP页面调用
require(["grant",'jquery','popup','autoComplete','window','common','zTree-excheck','validate.zh'],
function(Grant,$,Popup,AutoComplete,UIWindow,Common,ZTree){
var setting = {
check: {
enable: true
},
data: {
simpleData: {
enable: true,
idKey : "resId",
pIdKey : "parentId",
rootPId : 9999
},
key : {
name : "resName"
}
}
};
//初始化ztree
var loadZTree = function(roleId,roleType){
$.ajax({
url:contextPath + '/XXXXXXXXXXXX/loadZTreeData?t=' + Math.random(),
type:'post',
data:{
"roleId" : roleId,
"type" : roleType
},
dataType:'json',
success:function(response){
if(response.code == '0'){
console.log(response.data);
//$.fn.zTree.init($("#roleTree"), setting, zNodes);
$.fn.zTree.init($("#roleTree"), setting, response.data);
}else{
UIWindow.alert({
message : response.message,
type : 'error'
});
}
}
});
}
$resInfoForm.find('input[type="radio"][name="roleType"]').on('change',function(){
$.fn.zTree.destroy("roleTree");
loadZTree(null,$(this).val());
});
$(document).ready(function(){
var clientRoleId = $resInfoForm.find('input[name="roleId"]').val();
var clientRoleType = $resInfoForm.find('input:radio[name="roleType"]:checked').val();
if(clientRoleId && clientRoleId != 0){
loadZTree(clientRoleId,clientRoleType);
}else{
$resInfoForm.find('input[type="radio"][name="roleType"]').eq(0).trigger('click');
}
});
});
- JSON格式的数据(response.data)
[
{
"checked": false,
"createTime": "2020-12-23 18:20:26",
"createTimeStr": "2020-12-23 18:20:26",
"creator": 1,
"deleted": false,
"leafFlag": 0,
"modifier": 1,
"modifyTime": "2021-01-15 09:56:56",
"open": true,
"order": 1,
"parentId": 9999,
"path": "9999_14",
"resCode": "114",
"resId": 14,
"resName": "首页",
"roleResFlag": false,
"sysCode": "KH",
"type": 1,
"leafFlag_desc": "未启用",
"deleted_desc": "可用"
},
{
"backgroundColor": "",
"checked": false,
"createTime": "2021-01-15 09:57:36",
"createTimeStr": "2021-01-15 09:57:36",
"creator": 100000,
"deleted": false,
"imgUrl": "",
"leafFlag": 1,
"modifier": 100000,
"modifyTime": "2021-01-15 09:57:34",
"open": false,
"order": 1,
"parentId": 14,
"path": "9999_14_15",
"resCode": "115",
"resId": 15,
"resName": "订购",
"roleResFlag": false,
"sysCode": "KH",
"type": 1,
"url": "/sys/api/1.0/dkdkdkdkd",
"leafFlag_desc": "启用",
"deleted_desc": "可用"
},
{
"backgroundColor": "",
"checked": false,
"createTime": "2021-01-15 09:58:19",
"createTimeStr": "2021-01-15 09:58:19",
"creator": 100000,
"deleted": false,
"imgUrl": "",
"leafFlag": 0,
"modifier": 100000,
"modifyTime": "2021-01-15 09:58:17",
"open": true,
"order": 10,
"parentId": 14,
"path": "9999_14_16",
"resCode": "116",
"resId": 16,
"resName": "报表",
"roleResFlag": false,
"sysCode": "KH",
"type": 1,
"url": "",
"leafFlag_desc": "未启用",
"deleted_desc": "可用"
},
{
"backgroundColor": "#fffff",
"checked": false,
"createTime": "2021-01-15 09:59:08",
"createTimeStr": "2021-01-15 09:59:08",
"creator": 100000,
"deleted": false,
"imgUrl": "",
"leafFlag": 1,
"modifier": 100000,
"modifyTime": "2021-01-15 09:59:06",
"open": false,
"order": 1,
"parentId": 16,
"path": "9999_14_16_17",
"resCode": "117",
"resId": 17,
"resName": "提报需求报表",
"roleResFlag": false,
"sysCode": "KH",
"type": 1,
"url": "/sys/api/1.0/xkdkdkdkd",
"leafFlag_desc": "启用",
"deleted_desc": "可用"
}
]
PS:无需构造父子关系的层级结构,ztree.excheck.js会自动帮你构造树形结构。
浏览器效果
参考地址
ztree官网,感谢提供了这么好用的组件。