首先创建了一个树,有一个对树所有复选框清空的方法。
- //初始化机构树
- var tree;
- var hasSearchResult=false;
- function initDeptFirstNode()
- {
- //在加载树的时候初始化自动搜索控件
- initAutoComplete();
- var hasloadNodeHashTable=new Hashtable();
- Tree = Ext.tree;
- tree = new Tree.TreePanel({
- el:'div_center1_left_carimonitor1_1',
- autoScroll:true,
- height:'100%',
- animate:false,
- border :false
- });
- var root = new Tree.TreeNode({
- checked:false,
- expanded:true,
- icon:"images/menu/jigou2.gif"
- });
- OrgTreeManage.getOrgTreeRoot(function(value){
- //alert("从登录信息中得到的机构代号为:"+value.c_orgno);
- root.setText(value.c_orgshortname);
- root.id=value.c_orgno;
- });
- tree.setRootNode(root);
- tree.render();
- //单击的时候给地图端送数据,加载机构信息
- tree.on("click",function(node)
- {
- });
- //双击拓展树节点
- tree.on("dblclick",function(node)
- {
- node.getUI().checkbox.checked=false;
- if(!hasloadNodeHashTable.contains(node.id)){
- hasloadNodeHashTable.add(node.id,node);
- OrgTreeManage.getOrgTreeLeaf(node.id,function(value){
- for(var i=0;i<value.length;i++){
- var newnode=new Ext.tree.TreeNode({
- id:value[i].c_orgno,
- expanded:true,
- checked:false,
- text:value[i].c_orgshortname,
- icon:"images/menu/jigou2.gif"
- });
- node.appendChild(newnode);
- }
- });
- }
- });
- //树的勾选操作
- //这里执行两边checkchange事件来检查节点操作,移除未勾选的节点
- var nodeArr=new Hashtable();
- tree.on('checkchange', function(node, checked) {
- //当所点击节点被选中的时候
- if(hasSearchResult==true){
- clearMapView();
- }
- var nodeslength=0;
- if(node.getUI().checkbox.checked){
- //添加该节点的显示
- nodeArr.add(node.id,node);
- nodeslength=node.childNodes.length;
- OrgInfoManage.getOrgDetails(node.id,function(value){
- var Institute = new Object();
- Institute["index"]=value.c_orgno;
- Institute["lon"]=value.c_jing;
- Institute["lat"]=value.c_wei;
- Institute["institutename"]=value.c_orgname;
- Institute["c_orgshortname"]=value.c_orgshortname;
- Institute["c_preorgshortname"]=value.c_preorgshortname;
- Institute["c_phone"]=value.c_phone;
- Institute["c_mail"]=value.c_mail;
- if(nodeslength==0){
- AddMarkerToInstitute(Institute,true);
- }else{
- AddMarkerToInstitute(Institute,false);
- var o =new OpenLayers.LonLat(112.987,28.1899);
- map.setCenter(o,5);
- }
- });
- for(var i=0;i<nodeslength;i++){
- //将节点中所有子节点设置为true;
- node.childNodes[i].getUI().checkbox.checked=true;
- nodeArr.add(node.childNodes[i].id,node)
- //添加所有子节点的显示
- OrgInfoManage.getOrgDetails(node.childNodes[i].id,function(value){
- var Institute = new Object();
- Institute["index"]=value.c_orgno;
- Institute["lon"]=value.c_jing;
- Institute["lat"]=value.c_wei;
- Institute["institutename"]=value.c_orgname;
- Institute["c_orgshortname"]=value.c_orgshortname;
- Institute["c_preorgshortname"]=value.c_preorgshortname;
- Institute["c_phone"]=value.c_phone;
- Institute["c_mail"]=value.c_mail;
- if(nodeslength>1){
- AddMarkerToInstitute(Institute,false);
- }
- if(nodeslength==1){
- AddMarkerToInstitute(Institute,true);
- }
- });
- }
- }else{
- //当选中节点取消选中的时候
- nodeslength=node.childNodes.length;
- //这里记录子节点的数目。如果点选了分支节点,并且有多个分支节点的时候,将地图缩放到默认的状态
- nodeArr.remove(node.id);
- OrgInfoManage.getOrgDetails(node.id,function(value){
- var instituteid;
- instituteid=value.c_orgno;
- try{
- RemoveMarkerFromInstitute(instituteid);
- }catch(e){}
- });
- for(var i=0;i<nodeslength;i++){
- //将节点中所有子节点设置为false;
- node.childNodes[i].getUI().checkbox.checked=false;
- nodeArr.remove(node.childNodes[i].id)
- //取消子节点的显示
- OrgInfoManage.getOrgDetails(node.childNodes[i].id,function(value){
- var instituteid;
- instituteid=value.c_orgno;
- try{
- RemoveMarkerFromInstitute(instituteid);
- }catch(e){}
- });
- }
- }
- }, tree);
- tree.on("contextmenu",function(node,e){
- var ctxMenu = new Ext.menu.Menu({
- items: [
- {
- id:'id_orgDetails',
- handler:function(){orgDetails(node);},
- text: "查看该机构详细信息"
- },
- {
- id:'id_orgIncome',
- handler:function(){orgIncome(node);},
- text: "查看该机构营收情况"
- }
- ]
- });
- ctxMenu.showAt(e.getXY());
- });
- function orgDetails(node){
- openWindow("manage/marketing/orgInfoManage/details.html?id="+node.id+"",'机构详情',450,170);
- }
- function orgIncome(node){
- openWindow("manage/marketing/orgBranchIncomeManage/main.html?id="+node.id+"",'机构收入',600,480);
- }
- }
- //清空所有复选框
- function clearChildNodeChecked(node){
- if(node.childNodes.length!=0){
- for(var i=0;i<node.childNodes.length;i++){
- node.childNodes[i].getUI().checkbox.checked=false;
- clearChildNodeChecked(node.childNodes[i]);
- }
- }
- }