var dimensions = 20;
var margins = 5;
/*
依赖jquery.js,jquery.gridster.min.js,
*/
function GridsterWd(gridster, json) {
var sybjCtrl = this;
this.gridster = gridster;
var THIS=this;
// try{
// gridster.$el.css({zIndex:parseInt(wd.topWindow.wd.base.applyIframeElement.parentNode.style.zIndex)+1});
// }catch(e){
// console.log(e);
// }
gridster.add_widget2=function(id,lb,initurl, size_x, size_y, col, row, max_size, min_size){
//console.log(arguments);
var html="
"
+""
+""
+";"
return gridster.add_widget.call(gridster,html,size_x, size_y, col, row, max_size, min_size);
}
//
this.jsondata = json||"[]";
this.isGf = (EditType == '2') ? 1 : 0;
this.ajaxUrl = (this.isGf == 0) ? "/desktop?" : "/desktopDef?"; // ajax服务地址 // "geXingHua.do?" : " geXingHuaGf.do?"。Lin
// 如
// geXingHua.do?
this.edit_en = null; // 是否开启编辑状态
this.containerForLoad = "ContainerForLoad"; // 类名常量 li标签内定位加载整个部件的div
this.imgheader = "img-header"; // 类名常量 li标签内定位绑定刷新事件的div
this.flushIconStyle = "background:url(/nndx/image/icon-party.png) no-repeat;height:31px;width:38px;margin-left:3px;margin-top:2px"; // 刷新按钮的样式
this.setAjaxUrl = function(ajaxUrl) {
this.ajaxUrl = ajaxUrl;
};
this.funcStr = [ "initGridster", "myserialize", "saveedit", "userEdit",
"ajax_userEdit", "ajax_getBuJianCode", "yesedit", "noedit",
"closediv", "getParams", "rollBackChangeAndExit", "flushBj", "",
"", "", "" ];
this.initGridster = function() {
// 处理返回的数据 data("code":"div...", "列":"列值", "行":"行值", "高":"高值",
// "宽":"宽值");
// 处理:1.首先转化成json对象,对json对象数组进行遍历
var divarray = new Array();
this.gridster.remove_all_widgets();
this.isEditing = false;
// console.info("还原使用json : " + json==null?'有':'无');
var objs = JSON.parse(this.jsondata);
var usewidth=Math.max($(wd.topWindow).outerWidth(true),1025)/(dimensions+margins+margins);
var cols=[0];
var rows=[0];
var group=[];
var sgroup=[{col:1,row:1}];
var egroup=[];
var avgroup=sgroup;
var THIS=this;
function inIectangle(g,ggg){
var A=[];
A[0]=new Array(g.col,g.row);
A[1]=new Array(g.col+g.size_x,g.row+g.size_y);
for(var i=0;ib.col){
// if(a.row>=b.row){
// return 1;
// }else{
// return -1;
// }
// }
if(a.row>=b.row){
if(a.col>b.col+b.size_x){
if(b.row<=a.row){
return 1;
}else{
return -1;
}
}else{
if(b.row",el.size_x, el.size_y, el.col, el.row).attr({id:el.id,bjlb:el.bjlb,initurl:el.initurl});
});
gridster.$el.on("dblclick",".grsymask",function(){
var widget=$(this).parents("[initurl]")
// console.log(widget);
var data=SYBJCTRL.getParams("serviceType=20&sybjsyId="+widget.attr("id"));
//console.log(data)
gridster.resize_widget(widget,calWidthAndHeight(data.size_x),calWidthAndHeight(data.size_y))
return false;
})
// try{
// var children=gridster.$el.children()
// var maxwidth=0;
//
// for(var i=0;i"
+ data['newMc'] + "");
}
}
});
return d;
};
this.selectMB = function(gfmbymid) {
this.ajax_Mb("serviceType=9&select=" + gfmbymid);
};
this.exitMB = function(exit) {
var saveStr = this.myserialize();
this.ajax_Mb("serviceType=10&exit=" + exit,{json:saveStr} );
// SYBJCTRL.SaveRollBackAndExit();
this.changeRootTitle();
};
this.addMB = function() {
var name = prompt("新模板名称", "未定义");
if (name != null && name != "") {
this.ajax_Mb("serviceType=6&addMB=" + name);
}
};
this.saveAsMB = function() {
// var name = prompt("另存为模板名称", "未定义");
// if (name != null && name != "") {
// var bjjson = this.myserialize();
// this.ajax_Mb("serviceType=12&newMc=" + name ,{bjjson:bjjson});
// }
var mycallback=(function(t){
var THIS=t;
return function(data){
var bjjson = THIS.myserialize();
/* 改,增加 描述 字段值
THIS.ajax_Mb("serviceType=12",{newMc:data.mc,grsymbh:data.grsymbh,bjjson:bjjson});
*/ THIS.ajax_Mb("serviceType=12",
{newMc:data.mc,grsymbh:data.grsymbh,ms:data.ms,bjjson:bjjson});
}
})(this)
wd.display.confirm({title:"另存为新模板",url:"/page/desktopDefAdd.jsp?mc=未定义",width:500,callback:mycallback});
};
this.delMB = function() {
this.ajax_Mb("serviceType=7&delMB=1");
};
this.resetMB = function() {
if (confirm("重置操作不可恢复")) {
this.ajax_Mb("serviceType=11&reset=1");
}
};
this.winFromBjId = "";
// 事件控制 主要为关闭弹窗后的回调方法提供接口,实现调用弹窗的首页部件的刷新
this.EventCtrl = {
setBjId : function(bjid) { // 设入调用弹窗的具体部件Id
this.winFromBjId = bjid;
// console.info("EventCtrl.setBjId: 值为"+this.winFromBjId);
},
FlushBj : function() {
var winFromBjId = this.winFromBjId;
sybjCtrl.flushBj(winFromBjId);
}
};
////////////////////////////////////////////////
this.areaInArea=function(A,B){
var x_s1=A[0][0];
var x_e1=A[1][0];
var x_s2=B[0][0];
var x_e2=B[1][0];
var y_s1=A[0][1];
var y_e1=A[1][1];
var y_s2=B[0][1];
var y_e2=B[1][1];
var x_overlap=!(x_e1 <= x_s2 || x_e2 <= x_s1);
var y_overlap=!(y_e1 <= y_s2 || y_e2 <= y_s1);
return x_overlap&&y_overlap;
}
return this;
};
//left=5+(x-1)(20+5+5)
//x=(left-5)/(20+5+5)+1
function calLeftAndTop(v) {
v=parseInt(v);
return Math.max( parseInt((v-margins)/(dimensions+margins+margins)+1),1);
// var a = 0;
// var b = 0;
// if (v <= 0 || v <= dimensions / 2)
// return 1;
// for (var j = 0; j < 100; j++) {
// b = dimensions * (j - 1) + j * margins * 2
//
// if (a <= v && b >= v) {
// if (j == 0) {
// if ((b + a) / 2 > v) {
// return 1;
// } else {
// return 1;
// }
// } else {
// if ((b + a) / 2 > v) {
// return j - 1;
// } else {
// return j;
// }
// }
// }
// a = b;
// }
// return 100;
}
//width=20+(x-1)(20+5+5)
//x=(width-20)/(20+5+5)+1
function calWidthAndHeight(v) {
v=parseInt(v);
return Math.max( parseInt((v-dimensions)/(dimensions+margins+margins)+1),1);
// var a = 0;
// var b = 0;
// if (v <= 0 || v <= dimensions / 2)
// return 1;
// for (var j = 0; j < 100; j++) {
// b = dimensions * j + margins * (j - 1) * 2;
//
// // console.log(b+" "+a)
// if (a <= v && b >= v) {
// if (j == 0) {
// if ((b + a) / 2 > v) {
// return 1;
// } else {
// return 1;
// }
// } else {
// if ((b + a) / 2 > v) {
// return j - 1;
// } else {
// return j;
// }
// }
// }
// a = b;
// }
// return 100;
}