var zTree; //主树
var zTreeFu; //副树
//主树、副树公用的根节点
var zNodesZhu =[{ id:1715, pId:0, name:"深圳市",isParent:true},];
//主树的设置(主树用来选择A单位)
var setting = {
data: {
simpleData: {
enable: true
}
},
//主树采取异步加载的方式
async: {
enable: true,
url: getRootPath()+"/shareData/getSubGridAndDept",
autoParam:["id","name"],
dataFilter: filter
},
view: {
dblClickExpand: false,
showLine: true,
selectedMulti: false,
fontCss: getFont,
},
callback: {
beforeClick: function(treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj("tree");
if (treeNode.isParent) {//选择父节点-行政区划,展开其子节点
if(treeNode.open == false){
zTree.expandNode(treeNode);
}
else{
alert("请选择行政区划下面的单位!");
}
}else{ //选择子节点-部门
var parent = treeNode.getParentNode(); //获得所选节点的父节点
$("#deptZhuName").text(parent.name + "->" + treeNode.name)
if(parent.getParentNode()){
$("#deptZhuName").text(parent.getParentNode().name + "->" + parent.name + "->" + treeNode.name);
if(parent.getParentNode().getParentNode()){
$("#deptZhuName").text(parent.getParentNode().getParentNode().name + "->" + parent.getParentNode().name + "->" + parent.name + "->" + treeNode.name)
}
}
if($("#zhuId").val() != treeNode.id){ //如果单击自己的节点则不更新副树
$("#fuTreeTitleDiv").show();
updateFuShu(treeNode);
}
$("#zhuId").val(treeNode.id); //设置隐藏域的值(A部门的Id设置到隐藏域中)
}
}
}
};
//副树(选择B单位的树的)的设置
var settingFu = {
data: {
simpleData: {
enable: true
}
},
view: {
dblClickExpand: false,
showLine: true,
selectedMulti: false,
fontCss: getFont,
},
async: {
enable: true,
url: getRootPath()+"/shareData/getSubGridAndDept",
autoParam:["id","name"],
dataType:"json",
otherParam: {}, //展开副树节点需要判断子节点的单位是否是主树上A单位的共享单位。若是A单位的共享单位那么显示红色
dataFilter: filter
},
callback: {
beforeAsync: function(treeId, treeNode){ //在B树异步加载之前的处理函数(这里主要判断是否选择A单位和把A单位的部门id传递给B树的处理函数里
var zhuId = $("#zhuId").val();
if(!zhuId){
alert("请先选择配置单位");
treeNode.open = false;
return false;
}
else{
var zTree = $.fn.zTree.getZTreeObj("treeFu");
zTree.setting.async.otherParam = { "zhuId":zhuId,}; //动态的把主树选择节点的id传递给副树的setting
return true;
}
},
beforeClick : function(treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj("treeFu");
if (!treeNode.isParent) { //副树如果选择部门,展开其子节点(是父节点也就是 行政区划)
$("#fuId").val(treeNode.id); //设置B单位隐藏域的值
var parent = treeNode.getParentNode();
$("#deptFuName").text(parent.name + "->" + treeNode.name)
if(parent.getParentNode()){
$("#deptFuName").text(parent.getParentNode().name + "->" + parent.name + "->" + treeNode.name);
if(parent.getParentNode().getParentNode()){
$("#deptFuName").text(parent.getParentNode().getParentNode().name + "->" + parent.getParentNode().name + "->" + parent.name + "->" + treeNode.name)
}
}
var params = getParams();
if(!params.zhuId){
alert("请选择主配置项");
}
if(!params.fuId){
alert("请选择副配置项");
}
if(params.zhuId && params.zhuId){
var choose = window.prompt("请选择操作的序号:\n\n1,将"+treeNode.name+"的全部数据对A部门共享。\n2,将"+treeNode.name+"的全部数据对A用户屏蔽。\n3,将"+treeNode.name+"的部分数据对A用户共享。\n\n","请选择操作对应的数字填入此框中");
if(choose == "3"){
params.deptBName = treeNode.name;
newForm(params);
}
else if(choose == "1" || choose == "2"){
$.ajax({
async:false,
type: "post",
url: getRootPath()+"/shareData/shareTheDeptAllData",
data:{
"fuId":$("#fuId").val(),
"zhuId":$("#zhuId").val(),
"type":choose,
},
success: function(data, textStatus){
alert(data);
updateNodeParentNode("treeFu",treeNode);
},
});
}else{
alert("选择有误,请重试");
}
}
}
}
}
};
//点击副树上的行政区划时,得到该行政区划下面的所有单位
function getChildren(ids,treeNode){
if(treeNode.type == "dept"){
ids.push(treeNode.id);
}
if (treeNode.isParent){
for(var obj in treeNode.children){
getChildren(ids,treeNode.children[obj]);
}
}
return ids;
}
function getParams(){
var zhuId = $("#zhuId").val();
var fuId = $("#fuId").val();
var params = {
"zhuId":zhuId,
"fuId":fuId,
};
return params;
}
function getPatamsForFu(){
return {"zhuId":$("#zhuId").val()};
}
function zTreeOnCheck(event, treeId, treeNode) {
$("#afterModify").empty();
var nodes = getCheckedNodes();
var str;
for(var i=0; i<nodes.length; i++){
if(nodes[i].isParent == false){
str += '<tr><td>' + nodes[i].name + '</td><td>' + nodes[i].id + '</td></tr>'
}
}
$("#afterModify").append(str);
};
function getCheckedNodes(){
var zTree = $.fn.zTree.getZTreeObj("treeFu");
var nodes = zTree.getCheckedNodes(true);
return nodes;
}
//主树的过滤函数
function filter(treeId, parentNode, childNodes) {
if (!childNodes) return null;
for (var i=0, l=childNodes.length; i<l; i++) {
childNodes[i].name = childNodes[i].name.replace('','');
}
return childNodes;
}
//副树的过滤函数
function filterFu(treeId, parentNode, childNodes) {
var zhuId = $("#zhuId").val();
if(!zhuId){
alert("请选择配置项");
return ;
}
var visibleNodes = getVisibleDeptId(zhuId);
if (!childNodes) return null;
for (var i=0, l=childNodes.length; i<l; i++) {
for(var j=0; j<visibleNodes.length; j++){
if(childNodes[i].id == visibleNodes[j].id){
childNodes[i].checked = true;
}
}
if(zhuId == childNodes[i].id){
childNodes[i].checked = true;
childNodes[i].chkDisabled=true;
}
childNodes[i].name = childNodes[i].name.replace('','');
}
return childNodes;
}
//根据单位的id 得到该单位可以看到的 单位集合(数据库中取)
function getVisibleDeptId(id){
var result;
$.ajax({
async:false,
type: "post",
url: getRootPath()+"/shareData/getVisibleDept",
dataType:"json",
data:{
"id":id,
},
success: function(data, textStatus){
result = data;
}
});
return result;
}
//页面加载前加载的函数
$(document).ready(function(){
$(window.parent.parent.document).find("#content").attr("height",630);
zTree = $("#tree"); //主树
zTreeFu = $("#treeFu"); //副树
$.fn.zTree.init(zTree, setting, zNodesZhu); //给主树添加根节点(深圳市):ZnodesZhu是全局变量的树根节点深圳市
});
/**
* 弹出选择模块的窗口
* @param flag
*/
function newForm(params){
var ywbase_mapPanel = new Ext.Panel({
autoWidth : true,
width : 1000,
height : 540,
border : false,
html:"<iframe src='"+getRootPath()+"/shareData/actionData?zhuId="+params.zhuId+"&fuId=" + params.fuId+ "' style='width:1100px;height:540px;' frameborder='0'/>",
});
myDialog= new Ext.Window({
layout : 'form',
constrain : true,
border : false,
draggable : true,
modal:true,
width : 1100,
height : 570,
title : "请选择 " + params.deptBName + " 的功能模块",
closeAction : 'close',
resizable : false,
items:ywbase_mapPanel,
listeners: {"close":function(){
myDialog.destroy();
var treeObj = $.fn.zTree.getZTreeObj("treeFu"); //重新加载副树选中节点的父节点
var nodes = treeObj.getSelectedNodes();
if (nodes.length>0) {
treeObj.reAsyncChildNodes(nodes[0].getParentNode(), "refresh",true);
}
zTree = $.fn.zTree.getZTreeObj("tree"); //重新加载主树选中节点的父节点
var nodes = zTree.getSelectedNodes();
if (nodes.length>0) {
zTree.reAsyncChildNodes(nodes[0].getParentNode(), "refresh",true);
}
} },
});
// myDialog.setTitle("屏蔽数据 ");
myDialog.setPagePosition(window.screen.availWidth/2-560,2*20);
myDialog.show();
}
//重新加载特定树上特定节点的父节点
function updateNodeParentNode(treeid,treeNode){
var treeObj = $.fn.zTree.getZTreeObj(treeid); //重新加载副树选中节点的父节点
treeObj.reAsyncChildNodes(treeNode.getParentNode(), "refresh",true);
}
function mysubmit(){
// "zhuId":$("#zhuId").val(),
var fuIds = getCheckedNodes();
var idstr = "";
for(var i=0; i<fuIds.length; i++){
// alert(fuIds[i].isParent);
if(fuIds[i].isParent == false)
{
idstr += fuIds[i].id;
idstr += ',';
}
}
var params = {
"zhuId":$("#zhuId").val(),
"fuIds": idstr
}
if(params.zhuId == "" || fuIds == ""){
alert('请配置,选择主单位及其可视单位');
return ;
}
$.ajax({
async:false,
type: "post",
url: getRootPath()+"/shareData/save",
dataType:"json",
data:params,
success: function(data, textStatus){
alert(data.success);
$.fn.zTree.init($("#treeFu"), settingFu, zNodesZhu);//让副树还原
$.fn.zTree.init($("#tree"), setting, zNodesZhu);//让副树还原
$("#afterModify").empty();
$("#beforeModify").empty();
$("#zhuId").val("");
$("#beforeDeptSpan").text("");
$("#afterDeptSpan").text("");
}
});
}
function getFont(treeId, node) {
return node.font ? node.font : {};
}
function setFontCss(treeId, treeNode) {
if(treeNode){
return {color:"red"};
}
};
//主树点击一个单位后,更新副树的数据
function updateFuShu(treeNode){
$("#treeFu").empty();
$.fn.zTree.init(zTreeFu, settingFu, zNodesZhu); //初始化副树
}
//主树动态加载设置
function fillTheTable(data,tbodyId){
$(tbodyId).empty();
var str;
for(var i=0; i<data.length; i++){
str += '<tr><td>' + data[i].name + '</td><td>' + data[i].gridName + '</td></tr>'
}
$(tbodyId).append(str);
}
分享到:
相关推荐
jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码...
jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery....
jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)...
"jquery-3.4.1_sangat1_jquery3.4.1"可能指的是一个特定的项目或者命名约定,"sangat1"可能是项目名或者是个人开发者的名字,而"jquery3.4.1"是jQuery库的另一种写法,它们都指向同一种资源——jQuery 3.4.1。...
JavaScript+jQuery 网页特效设计 jQuery(3.4.1)基础 1 jQuery简介 jQuery优势 jQuery安装 jQuery语法 1、jQuery简介 1.1 学习jQuery之前,需要以下基础知识 HTML CSS JavaScript 1、jQuery简介 1.2 什么是jQuery? ...
jquery-3.3.1.js和jquery-3.3.1.min.js免费下载哈。jquery-3.3.1.js和jquery-3.3.1.min.js免费下载哈。jquery-3.3.1.js和jquery-3.3.1.min.js免费下载哈。jquery-3.3.1.js和jquery-3.3.1.min.js免费下载哈。jquery-...
**jQuery 1.12.4 知识点详解** jQuery 是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等任务。在本压缩包中,我们有两个版本的jQuery核心库文件:`jquery-1.12.4.js` 和 `jquery...
在本文中,我们将深入探讨最新版的jQuery,即`jquery-3.2.1.min.js`,以及该版本中的一些变化。** ### 1. jQuery 3.x 版本概述 jQuery 3.x 系列是继1.x和2.x后的又一重大更新,它主要关注性能优化、API清理以及对...
jquery插件库大全(200个): jqueryQQ表情插件 jquery下拉菜单导航 jquery下拉菜单栏 jquery仿Windows系统选中图标效果 jquery仿京东商品详情页图片放大效果 jquery仿百度新闻焦点轮播 jquery分离布局模版 jquery...
1. 2款jQuery图片自动切换常用广告代码 2. jquery+css五屏焦点图淡入淡出+圆形按钮切换广告图片代码 3. jQuery+CSS实用图片收缩与放大效果插件 4. jquery+div实现同时滑动切换的图文展示特效插件下载 5. ...
**jQuery Multiselect插件详解** 在网页开发中,我们经常需要处理用户的选择操作,特别是当选项较多时,传统的HTML `<select>` 元素显得不够友好。为此,jQuery提供了一个强大的多选下拉列表插件——jQuery ...
《jQuery 1.11.0与jQuery UI 1.10.4:经典组合的深度解析》 在Web开发领域,jQuery与jQuery UI是两个不可或缺的重要库,它们极大地简化了JavaScript的DOM操作和用户界面设计。本篇将深入探讨jQuery 1.11.0与jQuery ...
开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-...
开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery.dataTables.min开发工具 jquery....
前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+...
编写基于Jquery的表单验证插件 Java Web Jquery表单验证 jQuery是一个流行的JavaScript库,可用于在网页上进行各种操作,包括表单验证。 1、将基于Jquery的表单验证的调查问卷分为四个部分:FrontPage.html、write....
### jQuery实战第二版知识点概述 #### 一、书籍基本信息与评价 - **书籍名称**:《jQuery实战第二版》(jQuery in Action, Second Edition) - **作者**:Bear Bibeault 和 Yehuda Katz - **出版商**:MANNING - **...
**jQuery.mmenu与jQuery Mobile:打造最佳侧边菜单** jQuery.mmenu是一款强大的JavaScript插件,专为构建响应式、交互式的侧边菜单而设计。它与jQuery Mobile框架结合使用,可以创造出用户界面(UI)中最具吸引力的...
《jQuery 2.1.1:JavaScript 的强大库》 jQuery 是一个广泛应用于网页开发的JavaScript库,它的出现极大地简化了JavaScript的复杂性,使得网页交互变得更加简单和高效。在这个主题中,我们将深入探讨jQuery 2.1.1...
资源名称:jquery1.7 中文手册 CHM文档(附jquery1.82 chm手册)内容简介:因国内jquery中文手册更新太慢了,等了一段时间实在等不下去了,干脆自己动手做一个丰衣足食,时刻更新. 最后感谢Shawphy提供1.4.1版,jehn提供...