📄 tree_level_agent_select.js
字号:
rStrTree += this.root.name;
rStrTree += "</td></tr>";
rStrTree += "</table>";
}
var strTree = "";
var rStrTree = ""; // 根节点对应html代码(分层展示)
/***/
/* 通过每个节点img部分的Id来得到其srcIndex,以用于该节点的展开
modify by yancj 2004-1-5
*/
var fID = 0;
/** 画出节点 */
function drawNode(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='openThisFolder()' 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' style='FONT-SIZE: 12px;'>";
/*if(node.orgname !=""){
strTree += "<a onFocus='this.blur()' id='folderLink' href='"+node.orgname+"' target='"+node.code+"' >"+node.name+"</a>";
}else{
strTree+=node.name;}
*/
strTree+=node.name;
if(node.affirmUrl!=""&&node.canClick=="yes"){
strTree += "<a onFocus='this.blur()' onclick="+node.affirmUrl+" ><img border='0' src='"+node.affirmImage+"' alt='确认' style='cursor:hand'></a>";
}
strTree+="<td> </td>";
} else {
strTree += "<img border='0' src='"+node.fImage+"'>";
strTree += "<img border='0' src='"+node.image+"'>";
strTree += "</td><td valign='middle' >";
//strTree += "<a onFocus='this.blur()' href='"+node.orgname+"' target='"+node.code+"') >"+node.name+"</a>";
strTree += node.name+" "+node.agentId+" ";
strTree += "</td><td valign='middle' >";
if(node.affirmUrl!=""&&node.canClick=="yes"){
strTree += "<a onFocus='this.blur()' onclick="+node.affirmUrl+"><img border='0' src='"+node.affirmImage+"' alt='确认' style='cursor:hand'></a>";
}
}
strTree += "</td></tr>";
strTree += "</table>";
// 对所有符合查询条件的节点
for(i = 0; i < ids.length; i++) {
if (ids[i] == node.id) {
// 将该节点img对应的Id写到数组里去,当页面节点树建立后,对所有符合条件的节点展开
srcids[idx++] = fIDid;
}
}
}
/** 画出节点(全部展开)liuhr */
function drawAllNode(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 += "<img border='0' src='"+img_minus_last+"'></td>";
strTree += "<td><a onFocus='this.blur()' href='#' ><input id='Ck" + node.id + "' type='checkbox' value='1' onclick='selected()'></a></td><td><img border='0' src='"+node.image+"'>";
strTree += "</td><td valign='middle'>";
strTree += "<a onFocus='this.blur()' id='"+node.id+"' onclick='selected()' href='#'>"+node.name+"</a>";
} else {
strTree += "<img border='0' src='"+node.fImage+"'></td>";
strTree += "<td><a onFocus='this.blur()' href='#'><input id='Ck" + node.id + "' type='checkbox' value='checkbox' onclick='selected()' ></a></td><td><img border='0' src='"+node.image+"'>";
strTree += "</td><td valign='middle'>";
strTree += "<a onFocus='this.blur()' id='"+node.id+"' onclick='selected()' href='#' >"+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;
}
}
}
/** 画出节点(分层展示),clickOnFolderLevel事件需要参数,并且实现方式不同
* add by yancj 2004.2.9
*/
function drawNodeLevel(node) {
strTree += "<table border='0' cellspacing='0' cellpadding='0'>";
strTree += "<tr ><td nowrap id='" + node.id + "'>";
var fIDid = fID++;
this.drawFrontLine(node);
if (node.type == "folder")
{
var norgname=node.orgname;
strTree += "<a onClick=\"clickOnFolderLevel('" +node.id+"','"+node.name+"', '"+node.parentId+"','"+node.type+"','"+norgname+"','"+node.code+"')\"";
strTree += " 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 nowrap valign='middle'>";
strTree += "<a onFocus='this.blur()' id='folderLink' href='"+node.orgname+"' target='"+node.code+"' >"+node.name+"</a>";
} else {
strTree += "<img 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 nowrap valign='middle'>";
strTree += "<a onFocus='this.blur()' href='"+node.orgname+"' target='"+node.code+"') >"+node.name+"</a>";
}
strTree += "</td></tr>";
strTree += "</table>";
levelids[lidx++] = fIDid;
// 对所有符合查询条件的节点
for(i = 0; i < ids.length; i++) {
if (ids[i] == node.id) {
// alert(node.id);\
// 将该节点img对应的Id写道数组里去,当页面节点树建立后,对所有符合条件的节点展开
srcids[idx++] = fIDid;
// 展开符合条件的节点的父节点
addParentID(node);
}
}
}
/***/
/** 将父节点的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 += "<div id='d"+node.id+"' style='display:none'>";
}
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 += "</div>";
}
}
/** 画出整个树的节点组
(全部展开)liuhr
*/
function drawAllNodes(node) {
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.drawAllNode(this.nodes[i]); //画出节点
}
this.drawAllNodes(this.nodes[i]); //递归画出整个节点组的节点
}
}
}
/** 画出当前节点的一级子节点组
* 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+7]; //得到层对象
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 openThisFolder(){
var divElement, srcElement,divId;
var srcIndex = event.srcElement.sourceIndex;
srcElement = window.event.srcElement;
divId = "d"+srcElement.parentElement.parentElement.id;
divElement=document.getElementById(divId);
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;
}
}
}
/**
* 展开一级子目录方式: 当点击目录节点的前导"加号|减号"图片时,展开层或收缩层,并用相应的图片替代现有图片,实现动态收缩动作
* add by yancj 2004.4.9
*/
/**
* 展开一级子目录方式: 当点击目录节点的前导"加号|减号"图片时,展开层或收缩层,并用相应的图片替代现有图片,实现动态收缩动作
* 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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -