/** * 政府云平台组织区域关系js.
* @author wangfs */ var fun = { /*1.保存组织与区域关系**/ org_ok:function(){ $(document).on('click','#org_ok',function(){ //获取左侧选中的组织 var checkedOrgId = orgTree.getCheckedNodesId(true); if(checkedOrgId == null || checkedOrgId == '' || checkedOrgId ==undefined){ swal({title:"提示",text:'请选择左侧要分配权限的[组织]!',type:"warning",timer:3000,allowOutsideClick:true}); return false; } //获取右侧区域选中的“块”id 集合 var checkedBlockIds = areaTree.getCheckedNodesIdForBlock(true); // if(checkedBlockIds == null || checkedBlockIds == '' || checkedBlockIds ==undefined){ // swal({title:"提示",text:'右侧[区域]至少选择一个!',type:"warning",timer:3000,allowOutsideClick:true}); // return false; // } var req= { sysCode:sysComm.sysCode, orgId:checkedOrgId[0], areaBlockIds:checkedBlockIds }; //保存组织区域关系 sysAjax({ method: "post", url: dataUrl.util.batchSaveOrgAreaRelation(), data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType:'json', success: function(res){ if(res.code == '8888'){ if(res.data){ swal({title:"提示",text:'保存成功!',type:"success",timer:3000,allowOutsideClick:true}); }else{ swal({title:"提示",text:'保存失败!',type:"warning",timer:3000,allowOutsideClick:true}); return false; } }else{ swal({title:"提示",text:res.errMsg,type:"warning",timer:3000,allowOutsideClick:true}); return false; } } }); }); } }; // 组织构建树 var orgTree = { //初始化树 initTree: function () { $.fn.zTree.init($("#org_tree"), orgTree.setting, orgTree.getTreeData()); //展开全部 var treeObj = $.fn.zTree.getZTreeObj("org_tree"); treeObj.expandAll(true); }, setting: { callback: { onCheck:zTreeOnCheck }, view: { selectedMulti: false //静止多选 }, check: { enable: true, //显示多选框 chkStyle: "radio", radioType:"all" }, data: { simpleData: { enable: true, //使用简单模式加载 idKey: "id", pIdKey: "pId", rootPId: 0 } }, edit: { enable: false } }, //添加节点 addNodes: function (newNodes) { var treeObj = $.fn.zTree.getZTreeObj("org_tree"); newNodes = treeObj.addNodes(null, newNodes); }, //勾选 或 取消勾选 全部节点 checkAllNodes: function (checked) { var treeObj = $.fn.zTree.getZTreeObj("org_tree"); treeObj.checkAllNodes(checked); }, //更新节点 updateNodes: function (treeNode, checkTypeFlag) { var treeObj = $.fn.zTree.getZTreeObj("org_tree"); treeObj.updateNode(treeNode); }, //根据id集合更新节点变为选中 updateNodesForChecked: function (ids) { var nodes = orgTree.getNodesByIds(ids); for (var i = 0; i < ids.length; i++) { var node = nodes[i]; if(node==null){ continue; } node.checked = true; orgTree.updateNodes(node); } }, //删除节点 removeNode: function (id) { var treeObj = $.fn.zTree.getZTreeObj("org_tree"); var treeNode = orgTree.getNodeById(id); treeObj.removeNode(treeNode); }, //通过id获取某个节点 getNodeById: function (id) { var treeObj = $.fn.zTree.getZTreeObj("org_tree"); var node = treeObj.getNodeByParam("id", id, null); return node; }, //通过id集合获取节点集合 getNodesByIds: function (ids) { var nodes = []; for (var i = 0; i < ids.length; i++) { nodes[i] = orgTree.getNodeById(ids[i]); } return nodes; }, //获取输入框被勾选 或 未勾选的节点ID集合 getCheckedNodesId: function (checked) { var ids = []; var treeObj = $.fn.zTree.getZTreeObj("org_tree"); var nodes = treeObj.getCheckedNodes(checked); for (var i = 0; i < nodes.length; i++) { ids[i] = nodes[i].id } return ids; }, //获取输入框被勾选 或 未勾选的节点name集合 getCheckedNodesName: function (checked) { var names= ""; var treeObj = $.fn.zTree.getZTreeObj("org_tree"); var nodes = treeObj.getCheckedNodes(true); for (var i = 0; i < nodes.length; i++) { names = names+","+nodes[i].name; } return names; }, //获取选中的节点集合 getSelectedNodes: function () { var treeObj = $.fn.zTree.getZTreeObj("org_tree"); var nodes = treeObj.getSelectedNodes(); return nodes; }, //获取树 getTreeData:function() { var sysCode=sessionStorage.getItem("sysCode"); var zNodes = []; var req= { baseRequest:{ pageNum:1, pageSize:0 }, sysCode:sysCode }; sysAjax({ method:'POST', url: dataUrl.util.getOrgTreeBySysCode(), data: JSON.stringify(req), dataType:'json', async:false, success: function(res){ if(isError(res)){ return false; } var data=""; zNodes=res.data } }); //增加一个公告根节点 //zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; return zNodes; } } // 区域构建树 var areaTree = { //初始化树 initTree: function () { $.fn.zTree.init($("#area_tree"), areaTree.setting, areaTree.getTreeData()); //展开全部 var treeObj = $.fn.zTree.getZTreeObj("area_tree"); treeObj.expandAll(false); areaTree.selectedNodes(0); }, setting: { view: { selectedMulti: false //静止多选 }, check: { enable: true, //显示多选框 chkStyle: "checkbox" }, data: { simpleData: { enable: true, //使用简单模式加载 idKey: "id", pIdKey: "pId", rootPId: 0 } }, edit: { enable: false } }, //展开某个节点 selectedNodes:function(id){ var treeObj = $.fn.zTree.getZTreeObj("area_tree"); var nodes = treeObj.getNodesByParam("id", id, null); if(nodes.length>0) { treeObj.expandNode(nodes[0], true, false, true); } }, //添加节点 addNodes: function (newNodes) { var treeObj = $.fn.zTree.getZTreeObj("area_tree"); newNodes = treeObj.addNodes(null, newNodes); }, //勾选 或 取消勾选 全部节点 checkAllNodes: function (checked) { var treeObj = $.fn.zTree.getZTreeObj("area_tree"); treeObj.checkAllNodes(checked); }, //更新节点 updateNodes: function (treeNode, checkTypeFlag) { var treeObj = $.fn.zTree.getZTreeObj("area_tree"); treeObj.updateNode(treeNode); }, //根据id集合更新节点变为选中 updateNodesForChecked: function (ids) { var nodes = areaTree.getNodesByIds(ids); for (var i = 0; i < ids.length; i++) { var node = nodes[i]; if(node==null){ continue; } node.checked = true; areaTree.updateNodes(node); } }, //删除节点 removeNode: function (id) { var treeObj = $.fn.zTree.getZTreeObj("area_tree"); var treeNode = areaTree.getNodeById(id); treeObj.removeNode(treeNode); }, //通过id获取某个节点 getNodeById: function (id) { var treeObj = $.fn.zTree.getZTreeObj("area_tree"); var node = treeObj.getNodeByParam("id", id, null); return node; }, //通过id集合获取节点集合 getNodesByIds: function (ids) { var nodes = []; for (var i = 0; i < ids.length; i++) { nodes[i] = areaTree.getNodeById(ids[i]); } return nodes; }, //获取输入框被勾选 或 未勾选的节点ID集合 getCheckedNodesId: function (checked) { var ids = []; var treeObj = $.fn.zTree.getZTreeObj("area_tree"); var nodes = treeObj.getCheckedNodes(true); for (var i = 0; i < nodes.length; i++) { ids[i] = nodes[i].id } return ids; }, //获取输入框被勾选 或 未勾选的块节点ID集合 getCheckedNodesIdForBlock: function (checked) { var ids = []; var treeObj = $.fn.zTree.getZTreeObj("area_tree"); var nodes = treeObj.getCheckedNodes(checked); index =0; for (var i = 0; i < nodes.length; i++) { if(null != nodes[i].areaType && nodes[i].areaType ==40){ ids[index++] ={areaId:nodes[i].id,areaType:nodes[i].areaType,orgAreaType:2} ; } } return ids; }, //获取输入框被勾选 或 未勾选的节点name集合 getCheckedNodesName: function (checked) { var names= ""; var treeObj = $.fn.zTree.getZTreeObj("area_tree"); var nodes = treeObj.getCheckedNodes(true); for (var i = 0; i < nodes.length; i++) { names = names+","+nodes[i].name; } return names; }, //获取选中的节点集合 getSelectedNodes: function () { var treeObj = $.fn.zTree.getZTreeObj("area_tree"); var nodes = treeObj.getSelectedNodes(); return nodes; }, //获取树 getTreeData:function() { var sysCode=sessionStorage.getItem("sysCode"); var zNodes = []; var req= { baseRequest:{ pageNum:1, pageSize:0 }, sysCode:sysCode }; sysAjax({ method:'POST', url: dataUrl.util.getAreatree(), data: JSON.stringify(req), dataType:'json', async:false, success: function(res){ if(isError(res)){ return false; } $.each(res.data, function(index,rows) { if( rows.areaType != null && rows.areaType !='' && rows.areaType !=60 && rows.areaType !=50) { var data={id:rows.id,pId:rows.parentId,name:rows.areaName,areaType:rows.areaType}; zNodes[index] =data; } }); } }); //增加一个公告根节点 //zNodes[zNodes.length] = {name:'根节点',id:0,checked:true}; return zNodes; } } $(function(){ orgTree.initTree(); //初始化组织tree areaTree.initTree(); //初始化区域tree fun.org_ok(); //保存 }); /** * 处理错误信息 * @param {Object} res */ function isError(res){ if(res == null || res == undefined){ return true; } if(res.code!='8888'){ var errorPop = new Pop({ header:'错误提示', content:$(''+res.msg+''), buttons:[{ type:'popOk', text:'确定', callback:function(){ errorPop.close(); } }] }); return true; }else{ return false; } } /** * 左侧单选按钮点击选中右侧.
* @param {Object} event * @param {Object} treeId * @param {Object} treeNode */ function zTreeOnCheck (event, treeId, treeNode) { // alert(treeNode.id + ", " + treeNode.name + "," + treeNode.checked); var sysCode=sessionStorage.getItem("sysCode"); var zNodes = []; var req= { sysCode:sysCode, orgId:treeNode.id, }; sysAjax({ method:'POST', url: dataUrl.util.queryAreaIdsByorgId(), data: JSON.stringify(req), dataType:'json', async:false, success: function(res){ if(isError(res)){ return false; } areaTree.checkAllNodes(false); areaTree.updateNodesForChecked(res.data); } }); }