?? 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 + -