jquery

 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);
}

【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值