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

📄 tree.js

📁 CallSun 人才招聘求职系统 V2.20
💻 JS
📖 第 1 页 / 共 2 页
字号:
var nodeImgList;
var indentList;
var nodeList;
var objContainer;
var nodeSelected = null;
var BRANCH = 0;
var LEAF = 1;
var MethodId = 0;
var NodeId = 0;
var SortList = null;

function TreeNode()
{
    var id;
    var text;
    var parentId;
    var parentText;
    var hasChild;
    var num;
}

function imgList(strRoot,strFolderClosed,strFolderOpened,strNode,strEmpty,strLine,strJoin,strJoinBottom,strPlus,strPlusBottom,strMinus,strMinusBottom,strNlPlus,strNlMinus)
{
	this.root = strRoot;
	this.folderClosed = strFolderClosed;
	this.folderOpened = strFolderOpened;
	this.node = strNode;
	this.empty = strEmpty;
	this.line = strLine;
	this.join = strJoin;
	this.joinBottom = strJoinBottom;
	this.plus = strPlus;
	this.plusBottom = strPlusBottom;
	this.minus = strMinus;
	this.minusBottom = strMinusBottom;
	this.nlPlus = strNlPlus;
	this.nlMinus = strNlMinus;
}

function createTree()
{
	initData();
}

function initData()
{
	nodeImgList = new imgList("images/base.gif","images/folderclosed.gif","images/folderopened.gif","images/page.gif","images/empty.gif","images/line.gif","images/join.gif","images/joinbottom.gif","images/plus.gif","images/plusbottom.gif","images/minus.gif","images/minusbottom.gif","images/nolines_plus.gif","images/nolines_minus.gif");
	indentList = new Array();
	getData();
	processData();
}

function getData()
{
    nodeList = new Array();
    for (var i = 0; i < SortList.length; i++)
    {
        var node = new TreeNode();
        //node.id = SortList[i][3];
        node.id = i;
        node.text = SortList[i][2];
        node.parentText = SortList[i][1];
        node.parentId = getNodeIndexByText(SortList[i][1]);
        node.num = SortList[i][3];
        node.hasChild = SortList[i][4];
        nodeList[i] = node;
    }
}
	
function getNodeIndexByText(nodeText)
{
    var index = -1;
    for (var i = 0; i < SortList.length; i++)
    {
        if (SortList[i][0] == nodeText)
        {
           // index = SortList[i][3];
            index = i;
            break;
        }
    }
    return index;
}

function processData()
{
	objContainer = document.getElementById("divTree");
	clearNodes(objContainer);
	objContainer.appendChild(createItem(-1));
}

function getNodeList(parentId)
{
	var nodes = new Array();
	var length = nodeList.length;
	for (var i = 0; i < length; i++)
	{
		var node = nodeList[i];
		if(node.parentId == parentId)
		{
			nodes.push(node);
		}
	}
	return nodes;
}

function createItem(parentId)
{
	var imgSrc = "";
	var imgSrc0 = "";
	var imgSrcOpened = nodeImgList.folderOpened;
	var imgSrcClosed = nodeImgList.folderClosed;
	var imgSrcNode = nodeImgList.node;
	
	var arrNodes = getNodeList(parentId);
	var length = arrNodes.length;
	var eleDIV = createDivElement();
	for (var i = 0; i < length; i ++)
	{
		var eleDIV1 = createDivElement();
		var nodeText = arrNodes[i].text;
		var id = arrNodes[i].id;
		createIndent(eleDIV1);
		if (hasChild(id))
		{
			if (i == (length - 1))
			{
				indentList.push(0);
				imgSrc = nodeImgList.minusBottom;
				imgSrc0 = nodeImgList.plusBottom;
			}
			else
			{
				indentList.push(1);
				imgSrc = nodeImgList.minus;
				imgSrc0 = nodeImgList.plus;
			}
			var node = createImgElementById(id,imgSrcOpened,imgSrcClosed,imgSrc0,imgSrc);
		//	var nodeOpened = createStateImgElement(id,imgSrcOpened);
		//  var nodeCHK = createCheckBox(id,strText,BRANCH,strParentID);
			eleDIV1.appendChild(node);
		//	eleDIV1.appendChild(nodeOpened);
		//  eleDIV1.appendChild(nodeCHK);
			eleDIV1.appendChild(createAElement(id,nodeText));
			
			var divItem = createDivElementById(id);
			divItem.appendChild(createItem(id));
			eleDIV1.appendChild(divItem);
			eleDIV.appendChild(eleDIV1);
		}
		else
		{
			if (i == (length - 1))
			{
				imgSrc = nodeImgList.joinBottom;
			}
			else
			{
				imgSrc = nodeImgList.join;
			}
			eleDIV1.appendChild(createImgElement(imgSrc));
		//  var nodeCHK = createCheckBox(i,strText,LEAF,strParentID);
		//  eleDIV1.appendChild(nodeCHK);
		//	eleDIV1.appendChild(createImgElement(imgSrcNode));
			eleDIV1.appendChild(createAElement(id,nodeText));
			eleDIV.appendChild(eleDIV1);
		}
	}
	indentList.pop();
	return eleDIV;
}

function createAElement(strID,strTEXT)
{
	var eleA = document.createElement("a");
	var onClick = "SelectedIndexChanged(this,'" + strID + "'); ";
	eleA.setAttribute("id","a" + strID);
	eleA.setAttribute("href","javascript:SelectedIndexChanged(this,\"" + strID + "\");");
	eleA.appendChild(document.createTextNode(strTEXT));
	return eleA;
}

function createDivElement()
{
	var eleDIV = document.createElement("div");
	eleDIV.setAttribute("class","dtree");
	eleDIV.setAttribute("className","dtree");
	return eleDIV;
}

function createDivElementById(id)
{
	var eleDIV = document.createElement("div");
	eleDIV.setAttribute("id","div" + id);
	eleDIV.style.display = "none";
	return eleDIV;
}

function createImgElement(imgSrc)
{
	var img = document.createElement("img");
	img.setAttribute("src",imgSrc);
	return img;
}

function createStateImgElement(strID,imgSrc)
{
	var img = document.createElement("img");
	img.setAttribute("src",imgSrc);
	img.setAttribute("id","img" + strID);
	return img;
	
}

function createImgElementById(strID,imgSrcOpened,imgSrcClosed,imgSrc0,imgSrc)
{
	var img = document.createElement("img");
	img.setAttribute("src",imgSrc0);
	img.onclick = function() { SetDisplay(this,strID,imgSrcOpened,imgSrcClosed,imgSrc0,imgSrc);};
	return img;
}

function hasChild(strID)
{
	var flag = false;
	var length = nodeList.length;
	for (var i = 0; i < length; i ++)
	{
		if (nodeList[i].parentId == strID)
		{
			flag = true;
			break;
		}
	}
	return flag;
}

function createIndent(objContainer)
{
	var length = indentList.length;
	var imgSrc = "";
	for (var i = 0;i < length;i++)
	{
		if(indentList[i] == 1)
		{
			imgSrc = nodeImgList.line;
		}
		else
		{
			imgSrc = nodeImgList.empty;
		}
		objContainer.appendChild(createImgElement(imgSrc));
	}
}

function clearNodes(objContainer)
{
	while(objContainer.childNodes.length > 0)
	{
		objContainer.removeChild(objContainer.childNodes[0]);
	}
}

function SetDisplay(obj,strID,strImgOpened,strImgClosed,strImg1,strImg2)
{
	id = "div" + strID;
	if (document.getElementById(id).style.display == "none")
	{
		obj.src = strImg2;
	//	document.getElementById("img"+strID).src = strImgOpened;
		document.getElementById(id).style.display = "block";
	}
	else
	{
		obj.src = strImg1;
	//	document.getElementById("img"+strID).src = strImgClosed;
		document.getElementById(id).style.display = "none";
	}
}

function SelectedIndexChanged(obj,id)
{
	var newSel = document.getElementById("a" + id);
	if (nodeSelected != null)
	{
		var oldSel = document.getElementById("a" + nodeSelected);
		if (oldSel != null)
		{
		    oldSel.setAttribute("className","node");
		    oldSel.setAttribute("class","node");
		}
	}
	nodeSelected = id;
	newSel.setAttribute("className","nodeSel");
	newSel.setAttribute("class","nodeSel");
	var showAddChildMenu = false;
	var node = GetNodeById(id);
	if (node != null)
	{
	    if (node.parentId == -1)
	    {
	        showAddChildMenu = true;
	    }
	}
	ShowMenu(id,showAddChildMenu);
}

function createCheckBox(strID,strText,intType,strParentID)
{
    var chkBox = document.createElement("input");
    var id = "chk";
    id = id + strID;
    chkBox.setAttribute("type","checkbox");
    chkBox.setAttribute("id",id);
    chkBox.setAttribute("className","chkbox01");
    chkBox.setAttribute("class","chkbox01");
    chkBox.setAttribute("value",strID);
    chkBox.setAttribute("text",strText);

⌨️ 快捷键说明

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