desktopDefHome.ss.jsp 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. <html>
  2. <head>
  3. <title>首页模板官方</title>
  4. <!-- 调用jquery,注意你放置的目录不要搞错了哦! -->
  5. <js.ss file="/ss/jquery/jquery-1.7.2.min.js"/>
  6. <!-- 调用gridster.js和css,注意你放置的目录不要搞错了哦! -->
  7. <js.ss file="/ss/gridster/jquery.gridster.min.js"/>
  8. <js.ss file="/ss/gridster/Gridster-Wd.js"/>
  9. <css.ss file="/ss/gridster/jquery.gridster.min.css"/>
  10. <js.ss file="/ss/menu/dhtmlxmenu_ext.js"/>
  11. <js.ss file="/ss/base.js"/>
  12. <js.ss file="/ss/artdialog/artDialogUtil.js"/>
  13. <script>
  14. if (!window.wd) var wd = {};
  15. if (!wd.display) wd.display = {};
  16. wd.display.wdDialogId = 4445;
  17. if (!wd.app) wd.app = {};
  18. wd.app.name = 'ry';
  19. </script>
  20. <js.ss file="/ss/masklayer.js"/>
  21. <js.ss file="/ss/wdDialogInit.js"/>
  22. <js.ss file="/ss/common.js"/>
  23. <js.ss file="/ss/display.js"/>
  24. <js.ss file="/ss/nicescroll/jquery.nicescroll.js"/>
  25. <js.ss file="/ss/nicescroll/jquery.nicescroll.iframehelper.min.js"/>
  26. <css.ss file="/ss/window/dhtmlxwindows.css"/>
  27. <css.ss file="/ss/window/dhtmlxwindows_dhx_blue.css"/>
  28. <js.ss file="/ss/window/dhtmlxcommon.js"/>
  29. <js.ss file="/ss/window/dhtmlxwindows.js"/>
  30. <js.ss file="/ss/window/dhtmlxcontainer.js"/>
  31. <js.ss file="/ss/growHeight.js"/>
  32. <style>
  33. <%--首页部件居中--%>
  34. .gridster>ul {
  35. margin-top: 5px;
  36. margin-bottom: 30px;
  37. margin-left: 0px;
  38. width:100%;
  39. height:100%;
  40. background-color: rgba(255, 255, 255, 0);
  41. margin: 0 auto;
  42. }
  43. <%--首页部件关闭按钮--%>
  44. .gridster .close {
  45. background-image: url("/ss/gridster/img/close-1.png");
  46. cursor: pointer;
  47. right: 1px;
  48. top: 1px;
  49. position: absolute;
  50. width: 15px;
  51. height: 15px;
  52. font-size: 0;
  53. z-index: 2;
  54. }
  55. <%--工具条--%>
  56. .pg_cj {
  57. position: relative;
  58. top: 0px;
  59. left: 0px;
  60. width: 100%;
  61. height: 100%;
  62. overflow: auto;
  63. }
  64. .nav_btn {
  65. position: fixed;
  66. top: 12;
  67. z-index: 1111;
  68. width: 100%;
  69. margin-left:5px;
  70. }
  71. </style>
  72. </head>
  73. <body>
  74. <!--部件-罗达桓-->
  75. <div id="slder" style="display:none; width:987px; height:35px;">
  76. <div class="nav_btn" style="max-width: 1024px;transform: translateX(-50%);left: 50%;margin:0 auto;">
  77. <div style="float: left;">
  78. <span><input name="symbbjlb" placeholder="类别" width="115px"/></span>
  79. <span><input name="symbbjid" placeholder="部件" width="115px"/></span>
  80. <ccp.ss name="bjlb_bj@symb"/>
  81. <button class="content-button" onclick="add();">
  82. 增加
  83. </button>
  84. <input type="hidden" value="${sessionScope.ssUser.ryid}" id="yhid" />
  85. <input type="hidden" value="${sessionScope.ssUser.xm}" id="xm" />
  86. <input type="hidden" value="${GxhGFDqSyMbid}" id="GxhGFDqSyMbid" />
  87. <notEqual.ss val="${GxhGFDqSyMbid}" val2="0"> <%-- 改 logic:notEqual name="GxhGFDqSyMbid" value="0"。Lin --%>
  88. <button style="width:120px" class="content-button" onclick="saveedit()">
  89. 保存当前模板
  90. </button>
  91. </notEqual.ss>
  92. <button style="width:120px" class="content-button" onclick="SYBJCTRL.saveAsMB()" >
  93. 另存为新模板
  94. </button>
  95. <button style="width:120px" class="content-button" onclick="exitEdit()" >
  96. 退出(不保存)
  97. </button>
  98. </div>
  99. <div style="float: right;">
  100. <span>当前: </span>
  101. <%-- 去掉 <codebook:option,共用 <objp.ss。Lin
  102. -- 去掉,没有 空白模板 和 根模板 了。Lin
  103. -- 再用回,onchange 没起作用。Lin --%>
  104. <select id="mbselect" class="sel" onchange="SYBJCTRL.selectMB(this.options[this.options.selectedIndex].value)">
  105. <%-- 去掉,不写 0L,写 个人首页模板ID。Lin
  106. -- 没有 根模板 了
  107. <option value="0">空白模板</option>
  108. <option value="">根模板</option> --%>
  109. <cbOpt.ss cb="grsymb" defVal="${GxhGFDqSyMbid}" />
  110. </select>
  111. <%-- 再用回上面的 <select,onchange 没起作用。Lin
  112. <input name="mbselect" value="${GxhGFDqSyMbid}" width="120px"
  113. onchange="SYBJCTRL.selectMB(this.options[this.options.selectedIndex].value)"/>
  114. <objp.ss name="mbselect" cb="grsymb"/>
  115. --%>
  116. <notEqual.ss val="${GxhGFDqSyMbid}" val2="0"> <%-- 改 logic:notEqual name="GxhGFDqSyMbid" value="0"。Lin --%>
  117. <button style="width:80px" id="grsymb_del_btn" class="content-button" onclick="SYBJCTRL.delMB()" >
  118. 删除
  119. </button>
  120. </notEqual.ss>
  121. </div>
  122. </div>
  123. </div>
  124. <div id="pg_cj" class="pg_cj scrollbar" style="position:relative;top:0px;left:0px;width:100%;height:100%;overflow:auto;padding-top:25px;">
  125. <div class="gridster ready">
  126. <ul style="position: relative;padding-bottom: 25px;">
  127. </ul>
  128. </div>
  129. </div>
  130. </body>
  131. <script>
  132. //测试 准备读取的数据
  133. var json='${json}';
  134. var SESSION_STATE="${sessionScope.SESSION_STATE}";
  135. var EditType="${sessionScope.Edit-Type}"; // "$@{sessionScope['Edit-Type']}"。Lin
  136. var GxhStatus="${sessionScope.GxhStatus}";
  137. var gridster;
  138. var SYBJCTRL;
  139. //Gridster参数
  140. var widget_base_dimensions=[dimensions,dimensions]; //宽高的单位像素
  141. var widget_margins=[margins,margins]; //模块的间距像素 [上下,左右]
  142. var newWidget_widget_dimensions_value=[12,9];//新增部件默认宽高值[]
  143. //通过javascript脚本来配置拖动实例,随后我们会讲每个配置参数的意义
  144. //首先定义一个变量gridster,为了以后调用gridster的方法
  145. $(function() {
  146. gridster = $(".gridster ul").gridster({ //通过jquery选择DOM实现gridster
  147. widget_base_dimensions:widget_base_dimensions, //模块的宽高 [宽,高]
  148. widget_margins: widget_margins, //模块的间距 [上下,左右] //5.1?? 避免gridster Bug,新增时总存在缝隙会导致生成位置有错 by Rd 2016-01-07
  149. autogrow_rows: true,
  150. autogrow_cols:true,
  151. max_cols: Math.max($(wd.topWindow).outerWidth(true),calWidthAndHeight(1025)),//最大1024宽度
  152. draggable: {
  153. handle: null //'header' //模块内定义拖动的元素<header>,这里也支持jquery选择器,如"span.drag_handle"
  154. },
  155. helper: 'clone',
  156. resize: {
  157. enabled: true,
  158. resize:function(e, ui, $widget){
  159. $widget.find("[onload]").trigger("onload");
  160. }
  161. }
  162. }).data('gridster');
  163. SYBJCTRL=new GridsterWd(gridster,json);//初始化首页部件控制器 by Rd 2015-12-24
  164. });
  165. // 初始化编辑
  166. function userEdit(gfOrgr) {
  167. SYBJCTRL.userEdit(gfOrgr);
  168. if(gfOrgr=="gr"){ //处理编辑模板下点击编辑模板的情况
  169. SYBJCTRL.exitMB('open');
  170. }
  171. };
  172. // 新增方法
  173. function add() {
  174. var sybjsjLb = $('[name=symbbjlb]')[0].value;
  175. var sybjsjId =$('[name=symbbjid]')[0].value;
  176. //请求部件数据 [bjId] [bjLb] [serviceUrl]
  177. var data=SYBJCTRL.getParams("serviceType=2&sybjsjLb="+sybjsjLb+"&sybjsyId="+sybjsjId);
  178. //请求服务获得数据信息
  179. if(data["bjId"]){
  180. //新部件改为放在最后
  181. var new_col=1;
  182. var new_row=1;
  183. $("li.gs-w").each(function(){
  184. new_row=Math.max($(this).data("row")+$(this).data("sizey"),new_row);
  185. });
  186. gridster.add_widget2(data["bjId"],data["bjLb"],data["serviceUrl"],calWidthAndHeight(data["size_x"]),calWidthAndHeight(data["size_y"]),new_col,new_row);
  187. var liId="#"+data['bjId'];
  188. //返回部件代码
  189. $(liId+" ."+SYBJCTRL.containerForLoad).load(data["serviceUrl"],{"sybjId":data["bjId"],"sybjLb":data["bjLb"],"serviceUrl":data["serviceUrl"]},function(){
  190. $(liId+" ."+SYBJCTRL.imgheader).attr({style:SYBJCTRL.flushIconStyle});
  191. });
  192. $(this).on('click','.'+SYBJCTRL.imgheader,function(){//绑定刷新事件
  193. SYBJCTRL.flushBj(liId);
  194. });
  195. }
  196. }
  197. //加载部件(初始化数据并绑定刷新事件)
  198. function loadHtmlAndBindFlushEvent() {
  199. $("li.gs-w").on("click",'.'+SYBJCTRL.imgheader,function(){
  200. var id=$(this).parents("[initurl]").attr("id");
  201. if(id)
  202. SYBJCTRL.flushBj("#"+id, this);
  203. }).on('mousedown',function(){
  204. var id=$(this).parents("[initurl]").attr("id");
  205. if(id)
  206. SYBJCTRL.EventCtrl.setBjId("#"+id);
  207. });
  208. //遍历类名为gs-w的元素
  209. $("li.gs-w").each(function(){
  210. try{
  211. //有li标签拿到bjId,bjLb,initUrl
  212. var id=$(this).attr("id");
  213. var bjLb=$(this).attr("bjlb");
  214. var initUrl=$(this).attr("initurl");
  215. //返回部件代码,并绑定刷新事件
  216. $(this).find("."+SYBJCTRL.containerForLoad).load(initUrl,{"sybjId":id,"sybjLb":bjLb});
  217. }catch(e){
  218. console.log(e)
  219. }
  220. });
  221. }
  222. function flushBj(liId){
  223. SYBJCTRL.flushBj(liId);
  224. }
  225. // 开启编辑模式
  226. function yesedit() {
  227. SYBJCTRL.yesedit();
  228. };
  229. // 保存方法
  230. function saveedit() {
  231. SYBJCTRL.saveedit(SESSION_STATE);
  232. };
  233. function closediv(obj) {
  234. SYBJCTRL.closediv(obj);
  235. };
  236. //初始化gridster,开启编辑状态
  237. window.onload = function() {
  238. SYBJCTRL.initGridster();
  239. SYBJCTRL.yesedit();
  240. wd.topWindow.gxhymWindow = window;
  241. loadHtmlAndBindFlushEvent();
  242. }
  243. // window.onbeforeunload=function(){
  244. // SYBJCTRL.exitMB('forced');
  245. // }
  246. function exitEdit(){
  247. //SYBJCTRL.rollBackChangeAndExit();
  248. SYBJCTRL.exitMB();
  249. wd.topWindow.wd.display.home();
  250. }
  251. </script>
  252. </html>