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