⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tree_level_1.js

📁 达内CRM培训项目java源码:主要系统功能 1 用户登录 2 客户管理:查询客户、增加客户、修改客户; 3 订单管理:查询订单、生成订单、修改订单、订单确认; 4 产品管理:查询产品
💻 JS
📖 第 1 页 / 共 2 页
字号:
		}
	}	
}
/***/


/** 将父节点的img对应Id加入数组 
  add by yancj 2004-1-5 
*/
function addParentID(node) {
	try {
		// alert("childID: "+node.id);
		var pNode = tree.getParent(node);
		// alert("parentID: "+pNode.id);
		if (pNode != null) {
			var aTag = findATag(document.getElementById(pNode.id).firstChild);
			srcids[idx++] = aTag.firstChild.id;
			// 递归
			addParentID(pNode);
		}
	}
	catch (E) {
  }
}

/** 将父节点的img对应Id加入数组 
  add by yancj 2004-2-10 
*/
function addParentIDById(nodeId) {
	try {
		// alert("childID: "+nodeId);
		var pId = tree.getParentId(nodeId);
		//alert("parentID: "+pId);
		if (pId != null) {
			var aTag = findATag(document.getElementById(pId).firstChild);
			
			srcids[idx++] = aTag.firstChild.id;
			
			// 递归
			addParentIDById(pId);
		}
	}
	catch (E) {
  }
}

/* 找出<a 后包含的img 
  add by yancj 2004-1-5 
*/
function findATag(docNode) {
	// alert("aTag? " + docNode.nodeName);
	if (docNode.nodeName == 'A')
		return docNode;
	else
		return findATag(docNode.nextSibling);
}

/** 画出整个树的节点组 
  modify by yancj 2004.1.5
  for 画第一个符合查询条件的节点 
*/
function drawNodes(node) {
	if (node.type != "root")
	{
		strTree += "";
	}
	for (var i=1;i<this.length;i++)
	{
		if (this.nodes[i].parentId!=null && this.nodes[i].parentId == node.id)
		{
			if(this.nodes[i].id==this.firstSearchNodeId){
				// 画出符合条件的第一个节点
				this.drawFirstSearchNode(this.nodes[i]);				
			}else{
			   this.drawNode(this.nodes[i]); //画出节点		  
		  }
			this.drawNodes(this.nodes[i]); //递归画出整个节点组的节点
		}
	}
	if (node.type != "root")
	{
		strTree += "";
	}
}


/** 画出当前节点的一级子节点组 
 * add by yancj 2004.1.9
 * 使用div来插入一级子节点组的html代码。div的id为当前节点id,加前缀d 
*/
function drawNodesLevel(node) {
  strTree="";
	// alert(" drawNodesLevel ");
	for (var i=1;i<this.length;i++)
	{		
		if (this.nodes[i].parentId!=null && this.nodes[i].parentId == node.id)
		{
			if(this.nodes[i].id==this.firstSearchNodeId){
				// 画出符合条件的第一个节点;
				this.drawFirstSearchNode(this.nodes[i]);				
			}else{
			   this.drawNodeLevel(this.nodes[i]); //画出节点
			   if (this.nodes[i].type == "folder")
	       {	       	 
		       strTree += "<div style='display:none' id='d" + this.nodes[i].id + "'>";
		       strTree += "</div>";
	       }		  
		  }
		}
	}

  if (node.type == "root")
	{
		strTree = rStrTree + strTree; // 画根节点的html代码
	}
}


/** 画出节点前的前导图片,有空格或线条图片.
	如果其父节点是一个末节点,那么该对应列的前导图片为空格图片.
	如果不是末节点,应该添加线条图片.
	这里进行了递归运算,但由于其图片顺序为反顺序,所以设置一个tempStr来暂存需要画出的图片,
	用以保证其图片顺序为正确顺序. */
function drawFrontLine(node) {
	var tempStr = "";
	for (var i=1;i<this.length;i++)
	{
		if (this.nodes[i].id == node.parentId)
		{
			if (this.nodes[i].isLast)
			{
				tempStr = "<img src='"+img_blank+"'>" + tempStr;;
			} else {
				tempStr = "<img src='"+img_line+"'>" + tempStr;
			}
			this.drawFrontLine(this.nodes[i]);
		}
	}
	strTree += tempStr;
}


/** 当点击目录节点的前导"加号|减号"图片时,展开层或收缩层,并用相应的图片替代现有图片,实现动态收缩动作 */
function clickOnFolder() {	
	var srcIndex = event.srcElement.sourceIndex;
	
	var divElement = document.all[srcIndex+6]; //得到层对象
	var imgElement = document.all[srcIndex+3]; //得到图片对象
	var fimgElement = document.all[srcIndex]; //得到前导图片对象(即它本身)
	if (divElement.style.display == "none")
	{
		divElement.style.display = "";
		imgElement.src=img_folder_open;;
		if (fimgElement.src!=null && fimgElement.src.indexOf(img_plus)!=-1)
		{
			fimgElement.src=img_minus;
		} else {
			fimgElement.src=img_minus_last;
			}
	} else {
		divElement.style.display = "none";
		imgElement.src=img_folder_close;
		if (fimgElement.src!=null && fimgElement.src.indexOf(img_minus)!=-1)
		{
			fimgElement.src=img_plus;;
		} else {
			fimgElement.src=img_plus_last;
		}
	}
}

/** 
 * 展开一级子目录方式: 当点击目录节点的前导"加号|减号"图片时,展开层或收缩层,并用相应的图片替代现有图片,实现动态收缩动作 
 * add by yancj 2004.4.9
 */
function clickOnFolderLevel(nid, nname, nparentId, ntype, norgname, ncode) {	
	tree.drawNodesLevel(new node(nid, nname, nparentId,ntype, norgname, ncode));
  var dId="d"+nid;
	document.getElementById(dId).innerHTML=strTree;
	var srcIndex = event.srcElement.sourceIndex;
	var divElement = document.all[srcIndex+5]; //得到层对象
	var imgElement = document.all[srcIndex+2]; //得到图片对象
	var fimgElement = document.all[srcIndex]; //得到前导图片对象(即它本身)
	if (divElement.style.display == "none")
	{
		divElement.style.display = "";
		imgElement.src=img_folder_open;;
		if (fimgElement.src!=null && fimgElement.src.indexOf(img_plus)!=-1)
		{
			fimgElement.src=img_minus;
		} else {
			fimgElement.src=img_minus_last;
			}
	} else {
		divElement.style.display = "none";
		imgElement.src=img_folder_close;
		if (fimgElement.src!=null && fimgElement.src.indexOf(img_minus)!=-1)
		{
			fimgElement.src=img_plus;;
		} else {
			fimgElement.src=img_plus_last;
		}
	}
}

function clickOnFolderLevelInf(nid, nname, nparentId, ntype, norgname, ncode, srcIndex) {
  // 添加相应子目录html代码
	tree.drawNodesLevel(new node(nid, nname, nparentId,ntype, norgname, ncode));
  var dId="d"+nid;
	document.getElementById(dId).innerHTML=strTree;
  
  // 打开一级目录
  openFolder(srcIndex);
}

/** 画出符合目录查询的第一个节点 
  add by yancj 2004-1-5 
*/
function drawFirstSearchNode(node) {
	strTree += "<table border='0' cellspacing='0' cellpadding='0'>";
	strTree += "<tr ><td id='" + node.id + "'>";
	var fIDid = fID++;
	this.drawFrontLine(node);
	if (node.type == "folder")
	{
		strTree += "<a onClick='clickOnFolder()' onFocus='this.blur()' href='#'><img id='" + (fIDid) + "' border='0' src='"+node.fImage+"'></a>";
		strTree += "<a onFocus='this.blur()' href='#'><img border='0' src='"+node.image+"'></a>";
		strTree += "</td><td valign='middle'>";
		strTree += "<a onFocus='this.blur()' class='a05' id='folderLink' href='"+node.orgname+"' target='"+node.code+"' >"+node.name+"</a>";
	} else {
		strTree += "<img id='" + (fIDid) + "' border='0' src='"+node.fImage+"'>";
		strTree += "<a onFocus='this.blur()' href='"+node.orgname+"' target='"+node.code+"')><img border='0' src='"+node.image+"'></a>";
		strTree += "</td><td valign='middle'>";
		strTree += "<a onFocus='this.blur()' class='a05' href='"+node.orgname+"' target='"+node.code+"') >"+node.name+"</a>";
	}
	strTree += "</td></tr>";
	strTree += "</table>";
	
	// 对所有符合查询条件的节点
	for(i = 0; i < ids.length; i++) {
		if (ids[i] == node.id) {
			// 将该节点img对应的Id写到数组里去,当页面节点树建立后,对所有符合条件的节点展开
			srcids[idx++] = fIDid;
			// 展开符合条件的节点的父节点
			/// addParentID(node);
		}
	}
}

/* 用于目录查询时,自动展开符合条件的目录 
  add by yancj 2004-1-5 
*/
function openFolder(srcIndex) {
	
	var divElement = document.all[srcIndex+6]; //得到层对象
	var imgElement = document.all[srcIndex+3]; //得到图片对象
	var fimgElement = document.all[srcIndex]; //得到前导图片对象(即它本身)
	// alert( " the image src:  "+ imgElement.src);
	// var theFileImg="http://localhost:8080"+img_file;
	// alert( " the image path:  "+ theFileImg);
	// if (imgElement.src == theFileImg){
		// alert(" not open");
	// }else{
		divElement.style.display = "";
		imgElement.src=img_folder_open;
		if (fimgElement.src!=null && fimgElement.src.indexOf(img_plus)!=-1)
		{
			fimgElement.src=img_minus;
		} else {
			fimgElement.src=img_minus_last;
			}
  // }
}

/* 用于目录查询时,自动展开符合条件的目录(返回整个字符串方式) 
  add by yancj 2004-2-10 
*/
function searchFolder() {
	for(i = 0; i < ids.length; i++) {
		// 增加符合条件的节点的父节点Id(递归)
		addParentIDById(ids[i]);
	}
	
	for (i = 0; i < srcids.length; i++) {
    try { 
	   openFolder(document.getElementById(srcids[i]).sourceIndex); 
    } 
    catch(e) {} 
  } 
	
}
/*
选择file;liuhr
*/
function selectFile()
{
	var checkObj = event.srcElement;
    if(checkObj.checked){
		
checkObj.checked = checkObj.checked;
    } 
}

/*
初始化子节点liuhr
*/
function addChildId(nodeId){

tree.childrens = new Array();
chN=0;	
//alert(tree.childrens);
//alert(nodeId);
tree.getChildId(nodeId);
return tree.childrens;

}
/*
点击folder,选择它的子节点liuhr
*/
function selectall()
{
	
	var checkObj = event.srcElement;
    var Cid = event.srcElement.id;
    
	tree.addChildId(Cid);
	var length = tree.childrens.length;
    //alert(tree.childrens);
    if (length == 0 ){
          return;
    }    
   

    if (length>0)
    {		
      for (var i = 0; i < length; i++){
		document.getElementById(tree.childrens[i]).checked = checkObj.checked;
       }

    }
}
<!--
/**
* Based on Folding Menu Tree
* Dynamic Drive (www.dynamicdrive.com)
* For full source code, installation instructions,
* 100's more DHTML scripts, and Terms Of
* Use, visit dynamicdrive.com
*
* Updated to support arbitrarily nested lists
* by Mark Quinn (mark@robocast.com) November 2nd 1998
*/
var head="display:''"
img1=new Image()
img1.src="images/fold.gif"
img2=new Image()
img2.src="images/open.gif"

function change(){
    if(!document.all)
        return
    if (event.srcElement.id=="foldheader") {
        var srcIndex = event.srcElement.sourceIndex
        var nested = document.all[srcIndex+2]
        if (nested.style.display=="none") {
            nested.style.display=''
            //event.srcElement.style.listStyleImage="url(open.gif)"
            event.srcElement.src="images/left_folderopen.gif"
        }
        else {
            nested.style.display="none"
            //event.srcElement.style.listStyleImage="url(fold.gif)"
            event.srcElement.src="images/left_folder.gif"
        }
    }
}

function changeTwins(){
	var foldnode = event.srcElement.previousSibling.previousSibling
	if (foldnode.id == "foldheader") {
        var srcIndex = foldnode.sourceIndex
        var nested = document.all[srcIndex+2]
        if (nested.style.display=="none") {
            nested.style.display=''
            //event.srcElement.style.listStyleImage="url(open.gif)"
            foldnode.src="images/left_folderopen.gif"
        }
        else {
            nested.style.display="none"
            //event.srcElement.style.listStyleImage="url(fold.gif)"
            foldnode.src="images/left_folder.gif"
        }
    }
}

document.onclick=change
//-->



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -