objInfo.jsp 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <%@ page language="java" pageEncoding="UTF-8" isELIgnored="false" %>
  2. <%@ taglib uri="/ssTag" prefix="ss"%>
  3. <%pageContext.setAttribute("wdpageinformation","{'hastab':'1'}");%>
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <meta http-equiv="pragma" content="no-cache">
  8. <meta http-equiv="cache-control" content="no-cache">
  9. <meta http-equiv="expires" content="0">
  10. <script>window.loginStatus="${empty sessionScope['ssUser']?'0':'1'}"</script>
  11. <ss:skin file='main.css'/>
  12. <script type="text/javascript" src="/ss/jquery/jquery.js"></script>
  13. <script type="text/javascript" src="/ss/artdialog/artDialogUtil.js"></script>
  14. <script type="text/javascript" src="/ss/js/base.js"></script>
  15. <script> if(!window.wd) var wd={}; if(!wd.display) wd.display={}; wd.display.wdDialogId="objInfo"; if(!wd.app) wd.app={}; wd.app.name='pms';</script>
  16. <script type="text/javascript" src="/ss/js/masklayer.js"></script>
  17. <script type="text/javascript" src="/ss/js/wdDialogInit.js"></script>
  18. <script type="text/javascript" src="/ss/js/common.js"></script>
  19. <script type="text/javascript" src="/ss/js/display.js"></script>
  20. <script type="text/javascript" src="/ss/js/edit.js"></script>
  21. <script type="text/javascript" src="/ss/nicescroll/jquery.nicescroll.js"></script>
  22. <script type="text/javascript" src="/ss/nicescroll/jquery.nicescroll.iframehelper.min.js"></script>
  23. <%-- 新UI引入的JS --%>
  24. <script src="/js/load.js"></script> <%-- ="/newUI/ss/js/base.js"。Lin(新UI) --%>
  25. </head>
  26. <body>
  27. <%-- 改为 <data@ss name="obj"/>。Lin
  28. <tab@ss name=""/> --%>
  29. <%-- <data@ss name="obj"/> 再去掉,好像不需要。Lin --%>
  30. <ss:tab name='baseInfo,child'/>
  31. <%-- 改为 <jsp@ss file="/ss/tabState.jsp"/>。Lin
  32. <tab@ss name="tagState"/> --%>
  33. <%@include file="/ss/clip/tabState.jsp"%>
  34. <script>
  35. function addWdFitHeight(selecter,param){
  36. console.log(selecter);
  37. console.log(param);
  38. var aa="";
  39. if(param.minHeight){
  40. aa+="min:"+param.minHeight+",";
  41. }
  42. if(param.maxHeight){
  43. aa+="max:"+param.maxHeight+",";
  44. }
  45. if(param&&aa){
  46. aa=aa.substr(0,aa.length-1)
  47. document.querySelector(selecter).setAttribute("ssFith",aa); // ("wdFitHeight",。Lin
  48. }
  49. }
  50. </script>
  51. <%--<div class="tab-div">
  52. <ul ssNormClazz="tab-normal" ssHovClazz="tab-hover" ssSelClazz="tab-selected">
  53. <ss:rpt name='${tabList}' id='item'>
  54. <li name="${item.name}" --%><%-- wdTabSite="${item.wdTabSite}"。先去掉,用到再弄。好像是 个人选项卡 的东西。Lin --%>
  55. <%--_sizeinfo="width:${item.width},height:${item.height},minHeight:${item.minHeight}, maxHeight:${item.maxHeight}"
  56. ssTabClick="<ss:serv name='${item.service}' dest='${item.dest}' parm='${item.param}'/>">
  57. ${item.desc}
  58. </li>
  59. </ss:rpt>
  60. <!-- <li name="sys_bd" wdTabClick='@service{name:"sq_cx",dest:"sq_cx",param:{dxid:"${dxid}"}}@'>变动</li> -->
  61. </ul>
  62. </div>
  63. <div>
  64. <iframe frameborder="none" name="ssTabIframe" width="100%" ></iframe>
  65. </div>--%>
  66. <div id="app">
  67. <div class="project-edit-container">
  68. <ss-sub-tab
  69. :menu-list="tabConfig"
  70. active-menu="相对方"
  71. @menu-change="handleMenuChange"
  72. :left-display="leftDisplay"
  73. :footer-buttons="footerButtons"
  74. />
  75. <!-- @menu-change="handleMenuChange"
  76. -->
  77. </div>
  78. </div>
  79. <script>
  80. var tabHeight=<ss:txt val='${tabHeight}'/>;
  81. addWdFitHeight("[name=ssTabIframe]",tabHeight); // ("[name=wdTabFrame]",。Lin
  82. </script>
  83. <script type="text/javascript">var wdRecordValue='${wdRecordValue}';</script>
  84. <script type="text/javascript" src="/ss/js/wdRecord.js"></script>
  85. <script type="text/javascript">(function(){wdRecord("objInfo");})();</script>
  86. <script type="text/javascript" src="/ss/js/wdFitHeight.js"></script>
  87. <script type="text/javascript">initWdFitHeight(33)</script>
  88. <script type="text/javascript">initWdFitHeightFunction=function(){initWdFitHeight(33);};</script>
  89. <script type='text/javascript'>wd.display.wdTabNo='${ssNextTabNo}';</script><script type="text/javascript" src="/ss/js/wdDrag.js"></script>
  90. <script type="text/javascript" src="/ss/js/configurableTab.js"></script>
  91. <script type="text/javascript">
  92. wd.configurableTab.init(1,"objInfo");</script>
  93. <ss:equal val="${empty resizeComponent}" val2="false">
  94. <script>{var iframe=wd.display.getFrameOfWindow();
  95. if(iframe&&iframe.contentWindow==window)
  96. wd.display.resizeComponent(${resizeComponent.width}, ${resizeComponent.height}, ${empty resizeComponent.minHeight?'null':resizeComponent.minHeight}, ${empty resizeComponent.maxHeight?'null':resizeComponent.maxHeight});}</script>
  97. </ss:equal>
  98. <ss:help/>
  99. </body>
  100. <script type="text/javascript">
  101. try{wd.display.showMsgPopup('${msg}');
  102. }catch(err){console.error(err);}
  103. </script>
  104. <ss:equal val="${empty wdclosewindowparam}" val2="false">
  105. <script type="text/javascript">
  106. try{wd.display.setCloseWindowParam('${wdclosewindowparam}');
  107. }catch(err){console.error(err);}
  108. </script>
  109. </ss:equal>
  110. </html>
  111. <script type="text/javascript">
  112. <%-- 增加初始化选项卡json start Ben --%>
  113. window.SS.dom.tabConfig = window.SS.dom.tabConfig || [];
  114. <ss:rpt name='${tabList}' id='item'>
  115. {
  116. let item = {
  117. url: "<ss:serv name='${item.service}' dest='${item.dest}' parm='${item.param}'/>",
  118. title:"${item.desc}",
  119. name:"${item.name}",
  120. <%-- 下面的属性是为了计算选项卡高度fitHeight准备的 --%>
  121. width:"${item.width}",
  122. height:"${item.height}",
  123. minHeight:"${item.minHeight}",
  124. maxHeight:"${item.maxHeight}"
  125. };
  126. window.SS.dom.tabConfig.push(item);
  127. }
  128. </ss:rpt>
  129. console.log('tabConfig:'+JSON.stringify(window.SS.dom.tabConfig));
  130. <%-- 增加初始化选项卡json end Ben --%>
  131. tokenCleanser("<ss:serv name='ss.clearPageToken'/>", {tokenList:"<%= pageContext.getAttribute(ss.page.PageC.PAGE_tokenList)%>"});
  132. </script>
  133. <script type="module">
  134. const data = {
  135. tabConfig: window.SS.dom.tabConfig.map(tab => ({
  136. ...tab,
  137. cgxList: false,
  138. })),
  139. leftDisplay: true,
  140. footerButtons: [
  141. ]
  142. }
  143. SS.ready(function () {
  144. const app = window.SS.dom.initializeFormApp({
  145. el: "#app",
  146. data(){
  147. return data;
  148. },
  149. methods:{
  150. handleMenuChange(menu){
  151. console.log('handleMenuChange', menu);
  152. },
  153. async showTagState(url) {
  154. // 从每个tab的url中提取token
  155. const tokenList = this.tabConfig.map(tab => {
  156. const match = /ssToken=([^&]+)/.exec(tab.url);
  157. return match ? match[1] : null;
  158. });
  159. try {
  160. const response = await $.post(url, {
  161. tokenList: JSON.stringify(tokenList)
  162. });
  163. const result = eval("(" + response + ")");
  164. // 更新每个tab的状态
  165. this.tabConfig = this.tabConfig.map((tab, index) => {
  166. if (!result[index]) return tab;
  167. return {
  168. ...tab,
  169. cgxList: result[index].cgxList === true,
  170. };
  171. });
  172. console.log('更新标签状态成功:', this.tabConfig);
  173. } catch (error) {
  174. console.error('获取标签状态失败:', error);
  175. }
  176. }
  177. },
  178. mounted() {
  179. this.showTagState("<ss:serv name='ss.wrTabState' parm='{ssObjName:"${ssObjName}",ssObjId:"${ssObjId}","${ssObjIdName}":"${ssObjId}",wdConfirmationCaptchaService:"0",dataType:"${dataType}"}'/>");
  180. }
  181. })
  182. window.SS.dom.currentApp = app;
  183. })
  184. </script>