<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>树控件</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="jquery-1.8.1.min.js">
</script>
<style type="text/css">
body {
padding: 0;
margin: 0;
font-size: 12px;
color: #666;
font-family: Arial, "微软雅黑";
}
#jptree {
overflow: hidden;
}
#jptree #left {
width: 260px;
padding: 10px;
float: left;
background: #eee;
}
#jptree #right {
margin-left: 280px;
padding: 10px;
}
</style>
</head>
<body>
<div id="jptree">
<div id="left">
<div id="left_top">
树结构内容
</div>
<ul id="treeNode">
</ul>
</div>
<div id="right">
<div id="right_top">
内容展示
</div>
<div id="right_con">
</div>
</div>
</div>
<script type="text/javascript">
var nodes = {
"CLSID": "_内部类型_",
"RST": ["属于", "连接", "附加", "任务", "设备组", "角色"],
"group": {
"资产": ["园区", "建筑", "楼层", "房间", "独立设备", "组", "机柜", "架式设备", "小品", "放样物体", "放样物体集合"],
"便签": ["便签"],
"机柜": ["机柜"],
"配线": ["配线"],
"人员": ["用户"],
"任务单": ["任务单"],
"上架": ["架式设备"],
"设备组": ["设备组"],
"角色": ["角色"],
"库存": ["库存"]
},
"classPool": {
"园区": {
"_ID_": "名称",
"_NAME_": "名称"
},
"建筑": {
"_ID_": "名称",
"_NAME_": "名称",
"_PARENT_": "所属"
},
"楼层": {
"_ID_": "名称",
"_NAME_": "名称",
"_PARENT_": "所属"
},
"房间": {
"_ID_": "名称",
"_NAME_": "名称",
"_PARENT_": "所属"
},
"组": {
"_ID_": "编号",
"_NAME_": "编号",
"_PARENT_": "所属"
},
"机柜": {
"_ID_": "编号",
"_NAME_": "编号",
"_PARENT_": "所属",
"_PRODUCT_": "产品库",
"_BOOK_": "关联台账"
},
"架式设备": {
"_ID_": "编号",
"_NAME_": "编号",
"_PARENT_": "所属",
"_SITE_": "统计分类2",
"_布局_": "布局",
"_PRODUCT_": "型号系列/版本号"
},
"刀片": {
"_ID_": "编号",
"_NAME_": "编号",
"_PARENT_": "所属",
"_SITE_": "统计分类2",
"_布局_": "布局",
"_PRODUCT_": "型号系列/版本号"
},
"独立设备": {
"_ID_": "编号",
"_NAME_": "编号",
"_PARENT_": "所属",
"_PRODUCT_": "产品库"
},
"门": {
"_ID_": "编号",
"_NAME_": "编号",
"_PARENT_": "所属",
"_PRODUCT_": "产品库"
},
"板卡": {
"_ID_": "编号",
"_NAME_": "编号",
"_PARENT_": "所属",
"_SITE_": "插槽",
"_PRODUCT_": "型号系列/版本号",
"_BOOK_": "关联台账"
},
"配线": {
"_ID_": "配线编号",
"_P1_": "P1设备编号",
"_P1PORT_": "P1端口编号",
"_P2_": "P2设备编号",
"_P2PORT_": "P2端口编号"
},
"便签": {
"_ID_": "id",
"_FID_": "fid",
"_TID_": "tid",
"_MSG_": "msg",
"_TIME_": "time"
},
"任务单": {
"_ID_": "id",
"_UID_": "uid",
"_NAME_": "name",
"_TIME_": "time"
},
"用户": {
"_ID_": "id",
"_USERNAME_": "username",
"_PASSWORD_": "password"
},
"产品库": {
"_ID_": "型号",
"_MODEL_": "模型"
},
"小品": {
"_ID_": "编号",
"_PARENT_": "所属",
"_PRODUCT_": "产品库"
},
"漏水线": {
"_ID_": "编号",
"_PARENT_": "所属"
},
"设备组": {
"_ID_": "id",
"_NAME_": "名称",
"_DEPICT_": "描述",
"_SCOPE_": "授权范围",
"_SCOPEAOP_": "授权权限",
"_BASE_": "附加范围",
"_BASEAOP_": "附加权限"
},
"角色": {
"_ID_": "id",
"_NAME_": "名称",
"_DEPICT_": "描述",
"_FUN_": "功能"
},
"放样物体": {
"_ID_": "编号",
"_NAME_": "编号",
"_PARENT_": "所属"
},
"放样物体集合": {
"_ID_": "名称",
"_NAME_": "名称",
"_PARENT_": "所属"
},
"库存": {
"_ID_": "编号",
"_INTYPE_": "设备所属类别",
"_PRODUCT_": "产品库"
},
"虚拟机": {
"_ID_": "编号",
"_NAME_": "名称",
"_PARENT_": "所属"
}
},
"relationPool": {
"建筑": {
"_PARENT_->属于": ["园区"]
},
"楼层": {
"_PARENT_->属于": ["建筑"]
},
"房间": {
"_PARENT_->属于": ["楼层"]
},
"组": {
"_PARENT_->属于": ["房间"]
},
"漏水线": {
"_PARENT_->属于": ["房间", "楼层"]
},
"放样物体": {
"_PARENT_->属于": ["园区", "建筑", "房间", "楼层"]
},
"放样物体集合": {
"_PARENT_->属于": ["园区", "建筑", "房间", "楼层"]
},
"机柜": {
"_PARENT_->属于": ["房间", "组"],
"_PRODUCT_->附加": ["产品库"]
},
"架式设备": {
"_PARENT_->属于": ["机柜"],
"_PRODUCT_->附加": ["产品库"]
},
"刀片": {
"_PARENT_->属于": ["机柜"],
"_PRODUCT_->附加": ["产品库"]
},
"独立设备": {
"_PARENT_->属于": ["房间", "组"],
"_PRODUCT_->附加": ["产品库"]
},
"门": {
"_PARENT_->属于": ["房间"],
"_PRODUCT_->附加": ["产品库"]
},
"板卡": {
"_PARENT_->属于": ["架式设备", "独立设备"],
"_PRODUCT_->附加": ["产品库"]
},
"小品": {
"_PARENT_->属于": ["房间", "楼层", "组"]
},
"漏水线": {
"_PARENT_->属于": ["组", "房间"],
"_PRODUCT_->附加": ["产品库"]
},
"配线": {
"_P1_->连接": ["架式设备", "独立设备", "板卡"],
"_P2_->连接": ["架式设备", "独立设备", "板卡"]
},
"便签": {
"_FID_->便签": ["用户"],
"_TID_->便签": ["建筑", "楼层", "房间", "组", "独立设备", "机柜", "架式设备", "用户"]
},
"任务单": {
"_UID_->任务": ["用户"]
},
"用户": {
"_ID_-设备组": {"设备组":"1212","12":"125566"},
"_ID_-角色": ["角色"]
}
}
};
/**
* 判断类型
*/
function type(obj){
switch(obj){
case null:
return "null";
case undefined:
return "undefined";
}
var s=Object.prototype.toString.call(obj);
switch(s){
case "[object String]":
return "string";
case "[object Number]":
return "number";
case "[object Boolean]":
return "boolean";
case "[object Array]":
return "array";
case "[object Date]":
return "date";
case "[object Function]":
return "function";
case "[object RegExp]":
return "regExp";
case "[object Object]":
return "object";
default:
return "object";
}
}
/**
* 树结构
* @param {Object} nodes
* @param {Object} box
*/
function jpTree(nodes,box){
var tree = nodes;
for(var key in tree){
var temp = tree[key];
if(type(temp)=="string"||type(temp)=="number"){
if (box === undefined) {
$("#treeNode").append("<li>"+key+"=>"+temp + "</li>");
}else{
$(box).append("<li>"+key+"=>"+ temp + "</li>");
}
}else if(type(temp)=='array'){
if(box===undefined){
$("#treeNode").append("<li><p>"+key+"</p><ul class='treeNodeArray"+key+"'></ul></li>");
for(var j = 0; j < temp.length; j++){
$(".treeNodeArray"+key).append('<li>'+temp[j]+'</li>');
}
}else{
for(var j = 0; j < temp.length; j++){
$(box).append('<li>'+key+'=>'+temp[j]+'</li>');
}
}
jpTree(temp,'.treeNodeArray'+key);
}else if(type(temp)=="object"){
if (box === undefined) {
$("#treeNode").append("<li><p>" + key + "</p><ul class='treeNodeObject" + key + "'></ul></li>");
}else{
$(box).append("<li><p>" + key + "</p><ul class='treeNodeObject" + key + "'></ul></li>");
}
jpTree(temp,'.treeNodeObject'+key);
}else{
}
}
}
jpTree(nodes);
$("#left").css({"height":$(window).height()-20,"overflow":"auto"});
</script>
</body>
</html>