xinyb
2024-06-19 d4f9eb07c191f2c1660f8b8701225a288038c10d
提交 | 用户 | age
a6a76f 1 var srcGroup=null;
F 2 var toGroup=null;
3 var sort=null;
4 $(function() {
5         sort=$(".column" ).sortable({
6             connectWith: ".column",handle:'.allowDrag',revert: true,cursor :'move',placeholder:'placeholder',zIndex: 1,dropOnEmpty:true
7             ,items:".drag",scrollSpeed:5,tolerance:"pointer"
8         });
9         $(".item" ).addClass( "ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" )
10             .find( ".item-header" )
11                 .addClass( "ui-widget-header ui-corner-all" )
12                 .prepend( "<span class='ui-icon ui-icon-refresh'></span>")
13                 .prepend( "<span class='ui-icon ui-icon-wrench'></span>")
14                 .prepend( "<span class='ui-icon ui-icon-minusthick'></span>")
15                 .prepend( "<span class='ui-icon ui-icon-closethick'></span>")
16                 .end()
17             .find( ".item-content" );
18         $(".item-header .ui-icon-minusthick" ).click(function() {
19             $( this ).toggleClass( "ui-icon-minusthick" ).toggleClass("ui-icon-plusthick" );
20             $( this ).parents(".item:first" ).find(".item-content" ).toggle();
21         });
22         $(".item-header .ui-icon-closethick").click(function() {
23             $(this).parents(".item").hide(500);
24         });
25         $(".item-header .ui-icon-refresh").click(function() {
26             var obj=$(this).parents(".item");
27             obj.find(".item-content").html("");
28             var formid=obj.attr("formid");
29             $.post("/personalized"+parent.spellPath+formid+"/index.jsp?r="+Math.round(Math.random()*10000),"",function(data){
30                 obj.find(".item-content").html(data);
31                 upWidth(obj);
32                 addEvent(obj);
33             },"html");
34         });
35         $(".item-header .ui-icon-wrench").click(function() {
36             if($(this).parents(".item").find("iframe").length>0)return;
37             var item=$(this).parents(".item");
38             var formId=item.attr("formId");
39             var formName=item.find(".item-header").text();
40             panelCfg(formId,formName);
41         });
42         //$( ".column" ).disableSelection();
43         $(".column").bind('sortstop', function(event, ui) {//拖拽保存位置
44             var p=ui.originalPosition;
45             var op=ui.item.offset();
46             if(p.top!=op.top||p.left!=op.left){
47                var pid=ui.item.attr("pid");
48                var newGid=ui.item.parent().attr("groupid");
49                var oldGid=$(event["target"]).attr("groupid");
50                if(newGid==oldGid){//判断拖拽后是否在同一组
51                    var json='['
52                    $("#group_"+newGid).find(".item").each(function(i){
53                       json+="{'pid':"
54                       json+=$(this).attr("pid");
55                       json+=",'sort':"
56                       json+=i+"},"
57                    });
58                    if(json.length>1)json=json.substring(0,json.length-1);
59                    json+="]";
60                    updateSort(json);
61                }else{
62                    updateGroup(newGid,pid);//更新拖拽元素的分组
63                    var json='['
64                        $("#group_"+newGid).find(".item").each(function(i){
65                           json+="{'pid':"
66                           json+=$(this).attr("pid");
67                           json+=",'sort':"
68                           json+=i+"},"
69                        });
70                        if(json.length>1)json=json.substring(0,json.length-1);
71                        json+="]";
72                        updateSort(json);
73                      json='['
74                     $("#group_"+newGid).find(".item").each(function(i){
75                         json+="{'pid':"
76                         json+=$(this).attr("pid");
77                         json+=",'sort':"
78                         json+=i+"},"
79                     });
80                     if(json.length>1)json=json.substring(0,json.length-1);
81                     json+="]";
82                     updateSort(json);
83                }
84                upWidth(ui.item);
85             }
86         });    
87         $(".column").bind('sortstart', function(event, ui) {
88                 ui.placeholder.css("height",ui.item.height());
89                 
90         });
91             
92         $(".item[formid]").each(function(){
93             var obj=$(this);
94             var formid=obj.attr("formid");
95             $.post("/personalized"+parent.spellPath+formid+"/index.jsp?r="+Math.round(Math.random()*10000),"",function(data){
96                 obj.find(".item-content").html(data);
97                 upWidth(obj);
98                 addEvent(obj);
99             },"html");
100         });
101 });
102 function upWidth(obj){
103      var width=obj.find(".item-header").width();
104      obj.find(".item-content").width(width-4);
105 }
106 function updateGroup(newGid,pid){
107     $.post("/updateGroup.do",{'newGid':newGid,'pid':pid},function(data){
108         if(data.code!='success'){
109             alert(data.info);
110         }
111     },"json");
112 }
113 function updateSort(objs){
114     $.post("/updateSort.do",{'sortInfo':objs},function(data){
115         if(data.code!='success'){
116             alert(data.info);
117         }
118         $( ".column" ).sortable("serialize");
119     },"json");
120 }
121 function addEvent(obj){
122     obj.find(".ct1-content").hover(function(){
123         $(this).css({"color":"red"});
124     },function(){
125         $(this).css({"color":""});
126     });
127     if(obj.find("div:eq(2)").attr("class")!="content1"){
128         obj.find(".ui-icon-wrench").remove();
129     }
130     obj.find(".ct1-content li[lfid]").each(function(){
131         $(this).html("<a href='javascript:void(0)'>"+$(this).html()+"</a>");
132         $(this).click(function(){
133             var lfid = $(this).attr("lfid");
134             var ltype=$(this).attr("ltype");
135             var sfield=$(this).attr("sfield");
136             var lfield=$(this).attr("lfield");
137             var sfs=sfield.split("[?split]");
138             var lfs=lfield.split(";");
139             var filter=$(this).parents(".item").find(".ct1-header").find("."+$(this).attr("class")).attr("filter");
140             var hasSession=false;
141             var para="";
142             for(i=0;i<sfs.length;i++){
143                 if(sfs[i].indexOf("@")!=-1)
144                     hasSession=true;
145                 para+=lfs[i]+"='"+sfs[i]+"' and ";
146             }
147             if(filter!=""){para+=filter;}
148             if(para.endWith("and ")){para=para.substring(0,para.length-4);}
149             
150             if(hasSession){
151                 replaceSessionKey(para,function(d){
152                     openDetail(lfid,ltype,d);
153                 });
154             }else{
155                 openDetail(lfid,ltype,para);
156             }
157         });
158     });
159     obj.find(".more").click(function(){
160         var t=$(this).parents(".item");
161         openDetail(t.attr("formid"),t.attr("formtype"),"");
162     });
163 }
164 String.prototype.endWith=function(str){  
165     if(str==null||str==""||this.length==0||str.length>this.length)  
166       return false;  
167     if(this.substring(this.length-str.length)==str)  
168       return true;  
169     return false;  
170 }
171 function openDetail(formid,formtype,param){
172     if($.trim(param).length>1)
173         param="wherePan="+param;
174     parent.addTab('',formid,formtype,param);
175 }
176 function replaceSessionKey(str,callback){//替换session值
177     $.post("/replaceSessionKey.do",{"paramter":str},function(data){
178         callback(data);
179     });
180 }
181 function panelCfg(fid,fname){
182     var url="/personalized/manager/customFunction.jsp?formId="+fid+"&r="+Math.round(Math.random()*10000);
183     parent.deskTopShow(fname,url,555,345,function(obj){
184         if(!obj)return;
185         if(obj.code=="error"){
186             alert(obj.info);return;
187         }
188         refreshPanel(fid);
189     })
190 }
191 function refreshPanel(fid){
192     var obj=$(".item[formid='"+fid+"']")
193     obj.find(".item-content").html("");
194     $.post("/personalized/"+parent.spellPath+fid+"/index.jsp?r="+Math.round(Math.random()*10000),"",function(data){
195         obj.find(".item-content").html(data);
196         upWidth(obj);
197         addEvent(obj);
198     },"html");
199 }