chgChkTab.jsp 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500
  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="chgChkTab"; 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/nicescroll/jquery.nicescroll.js"></script>
  21. <script type="text/javascript" src="/ss/nicescroll/jquery.nicescroll.iframehelper.min.js"></script>
  22. <meta http-equiv="X-UA-Compatible"content="IE=9; IE=8; IE=7; IE=EDGE" />
  23. <%-- 新UI引入的JS --%>
  24. <script src="/js/load.js"></script> <%-- ="/newUI/ss/js/base.js"。Lin(新UI) --%>
  25. <script type="text/javascript" src="/js/base.js"></script>
  26. <script type="text/javascript" src="/js/display.js"></script>
  27. <%-- <script type="text/javascript" src="/ss/js/edit.js"></script> --%>
  28. <style>
  29. #editField,.bottom-div{
  30. background-color: #fff;
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <%
  36. pageContext.setAttribute("dataType","bdplay");
  37. %>
  38. <%-- 改为 <data@ss name="obj"/>。Lin
  39. <tab@ss name=""/> --%>
  40. <%-- <data@ss name="obj"/> 再去掉,好像不需要。Lin --%>
  41. <ss:tab name='chkChg,child'/>
  42. <%-- 改为 <jsp@ss file="/ss/tabState.jsp"/>。Lin
  43. <tab@ss name="tagState"/> --%>
  44. <%-- <%@include file="/ss/clip/tabState.jsp"%> --%>
  45. <%--${tabList}--%>
  46. <script>
  47. // function addWdFitHeight(selecter,param){
  48. // var aa="";
  49. // if(param.minHeight){
  50. // aa+="min:"+param.minHeight+",";
  51. // }
  52. // if(param.maxHeight){
  53. // aa+="max:"+param.maxHeight+",";
  54. // }
  55. // if(param&&aa){
  56. // aa=aa.substr(0,aa.length-1)
  57. // document.querySelector(selecter).setAttribute("ssFith",aa);
  58. // }
  59. // }
  60. </script>
  61. <div id="app">
  62. <div class="verify-container">
  63. <div class="left-side" style="height: 100%;">
  64. <form method="post" id="myForm" style="height: 100%;">
  65. <div style="padding: 0px;box-sizing: border-box; overflow:hidden;padding:20px" :style="{height: contentHeight + 'px'}">
  66. <div style="height: 100%;width: 100%;border: 1px solid #d2d2d2;">
  67. <ss-sub-tab
  68. :menu-list="tabConfig"
  69. active-menu="相对方"
  70. @menu-change="handleMenuChange"
  71. :left-display="leftDisplay"
  72. :footer-buttons="footerButtons"
  73. />
  74. </div>
  75. </div>
  76. <%-- <div class="action-bar-1">
  77. <div class="action-list">
  78. <span><ss-common-icon class="common-icon-common-words"></ss-common-icon></span>
  79. <!-- <span><ss-common-icon class="common-icon-handwriting"></ss-common-icon></span> -->
  80. <span><ss-common-icon class="common-icon-paper-clip"></ss-common-icon></span>
  81. <!-- <span><ss-common-icon class="common-icon-smile"></ss-common-icon></span> -->
  82. </div>
  83. <div class="input-area">
  84. <input name="shsm" placeholder="请输入批示意见" />
  85. </div>
  86. </div> --%>
  87. <div class="" style="width: 100%;height:65px;border-top: 1px solid rgb(210, 210, 210);">
  88. <input type='hidden' name='ynrid' value='' />
  89. <div id='ynrEdit' data-shid="${shid}" style="height: 63px;"></div>
  90. <script type="text/javascript" charset="utf-8" src="/ss/js/edit.js"></script>
  91. <ss:inper />
  92. <ss:equal val="${empty inputter.encode_ynrid}" val2="false">
  93. <input type="hidden" name="ynr_WATCHURL" value='ss.display.showComponent({show:["ssDialog"],url:"<ss:serv parm='{"wdConfirmationCaptchaService":"0","id":"ssVal{id}"}' dest='convInp'/>",title:"转换",width:1024,height:350});' />
  94. </ss:equal>
  95. <script>
  96. document.querySelector('form').addEventListener('submit', function(){
  97. if(typeof saveEditor != 'undefined' && saveEditor instanceof Function)
  98. saveEditor('ynrEdit');
  99. });
  100. HTMLFormElement.prototype.subfun = HTMLFormElement.prototype.submit;
  101. HTMLFormElement.prototype.submit = function(){
  102. if(typeof saveEditor != 'undefined' && saveEditor instanceof Function)
  103. saveEditor('ynrEdit');
  104. this.subfun();
  105. };
  106. function addCyy() {
  107. wd.display.showComponent({show:["wdDialog"],url:"<ss:serv name='p_gryy_zj' parm='{"wdConfirmationCaptchaService":"0"}' dest='gryyInp'/>",title:"录入常用语",width:571,height:105,minHeight:54,maxHeight:158});
  108. }
  109. function fjidfjEdit(){
  110. var fjName='fjid';var fjid=document.getElementsByName('fjid')[0].value;
  111. if(fjid==null||fjid==''){
  112. $.ajax({type:'post',url:'<ss:serv name='makeAttCms' parm='{"wdConfirmationCaptchaService":"0"}'/>',async:false,data:{name:'fjid',ssNrObjName:'sh',ssNrObjId:'${shid}'},success:function(_fjid){fjid=_fjid;document.getElementsByName('fjid')[0].value=fjid;}});
  113. };
  114. var str='&nrid=T-'+fjid+'&objectId='+fjid+'&objectName='+fjName+'&callback='+(window['fjidCallbackName']||'');
  115. wd.display.showComponent({show: ['wdDialog'],url:'<ss:serv name='regCms' parm='{"wdConfirmationCaptchaService":"0"}' dest='cmsHome'/>'+str,title: '编辑',width: 900,high: 664});
  116. }
  117. var inputterfjJson={"fj":{"key":"fjid","value":"","name":null,"jlztm":null}};
  118. </script>
  119. </div>
  120. <div class="bottom-div" style="border: none; display:flex;flex-direction: column;position: absolute;">
  121. <div class="bottom-div-button" style="width: 100%;display:flex;justify-content: flex-end; gap:10px;padding-bottom: 10px;padding-top: 10px;">
  122. <ss-bottom-button
  123. class="bottom-button-reject"
  124. text="退回"
  125. @click="onReject"
  126. icon-class="bottom-div-back"
  127. ></ss-bottom-button>
  128. <ss-bottom-button
  129. text="同意"
  130. @click="onSubmit"
  131. icon-class="bottom-div-save"
  132. ></ss-bottom-button>
  133. </div>
  134. </div>
  135. <div class="bottom-div border-top-thick" style="display: none;">
  136. <%-- <div class="bottom-up-div">--%>
  137. <%-- <div class="bottom-up-div-left" style="width: 16%;display: inline-block;height: 100%;line-height: 99px;font-size: 16px;text-align: right;padding-right: 16px;box-sizing: border-box;">--%>
  138. <%-- 审核意见--%>
  139. <%-- </div>--%>
  140. <%-- <div class="bottom-up-div-left-right" style="width: 84%;display: inline-block;float: right;height: 100%;">--%>
  141. <%-- <input type='hidden' name='ynrid' value='' />--%>
  142. <%-- <div id='ynrEdit' style="height: 63px;"></div>--%>
  143. <%-- &lt;%&ndash; 再改,规范命名。Lin--%>
  144. <%-- <inper@ss name="ynr" btn='{name:"附件",key:"fjid",val:""}'/> &ndash;%&gt;--%>
  145. <%-- <script type="text/javascript" charset="utf-8" src="/ss/js/edit.js"></script>--%>
  146. <%-- <ss:inper /><ss:equal val="${empty inputter.encode_ynrid}" val2="false"><input type="hidden" name="ynr_WATCHURL" value='wd.display.showComponent({show:["wdDialog"],url:"<ss:serv parm='{"wdConfirmationCaptchaService":"0","id":"wdVal{id}"}' dest='convInp'/>",title:"转换",width:1024,height:350});' /></ss:equal><script>wd.edit.initInputter("ynr",${inputter.ynrid},${inputter.encode_shid},${inputter.encode_ynrid});document.querySelector('form').addEventListener('submit', function(){if(typeof saveEditor != 'undefined' && saveEditor instanceof Function) saveEditor('ynrEdit');});HTMLFormElement.prototype.subfun = HTMLFormElement.prototype.submit;HTMLFormElement.prototype.submit = function(){if(typeof saveEditor != 'undefined' && saveEditor instanceof Function) saveEditor('ynrEdit');this.subfun();};function addCyy() {wd.display.showComponent({show:["wdDialog"],url:"<ss:serv name='p_gryy_zj' parm='{"wdConfirmationCaptchaService":"0"}' dest='gryyInp'/>",title:"录入常用语",width:571,height:105,minHeight:54,maxHeight:158});}</script><script type="text/javascript" charset="utf-8" >--%>
  147. <%-- function fjidfjEdit(){var fjName='fjid';var fjid=document.getElementsByName('fjid')[0].value;if(fjid==null||fjid==''){$.ajax({type:'post',url:'<ss:serv name='makeAttCms' parm='{"wdConfirmationCaptchaService":"0"}'/>',async:false,data:{name:'fjid',ssNrObjName:'sh',ssNrObjId:'${shid}'},success:function(_fjid){fjid=_fjid;document.getElementsByName('fjid')[0].value=fjid;}});};var str='&nrid=T-'+fjid+'&objectId='+fjid+'&objectName='+fjName+'&callback='+(window['fjidCallbackName']||'');wd.display.showComponent({show: ['wdDialog'],url:'<ss:serv name='regCms' parm='{"wdConfirmationCaptchaService":"0"}' dest='cmsHome'/>'+str,title: '编辑',width: 900,high: 664});}--%>
  148. <%-- </script>--%>
  149. <%-- <script type="text/javascript" charset="utf-8" >--%>
  150. <%-- var inputterfjJson={"fj":{"key":"fjid","value":"","name":null,"jlztm":null}};--%>
  151. <%-- </script>--%>
  152. <%-- </div>--%>
  153. <%-- </div>--%>
  154. <div class="bottom-down-div border-top">
  155. <ss:equal val='${bdlbm}' val2='55'>
  156. <%-- 改为 <data@ss name="agrRes"/>。Lin
  157. <tab@ss name="agrRes"/>
  158. <tab@ss name="rejRes"/> --%>
  159. <ss:data name='agrRes'/>
  160. <ss:data name='rejRes'/>
  161. </ss:equal>
  162. <ss:equal val='${bdlbm}' val2='51'>
  163. <%-- 改为 <data@ss name="agrSus"/>。Lin
  164. <tab@ss name="agrSus"/>
  165. <tab@ss name="rejSus"/> --%>
  166. <ss:data name='agrSus'/>
  167. <ss:data name='rejSus'/>
  168. </ss:equal>
  169. <%--增加,停用,启用以外类别马,显示变动的同意退回--%>
  170. <%-- 改 equal:val1="${bdlbm==1||bdlbm==51||bdlbm==55}" val2="false"。Lin --%>
  171. <ss:notEqual val='${bdlbm}' valList='1,51,55'>
  172. <%-- 改为 <data@ss name="agrChg"/>。Lin
  173. <tab@ss name="agrChg"/>
  174. <tab@ss name="rejChg"/> --%>
  175. <ss:data name='agrChg'/>
  176. <ss:data name='rejChg'/>
  177. </ss:notEqual>
  178. <ss:equal val='${empty agrRes}' val2='false'>
  179. <input type="submit" value="同意" id="agree" class="bottom-button"
  180. <%-- 再改,去掉 wd.display.reset(,统一用 <varServ@ss resize="true"。Lin
  181. onclick='wd.display.reset("dialog",this,
  182. "<ss:serv name='${agrRes.service}' dest='${agrRes.dest}' parm='{shid:"${shid}"}'/>",
  183. this);'/> --%>
  184. onclick='ss.display.reset("dialog",this,"<ss:serv name='${agrRes.service}' dest='${agrRes.dest}' parm='{shid:"${shid}"}'/>",this);'/>
  185. </ss:equal>
  186. <ss:equal val='${empty rejRes}' val2='false'>
  187. <input type="submit" value="退回" id="reject" class="bottom-button"
  188. <%-- 再改,去掉 wd.display.reset(,统一用 <varServ@ss resize="true"。Lin
  189. onclick='wd.display.reset("dialog",this,
  190. "<ss:serv name='${rejRes.service}' dest='${rejRes.dest}' parm='{shid:"${shid}"}'/>",
  191. this);'/> --%>
  192. onclick='ss.display.reset("dialog",this,"<ss:serv name='${rejRes.service}' dest='${rejRes.dest}' parm='{shid:"${shid}"}'/>",this);'/>
  193. </ss:equal>
  194. <ss:equal val='${empty agrSus}' val2='false'>
  195. <input type="submit" value="同意" id="agree" class="bottom-button"
  196. <%-- 再改,去掉 wd.display.reset(,统一用 <varServ@ss resize="true"。Lin
  197. onclick='wd.display.reset("dialog",this,
  198. "<ss:serv name='${agrSus.service}' dest='${agrSus.dest}' parm='{shid:"${shid}"}'/>",this);'/> --%>
  199. onclick='ss.display.reset("dialog",this,"<ss:serv name='${agrSus.service}' dest='${agrSus.dest}' parm='{shid:"${shid}"}'/>",this);'/>
  200. </ss:equal>
  201. <ss:equal val='${empty rejSus}' val2='false'>
  202. <input type="submit" value="退回" id="reject" class="bottom-button"
  203. <%-- 再改,去掉 wd.display.reset(,统一用 <varServ@ss resize="true"。Lin
  204. onclick='wd.display.reset("dialog",this,
  205. "<ss:serv name='${rejSus.service}' dest='${rejSus.dest}' parm='{shid:"${shid}"}'/>",this);'/> --%>
  206. onclick='ss.display.reset("dialog",this,"<ss:serv name='${rejSus.service}' dest='${rejSus.dest}' parm='{shid:"${shid}"}'/>",this);'/>
  207. </ss:equal>
  208. <ss:equal val='${empty agrChg}' val2='false'>
  209. <input type="submit" value="同意" id="agree" class="bottom-button"
  210. <%-- 再改,去掉 wd.display.reset(,统一用 <varServ@ss resize="true"。Lin
  211. onclick='wd.display.reset("dialog",this,
  212. "<ss:serv name='${agrChg.service}' dest='${agrChg.dest}' parm='{shid:"${shid}"}'/>",this);'/> --%>
  213. onclick='ss.display.reset("dialog",this,"<ss:serv name='${agrChg.service}' dest='${agrChg.dest}' parm='{shid:"${shid}"}'/>",this);'/>
  214. </ss:equal>
  215. <ss:equal val='${empty rejChg}' val2='false'>
  216. <input type="submit" value="退回" id="reject" class="bottom-button"
  217. <%-- 再改,去掉 wd.display.reset(,统一用 <varServ@ss resize="true"。Lin
  218. onclick='wd.display.reset("dialog",this,
  219. "<ss:serv name='${rejChg.service}' dest='${rejChg.dest}' parm='{shid:"${shid}"}'/>",this);'/> --%>
  220. onclick='ss.display.reset("dialog",this,"<ss:serv name='${rejChg.service}' dest='${rejChg.dest}' parm='{shid:"${shid}"}'/>",this);'/>
  221. </ss:equal>
  222. <%--
  223. <input type="button" value="同意" class="bottom-button" onclick="@service{submit:true,reset:'dialog',name:'check',dest:'sys_info',param:{shid:'${shid}',sfty:'1'}}@" />
  224. <input type="button" class="bottom-button" value="退回" onclick="@service{submit:true,reset:'dialog',name:'check',dest:'sys_info',param:{shid:'${shid}',sfty:'0'}}@" />
  225. --%>
  226. <input type="button" onclick="ss.display.closeDialog();" class="bottom-button" value="关闭"/>
  227. </div>
  228. </div>
  229. </form>
  230. </div>
  231. <div class="right-side" :class="{'expanded': isRightExpanded, 'pinned': isRightPinned}">
  232. <div class="btn-toggle" @click="toggleRightSide" :style="{'top': (contentHeight - 20) + 'px'}">
  233. <ss-icon
  234. :name="isRightExpanded ? 'arrow-double-right' : 'arrow-double-left'"
  235. type="common"
  236. size="12px">
  237. </ss-icon>
  238. </div>
  239. <div class="right-side-content">
  240. <iframe width="100%" height="100%" frameborder="0"
  241. src="<ss:serv name='selSh' parm='{"wdConfirmationCaptchaService":"0","sqid":"${sqid}"}' dest='shList'/>">
  242. </iframe>
  243. </div>
  244. </div>
  245. </div>
  246. </div>
  247. <%-- <div class="tab-div">
  248. <ul ssNormClazz="tab-normal" ssHovClazz="tab-hover" ssSelClazz="tab-selected">
  249. <ss:rpt name='${tabList}' id='item'>
  250. <li name="${item.name}"
  251. _sizeinfo="width:${item.width},height:${item.height},minHeight:${item.minHeight}, maxHeight:${item.maxHeight}"
  252. ssTabClick="<ss:serv name='${item.service}' dest='${item.dest}' parm='${item.param}'/>">
  253. ${item.desc}
  254. </li>
  255. </ss:rpt>
  256. </ul>
  257. </div>
  258. <div>
  259. <iframe frameborder="none" name="ssTabIframe" width="100%" ></iframe>
  260. </div> --%>
  261. <script>
  262. // var tabHeight=<ss:txt val='${tabHeight}'/>;
  263. // addWdFitHeight("[name=ssTabIframe]",tabHeight); // ("[name=wdTabFrame]",。Lin
  264. </script>
  265. <script type="text/javascript">var wdRecordValue='${wdRecordValue}';</script>
  266. <script type="text/javascript" src="/ss/js/wdRecord.js"></script>
  267. <script type="text/javascript">(function(){wdRecord("chgChkTab");})();</script>
  268. <script type="text/javascript" src="/ss/js/wdFitHeight.js"></script>
  269. <script type="text/javascript">initWdFitHeight(33)</script>
  270. <script type="text/javascript">initWdFitHeightFunction=function(){initWdFitHeight(33);};</script>
  271. <script type='text/javascript'>wd.display.wdTabNo='${ssNextTabNo}';</script><script type="text/javascript" src="/ss/js/wdDrag.js"></script>
  272. <script type="text/javascript" src="/ss/js/configurableTab.js"></script>
  273. <script type="text/javascript">
  274. wd.configurableTab.init(1,"chgChkTab");</script>
  275. <ss:equal val="${empty resizeComponent}" val2="false">
  276. <script>{var iframe=wd.display.getFrameOfWindow();
  277. if(iframe&&iframe.contentWindow==window)
  278. wd.display.resizeComponent(${resizeComponent.width}, ${resizeComponent.height}, ${empty resizeComponent.minHeight?'null':resizeComponent.minHeight}, ${empty resizeComponent.maxHeight?'null':resizeComponent.maxHeight});}</script>
  279. </ss:equal>
  280. <ss:help/>
  281. </body>
  282. <script type="text/javascript">
  283. try{wd.display.showMsgPopup('${msg}');
  284. }catch(err){console.error(err);}
  285. </script>
  286. <ss:equal val="${empty wdclosewindowparam}" val2="false">
  287. <script type="text/javascript">
  288. try{wd.display.setCloseWindowParam('${wdclosewindowparam}');
  289. }catch(err){console.error(err);}
  290. </script>
  291. </ss:equal>
  292. </html>
  293. <script type="text/javascript">
  294. <%--alert('{${item.paramStr},bdlbm:"${bdlbm}",encode_shid:"${encode_shid}"}');--%>
  295. window.SS.dom.tabConfig = window.SS.dom.tabConfig || [];
  296. <ss:rpt name='${tabList}' id='item'>
  297. {
  298. <%--console.log('@@## name="${item.service}",dest="${item.dest}",parm="{${item.paramStr}",bdlbm:"${bdlbm}",encode_shid:"${encode_shid}"}');--%>
  299. <%--console.log("@@## <ss:serv name='${item.service}' dest='${item.dest}' parm='${item.param}'/>");--%>
  300. let item = {
  301. url: "<ss:serv name='${item.service}' dest='${item.dest}' parm='${item.param}'/>",
  302. <%--url: "<ss:serv name='${item.service}' dest='${item.dest}' parm='{${item.paramStr},bdlbm:"${bdlbm}",encode_shid:"${encode_shid}"}'/>",--%>
  303. title:"${item.desc}",
  304. name:"${item.name}",
  305. <%-- 下面的属性是为了计算选项卡高度fitHeight准备的 --%>
  306. width:"${item.width}",
  307. height:"${item.height}",
  308. minHeight:"${item.minHeight}",
  309. maxHeight:"${item.maxHeight}"
  310. };
  311. window.SS.dom.tabConfig.push(item);
  312. }
  313. </ss:rpt>
  314. console.log('tabConfig:'+JSON.stringify(window.SS.dom.tabConfig));
  315. tokenCleanser("<ss:serv name='ss.clearPageToken'/>", {tokenList:"<%= pageContext.getAttribute(ss.page.PageC.PAGE_tokenList)%>"});
  316. </script>
  317. <script type="text/javascript" src="/ss/instructor/instructor-drag.js"></script>
  318. <script type="text/javascript" src="/ss/instructor/instructor-writer.js"></script>
  319. <script type="text/javascript" src="/ss/instructor/instructor-cursor.js"></script>
  320. <script type="text/javascript" src="/ss/instructor/instructor-record.js"></script>
  321. <script type="text/javascript" src="/ss/instructor/instructor-assist.js"></script>
  322. <script type="text/javascript" src="/ss/js/growHeight.js"></script>
  323. <script type="text/javascript" src="/ss/instructor/main.js"></script>
  324. <script type="module">
  325. const data = {
  326. tabConfig: window.SS.dom.tabConfig.map(tab => ({
  327. ...tab,
  328. cgxList: false,
  329. })),
  330. leftDisplay: true,
  331. footerButtons: [
  332. ],
  333. contentHeight: 0,
  334. // 添加右侧边栏状态
  335. isRightExpanded: false,
  336. isRightPinned: false,
  337. expandTimer: null,
  338. rightSideIcon: 'arrow-double-left' // 默认图标
  339. }
  340. SS.ready(function () {
  341. wd.edit.initInputter("ynr",${inputter.ynrid},${inputter.encode_shid},${inputter.encode_ynrid});
  342. const ynrEditContent = $('#ynrEdit').html();
  343. // console.log("ynrEditContent",ynrEditContent)
  344. const app = window.SS.dom.initializeFormApp({
  345. el: "#app",
  346. data(){
  347. return data;
  348. },
  349. methods:{
  350. onSubmit() {
  351. $("#agree").click();
  352. },
  353. onReject() {
  354. $("#reject").click();
  355. },
  356. onDialogClose() {
  357. wd.display.closeDialog();
  358. },
  359. handleMenuChange(menu){
  360. console.log('handleMenuChange', menu);
  361. },
  362. async showTagState(url) {
  363. // 从每个tab的url中提取token
  364. const tokenList = this.tabConfig.map(tab => {
  365. const match = /ssToken=([^&]+)/.exec(tab.url);
  366. return match ? match[1] : null;
  367. });
  368. try {
  369. const response = await $.post(url, {
  370. tokenList: JSON.stringify(tokenList)
  371. });
  372. const result = eval("(" + response + ")");
  373. // 更新每个tab的状态
  374. this.tabConfig = this.tabConfig.map((tab, index) => {
  375. if (!result[index]) return tab;
  376. return {
  377. ...tab,
  378. cgxList: result[index].cgxList === true,
  379. };
  380. });
  381. console.log('更新标签状态成功:', this.tabConfig);
  382. } catch (error) {
  383. console.error('获取标签状态失败:', error);
  384. }
  385. },
  386. // 处理右侧边栏展开/收缩
  387. toggleRightSide() {
  388. if (this.isRightPinned) {
  389. // 如果当前是常驻状态,点击则取消常驻并收起
  390. this.isRightPinned = false;
  391. this.isRightExpanded = false;
  392. } else {
  393. // 如果当前不是常驻状态,点击则切换常驻状态
  394. this.isRightPinned = !this.isRightPinned;
  395. this.isRightExpanded = this.isRightPinned;
  396. }
  397. // 更新图标
  398. this.rightSideIcon = this.isRightExpanded ? 'arrow-double-right' : 'arrow-double-left';
  399. },
  400. // 鼠标进入右侧边栏
  401. onRightSideEnter() {
  402. if (!this.isRightPinned) {
  403. // 清除之前的计时器
  404. if (this.expandTimer) clearTimeout(this.expandTimer);
  405. // 设置延迟展开
  406. this.expandTimer = setTimeout(() => {
  407. this.isRightExpanded = true;
  408. this.rightSideIcon = 'arrow-double-right';
  409. }, 200);
  410. }
  411. },
  412. // 鼠标离开右侧边栏
  413. onRightSideLeave() {
  414. if (!this.isRightPinned) {
  415. // 清除之前的计时器
  416. if (this.expandTimer) clearTimeout(this.expandTimer);
  417. // 设置延迟收缩
  418. this.expandTimer = setTimeout(() => {
  419. this.isRightExpanded = false;
  420. this.rightSideIcon = 'arrow-double-left';
  421. }, 300);
  422. }
  423. }
  424. },
  425. mounted() {
  426. $('#ynrEdit').html(ynrEditContent);
  427. // 4. 确保所有脚本加载完成后再初始化nr0310
  428. if(window.nr0310 && window.nr0310.init) {
  429. const img = $('#ynrEdit').find("img")[0];
  430. if(img) {
  431. // 等待img加载完成后再初始化
  432. if(img.complete) {
  433. nr0310.init(img);
  434. } else {
  435. img.onload = function() {
  436. nr0310.init(img);
  437. }
  438. }
  439. }
  440. }
  441. this.showTagState("<ss:serv name='ss.wrTabState' parm='{ssObjName:"${ssObjName}",ssObjId:"${ssObjId}","${ssObjIdName}":"${ssObjId}",wdConfirmationCaptchaService:"0",dataType:"${dataType}"}'/>");
  442. this.contentHeight = window.innerHeight - 170;
  443. const rightSide = document.querySelector('.right-side');
  444. rightSide.addEventListener('mouseenter', this.onRightSideEnter);
  445. rightSide.addEventListener('mouseleave', this.onRightSideLeave);
  446. }
  447. })
  448. window.SS.dom.currentApp = app;
  449. })
  450. </script>