📄 treeview.js
字号:
}
}
if (resNodes.length <= 0){
alert("没有找到匹配的节点!");
}
return resNodes;
}
//根据节点关键字模糊查询
this.searcNodesByName = function (inName){
if (inName == null || inName == ""){
alert("请输入要匹配的字符串!");
return ;
}
var resNodes = new Array();
for (var i=0; i<this.nodeList.length; i++){
if (this.nodeList[i].name.Trim().indexOf(inName) >= 0){
resNodes.length++;
resNodes[resNodes.length-1] = this.nodeList[i];
}
}
if (resNodes.length <= 0){
alert("没有找到匹配的节点!");
}
return resNodes;
}
//根据节点关键字检索节点
this.getNodeByName = function (inName){
for (var i=0; i<this.nodeList.length; i++){
if (this.nodeList[i].getName() == inName){
return this.nodeList[i];
}
}
return null;
}
//根据节点索引检索节点
this.getNodeById = function (inId){
if (inId >= 0 && inId < this.nodeList.length){
return this.nodeList[inId];
}
return null;
}
//设置当前选中树节点
this.setTreeNodeID = function (in_id){
document.getElementById(this.name+"_thisTreeNodeID").value = in_id;
document.getElementById("thisTreeName").value = this.name;
}
this.getSelectNode = function (){
if (this.getTreeNodeID() >= 0 && this.getTreeNodeID() < this.nodeList.length){
return this.nodeList[this.getTreeNodeID()];
}
else{
alert("没有选中的节点!");
return null;
}
}
this.getTreeNodeID = function (){
return document.getElementById(this.name+"_thisTreeNodeID").value;
}
//得到当前选中的树节点ID
this.getTreeNodePid = function (){
var reStr = this.nodeList[this.getTreeNodeID()].pid;
return reStr;
}
//得到当前选中的树节点的附属参数
this.getTreeNodePara = function (){
var reStr = this.nodeList[this.getTreeNodeID()].paras;
return reStr;
}
//得到当前选中的树节点的名称
this.getTreeNodeName = function (){
var reStr = this.nodeList[this.getTreeNodeID()].name;
return reStr;
}
//得到当前选中的树节点的显示内容
this.getTreeNodeShowStr = function (){
var reStr = this.nodeList[this.getTreeNodeID()].showStr;
return reStr;
}
//得到当前选中的树节点的JS动作名
this.getTreeNodeJsFun = function (){
var reStr = this.nodeList[this.getTreeNodeID()].jsfun;
return reStr;
}
//根据附属参数名得到当前选中的树节点的对应附属参数值
this.getTreeOneParaByName = function (in_paraName){
var reStr = this.getTreeNodePara();
if (reStr != null && reStr != ""){
var temp1 = reStr;
var a = temp1.split("&");
for(var i=0;i<a.length;i++){
var t = a[i].split("=");
if (t[0] == in_paraName){
return t[1];
}
}
}
}
/*****用户使用JS函数结束*****/
}
function BSNode(id, pid, deepID, treeName, name, showStr, jsfun, openjs, paras, isOpen, isDoOpen, rmAreaIndex){
this.id=id;//节点索引。
this.pid=pid;//父节点索引,为-1表示是根。
this.deepID=deepID;//节点深度。
this.showStr=showStr||"BSNode_"+this.id;//节点显示的文字内容
this.jsfun=jsfun||""//该节点点击的JS操作
this.openjs=openjs||""//即点即查,该节点点击展开的JS操作。
this.treeName=treeName||"BSTreeView";//树对象实例名。
this.name=name?name:"BSNode";//节点名。
this.paras=paras||"";//节点其他参数。
this.childList = new Array();
this.isOpen = isOpen||false;
this.isDoOpen = isDoOpen||false;
this.openImg = "open.gif";
this.closeImg = "close.gif";
this.nodeImg = "jsdoc.gif";
this.rmAreaIndex = rmAreaIndex;
this.body = null;
this.isDelete = false;
this.title = "";//节点的title
/*****get/set方法开始*****/
this.getId = function (){
return this.id;
}
this.setId = function (inId){
this.id = inId;
}
this.getName = function (){
return this.name;
}
this.setName = function (inName){
this.name = inName;
}
this.setBody = function (inBody){
this.body = inBody;
}
this.getBody = function (){
return this.body;
}
//更新节点显示的文字
this.setShowStr = function (inStr){
this.showStr = inStr;
if (document.getElementById(this.treeName+"_"+this.id)!= null){
document.getElementById(this.treeName+"_"+this.id).innerHTML = this.showStr;
}
}
this.getShowStr = function (){
return this.showStr;
}
this.setTitle = function(inTitle){
this.title = inTitle;
}
this.getTitle = function(){
return this.title;
}
this.setRmAreaIndex = function(inIndex){
this.rmAreaIndex = inIndex;
}
//得到右键菜单
this.getRmArea = function(){
var tempTree = eval(this.treeName);
if ((tempTree.rmObj!=null && tempTree.itemAreaList.length>0) && (this.rmAreaIndex>=0 && this.rmAreaIndex<tempTree.itemAreaList.length)){
return tempTree.itemAreaList[this.rmAreaIndex];
}
return null;
}
this.openFlag = function(){
return this.isOpen;
}
this.getDeep = function(){
return this.deepID;
}
/*****get/set方法结束*****/
/*****节点操作方法开始*****/
this.addChildItem = function(id){
this.childList.length++;
this.childList[this.childList.length - 1] = id;
}
//更新一个节点
this.updateNode = function (inNode){
var tempTree = eval(this.treeName);
return tempTree.updateNode(this.id, inNode);
}
//添加子节点
this.addNode = function(name, showStr, jsfun, openjs, paras, isOpen, isDoOpen, rmAreaIndex, openImg, closeImg, nodeImg){
var tempTree = eval(this.treeName);
return tempTree.addNode(this.id, (this.deepID+1), name, showStr, jsfun, openjs, paras, isOpen, isDoOpen, rmAreaIndex, openImg, closeImg, nodeImg);
}
this.addOneNode = function(inId){
var tempTree = eval(this.treeName);
return tempTree.addOneNode(this.id, tempTree.getNodeById(inId));
}
this.deleteOneChildNode = function(){
var tempTree = eval(this.treeName);
var p=-1;
if (this.pid < 0){
//单个根节点(暂不提供)
}
else{
var p_node = tempTree.nodeList[this.pid];
for (var i=0; i<p_node.childList.length; i++){
//得到孩子位置
if (p_node.childList[i] == this.id){
p = i;
}
if (p >= 0 && i <= p_node.childList.length-2){
p_node.childList[i] = p_node.childList[i+1];
}
}
if (p >= 0){
p_node.childList.length--;
}
}
}
//删除本节点
this.remove = function(){
var tempTree = eval(this.treeName);
tempTree.removeNode(this.id);
}
//激活该节点
this.setNodeActive = function (){
var tempTree = eval(this.treeName);
tempTree.setNodeActiveById(this.id);
}
//打开/关闭本节点
this.expand = function (){
var tempTree = eval(this.treeName);
tempTree.expandById(this.id);
}
//打开本节点
this.open = function (){
if (!this.isOpen){
var tempTree = eval(this.treeName);
tempTree.openById(this.id);
}
}
//关闭本节点
this.close = function (){
if (this.isOpen){
var tempTree = eval(this.treeName);
tempTree.closeById(this.id);
}
}
//删除本节点的所有孩子节点
this.removeAllChildren = function(){
var tempTree = eval(this.treeName);
var t_length = this.childList.length
for (var i=0; i<t_length; i++){
tempTree.removeNode(this.childList[0]);
}
this.setNodeActive();
}
/*****节点操作方法开始*****/
/*****亲属节点开始*****/
//得到上一个兄弟
this.prev = function (){
var tempTree = eval(this.treeName);
var p_node = tempTree.nodeList[this.pid];
for (var i=0; i<p_node.childList.length; i++){
if (p_node.childList[i] == this.id && i>0){
return tempTree.nodeList[p_node.childList[i-1]];
}
}
return null;
}
//得到下一个兄弟
this.next = function (){
var tempTree = eval(this.treeName);
var p_node = tempTree.nodeList[this.pid];
for (var i=0; i<p_node.childList.length; i++){
if (p_node.childList[i] == this.id && i<p_node.childList.length-1){
return tempTree.nodeList[p_node.childList[i+1]];
}
}
return null;
}
//得到第一个兄弟
this.first = function (){
var tempTree = eval(this.treeName);
var p_node = tempTree.nodeList[this.pid];
return tempTree.nodeList[p_node.childList[0]];
}
//得到最后一个兄弟
this.last = function (){
var tempTree = eval(this.treeName);
var p_node = tempTree.nodeList[this.pid];
return tempTree.nodeList[p_node.childList[p_node.childList.length-1]];
}
//得到父亲
this.parent = function (){
var tempTree = eval(this.treeName);
if (this.pid >= 0){
return tempTree.nodeList[this.pid];
}
return null;
}
//得到孩子节点集合
this.children = function(){
var tempTree = eval(this.treeName);
var tempList = new Array(this.childList.length);
for (var i=0; i<this.childList.length; i++){
tempList[i] = tempTree.nodeList[this.childList[i]];
}
return tempList;
}
/*****亲属节点结束*****/
/*****用户使用JS函数开始*****/
//根据附属参数名得到本节点的对应附属参数值
this.getTreeOneParaByName = function (paraName){
if (this.paras != null && this.paras != ""){
var temp1 = this.paras;
var a = temp1.split("&");
for(var i=0;i<a.length;i++){
var t = a[i].split("=");
if (t[0] == paraName){
return t[1];
}
}
}
}
//根据节点显示的内容模糊查询子节点
this.searcNodesByText = function (inText){
if (inText == null || inText == ""){
alert("请输入要匹配的字符串!");
return ;
}
var tempTree = eval(this.treeName);
var resNodes = new Array();
this.searchChildrenNodeByText(resNodes, inText);
if (resNodes.length <= 0){
alert("没有找到匹配的节点!");
}
return resNodes;
}
//根据节点的关键字模糊查询
this.searcNodesByName = function (inName){
if (inName == null || inName == ""){
alert("请输入要匹配的字符串!");
return ;
}
var tempTree = eval(this.treeName);
var resNodes = new Array();
this.searchChildrenNodeByName(resNodes, inName);
if (resNodes.length <= 0){
alert("没有找到匹配的节点!");
}
return resNodes;
}
/*****用户使用JS函数结束*****/
//查找匹配的孩子节点(私有)
this.searchChildrenNodeByName = function(resNodes, inName){
var tempTree = eval(this.treeName);
for (var i=0; i<this.childList.length; i++){
var thisNode = tempTree.nodeList[this.childList[i]];
if (thisNode.name.Trim().indexOf(inName) >= 0){
resNodes.length++;
resNodes[resNodes.length-1] = thisNode;
}
//查找孩子的孩子
if (thisNode.childList.length > 0){
thisNode.searchChildrenNodeByName(resNodes, inName);
}
}
}
//查找匹配的孩子节点(私有)
this.searchChildrenNodeByText = function(resNodes, inText){
var tempTree = eval(this.treeName);
for (var i=0; i<this.childList.length; i++){
var thisNode = tempTree.nodeList[this.childList[i]];
if (thisNode.showStr.Trim().indexOf(inText) >= 0){
resNodes.length++;
resNodes[resNodes.length-1] = thisNode;
}
//查找孩子的孩子
if (thisNode.childList.length > 0){
thisNode.searchChildrenNodeByText(resNodes, inText);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -