objPrt.ss.jsp 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <%-- 改为 <data@ss name="obj"/>。Lin
  6. <wd:write type="tab" /> --%>
  7. <data.ss name="obj"/>
  8. <%-- 先去掉 "printx",没有找到处理程序。Lin
  9. <wd:write type="tab" value="printTemplates,printx" /> --%>
  10. <tab.ss name="prtDef"/>
  11. <script>
  12. function addWdFitHeight(selecter, param) {
  13. console.log(selecter);
  14. console.log(param);
  15. var aa = "";
  16. if (param.minHeight) {
  17. aa += "min:" + param.minHeight + ",";
  18. }
  19. if (param.maxHeight) {
  20. aa += "max:" + param.maxHeight + ",";
  21. }
  22. if (param && aa) {
  23. aa = aa.substr(0, aa.length - 1)
  24. document.querySelector(selecter).setAttribute("ssFith", aa); // ("wdFitHeight",。Lin
  25. }
  26. }
  27. pickData = function(){
  28. var rowCountPerPage = 10;
  29. if(dxids.length>10){
  30. rowCountPerPage = dxids.length;
  31. }
  32. <%-- 和发布后的比,parm 里少了 ${pdxidName}:"${pdxidValue}" 和 requestParentViewObject:"${requestParentViewObject}"。Lin
  33. var url = '@service{name:"findSearch",dest:"env_print_pick",show:"wdDialog",param:{"objectId":"${objectId}","rowCountPerPage":"wdVal{rowCountPerPage}","dxm":"${dxm}","dxids":"wdVal{dxids}","management":0,"isReady":1}}@'; --%>
  34. <%-- 再改为 WebC.REQ_objName、WebC.REQ_objId,避免与数据表里的 对象名、对象ID 字段重名。用到再确认。Lin
  35. 另,原来的 "objectId" 应该就是 对象ID,应该统一为 "ssObjId" -- 先不改,用到再弄???
  36. var url = '<serv@ss dlg="true" name="findSearch" dest="env_prt_rowPicker" parm="{&quot;${pdxidName}&quot;:&quot;${pdxidValue}&quot;,requestParentViewObject:&quot;${requestParentViewObject}&quot;,objectId:&quot;${objectId}&quot;,rowCountPerPage:&quot;wdVal{rowCountPerPage}&quot;,dxm:&quot;${dxm}&quot;,dxids:&quot;wdVal{dxids}&quot;,management:0,isReady:1}"/>'; --%>
  37. var url = '<serv.ss dlg="true" name="findSearch" dest="prtRowPick" parm="{&quot;${pdxidName}&quot;:&quot;${pdxidValue}&quot;,requestParentViewObject:&quot;${requestParentViewObject}&quot;,objectId:&quot;${objectId}&quot;,rowCountPerPage:&quot;ssVal{rowCountPerPage}&quot;,ssObjName:&quot;${ssObjName}&quot;,dxids:&quot;ssVal{dxids}&quot;,management:0,isReady:1}"/>';
  38. var json = JSON.parse('{"rowCountPerPage":"'+rowCountPerPage+'","dxids":"' + dxids + '"}');
  39. url = wd.display.replaceDynamicParam(url,json);
  40. eval(url);
  41. }
  42. </script>
  43. <div class="tab-div">
  44. <%-- 再改为 WebC.REQ_objId,避免与数据表里的 对象ID 字段重名。用到再确认。Lin
  45. <equal@ss val="${empty dxid}" val2="true"> --%>
  46. <equal.ss val="${empty ssObjId}" val2="true">
  47. 已选记录数:<span id="jls">0</span><input type="button" value="选择" onclick='pickData()' class="bottom-button">
  48. <input type="button" value="预览" class="bottom-button" onclick="preview()"/>
  49. <%-- 再改为 WebC.REQ_objIdName,避免与数据表里的 对象ID 字段重名。用到再确认。Lin
  50. <input type="hidden" value="${dxidName}" id="dxidName"/> --%>
  51. <input type="hidden" value="${ssObjIdName}" id="dxidName"/>
  52. <script type="text/javascript">
  53. var dxids = "";
  54. var dyButtonHtml='<div class="bottom-div" style="z-index:10000;"><div class="bottom-down-div border-top">'+
  55. <%-- 和发布后的比,onclick=\'#@{print}\' 改为 onclick=\'function print() { [native code] }\'。Lin
  56. 把 # 写为 ##,避免 PageU.paseSymbol( 进行无谓的替换 -- '#@{print}' 替换为 'function print() { [native code] }'
  57. '<input type="button" value="批量打印" onclick=\'#@print}\' class="bottom-button">'+
  58. --%>
  59. '<input type="button" value="批量打印" onclick=\'function print() { [native code] }\' class="bottom-button">'+
  60. '</div></div>';
  61. function windowPrint(){
  62. var bottomDiv=$("body").find(".bottom-div");
  63. bottomDiv.remove();
  64. window.print();
  65. $("body").append(bottomDiv);
  66. }
  67. function getPrintStr(f){
  68. var s=f.toString();
  69. return s.substring(s.indexOf("{")+1,s.length-1);
  70. }
  71. function preview() {
  72. var tab = wd.display.getTabInstance().selectTab.dom;
  73. <%-- 和发布后的比,url = tab.getAttribute("loadUrl") 改为 url=$("#load").attr("src")。Lin
  74. var url = tab.getAttribute("loadUrl");
  75. --%>
  76. var url = $("#load").attr("src");
  77. var defaultTab = tab.getAttribute("defaultTab");
  78. var dxidName = $("#dxidName").val();
  79. var iframeBody=$($("#load")[0].contentWindow.document).find("body");
  80. iframeBody.css("overflow","");
  81. iframeBody.addClass("scrollBar");
  82. iframeBody.html("");
  83. if(defaultTab == "true"){
  84. iframeBody.append("<style>.item {height: 100%;position: relative;}</style>");
  85. }else{
  86. iframeBody.append("<style>.item {page-break-after: always;display: flex;}</style>");
  87. }
  88. iframeBody.append("<style>.scrollBar::-webkit-scrollbar {cursor: url(image/cur.ico), default !important;width: 0px;} .scrollBar::-webkit-scrollbar-track {background-color: none;border-radius: 5px;cursor: url(image/cur.ico), default !important;} .scrollBar::-webkit-scrollbar-thumb {background: #b7b7b7;cursor: url(image/cur.ico), default !important;border-radius: 5px;}</style>")
  89. iframeBody.append("<div class='content' style='margin-bottom: 68px;'></div>");
  90. <%-- 和发布后的比,.replace("#@{print}", 改为 .replace("function print() { [native code] }",。Lin
  91. 把 # 写为 #@,避免 PageU.paseSymbol( 进行无谓的替换 -- '#@{print}' 替换为 'function print() { [native code] }'
  92. iframeBody.append(dyButtonHtml.replace("#@{print}",getPrintStr(windowPrint)));
  93. --%>
  94. iframeBody.append(dyButtonHtml.replace("function print() { [native code] }",getPrintStr(windowPrint)));
  95. for (var i = 0; i < dxids.length; i++) {
  96. $.ajax({
  97. type: "post",
  98. url: url+"&"+dxidName+"="+dxids[i],
  99. <%-- 和发布后的比,async: true, 改为 async: false,。Lin
  100. async: true,
  101. --%>
  102. async: false,
  103. success: function(data) {
  104. var resultdiv=preparatoryProcess(data);
  105. processHtml(resultdiv);
  106. }
  107. });
  108. }
  109. }
  110. function preparatoryProcess(data) {
  111. var resultdiv = document.createElement("div");
  112. resultdiv.style.display = "none";
  113. resultdiv.id = new Date().getTime();
  114. resultdiv.innerHTML = data;
  115. var scripts = resultdiv.querySelectorAll("script");
  116. for (var i = 0; i < scripts.length; i++) {
  117. var s = scripts[i];
  118. $(s).remove();
  119. }
  120. return resultdiv;
  121. }
  122. function processHtml(resultdiv) {
  123. $(resultdiv).find("#content").css("overflow","").css("height","").attr("id",new Date().getTime());
  124. <%-- 和发布后的比,抽取出变量 var fwindow=$("#load")[0].contentWindow; -- 后面复用。Lin
  125. var iframeBody=$($("#load")[0].contentWindow.document).find("body");
  126. --%>
  127. var fwindow=$("#load")[0].contentWindow;
  128. var iframeBody=$(fwindow.document).find("body");
  129. iframeBody.find(".content").append("<div class='item'>" + resultdiv.innerHTML + "</div>");
  130. $(".item").find(".bottom-div").remove();
  131. <%-- 和发布后的比,在这增加处理。Start。Lin --%>
  132. try{
  133. fwindow.$("div[xsxs=2]").each(function() {
  134. fwindow.initQRCode(this);
  135. });
  136. fwindow.$("div[xsxs=3]").each(function() {
  137. fwindow.initBarCode(this);
  138. });
  139. }catch(e){
  140. console.log(e);
  141. }
  142. <%-- 和发布后的比,在这增加处理。End。Lin --%>
  143. }
  144. </script>
  145. </equal.ss>
  146. <ul ssNormClazz="tab-normal" ssHovClazz="tab-hover" ssSelClazz="tab-selected">
  147. <rpt.ss name="${tabList}" id="item">
  148. <equal.ss val="${empty item.dymbfunction}" val2="true">
  149. <%--默认--%>
  150. <%-- 有空再弄来自 表格模板 表里的 打印模板。Lin --%>
  151. <li loadUrl="<serv.ss name='dymb_envPrint' dest='objPrtDo' parm='{bgmbid:"${item.bgmbid}"}'/>"
  152. defaultTab='true'
  153. <%-- 再改为 WebC.REQ_objId、WebC.REQ_objIdName,避免与数据表里的 对象名、对象ID 字段重名。Lin
  154. wdTabClick="<serv@ss name='dymb_envPrint' dest='dymb_envPrint' parm='{"${dxidName}":"${dxid}",bgmbid:"${item.bgmbid}"}'/>"> --%>
  155. ssTabClick="<serv.ss name='dymb_envPrint' dest='objPrtDo' parm='{"${ssObjIdName}":"${ssObjId}",bgmbid:"${item.bgmbid}"}'/>">
  156. ${item.desc}
  157. </li>
  158. </equal.ss>
  159. <equal.ss val="${empty item.dymbfunction}" val2="false">
  160. <li defaultTab='false'
  161. loadUrl="<varServ.ss name='${item.service}' dest='${item.dest}'/>"
  162. <%-- 先去掉,用到再弄。好像是 个人选项卡 的东西。Lin
  163. wdTabSite="${item.wdTabSite}"
  164. --%>
  165. ssTabClick="<varServ.ss name='${item.service}' dest='${item.dest}' parm='${item.param}'/>">
  166. ${item.desc}
  167. </li>
  168. </equal.ss>
  169. </rpt.ss>
  170. </ul>
  171. </div>
  172. <div>
  173. <iframe id="load" frameborder="none" name="ssTabIframe" width="100%" height="100%"></iframe>
  174. </div>
  175. <script>
  176. var tabHeight = <wd:write value="${tabHeight}" /> ;
  177. addWdFitHeight("[name=ssTabIframe]", tabHeight); // ("[name=wdTabFrame]",。Lin
  178. </script>
  179. <%-- 再改为 WebC.REQ_objId,避免与数据表里的 对象ID 字段重名。用到再确认。Lin
  180. <equal@ss val="${empty dxid}" val2="true"> --%>
  181. <equal.ss val="${empty ssObjId}" val2="true">
  182. <script>
  183. var ssLblHeightByFith=32; // wdFitHeightbqgd=。Lin
  184. </script>
  185. <script>
  186. // $("#load").contents().find("#pldy").show();
  187. </script>
  188. </equal.ss>
  189. </body>
  190. </html>