| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312 |
- <%@ page language="java" pageEncoding="UTF-8" isELIgnored="false" %>
- <%@ taglib uri="/ssTag" prefix="ss"%>
- <%pageContext.setAttribute("wdpageinformation","{'hastab':'1'}");%>
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="cache-control" content="no-cache">
- <meta http-equiv="expires" content="0">
- <script>window.loginStatus="${empty sessionScope['ssUser']?'0':'1'}"</script>
- <ss:skin file='main.css'/>
- <script type="text/javascript" src="/ss/jquery/jquery.js"></script>
- <script type="text/javascript" src="/ss/artdialog/artDialogUtil.js"></script>
- <script type="text/javascript" src="/ss/js/base.js"></script>
- <script> if(!window.wd) var wd={}; if(!wd.display) wd.display={}; wd.display.wdDialogId="objChg"; if(!wd.app) wd.app={}; wd.app.name='pms';</script>
- <script type="text/javascript" src="/ss/js/masklayer.js"></script>
- <script type="text/javascript" src="/ss/js/wdDialogInit.js"></script>
- <script type="text/javascript" src="/ss/js/common.js"></script>
- <script type="text/javascript" src="/ss/js/display.js"></script>
- <script type="text/javascript" src="/ss/js/edit.js"></script>
- <script type="text/javascript" src="/ss/nicescroll/jquery.nicescroll.js"></script>
- <script type="text/javascript" src="/ss/nicescroll/jquery.nicescroll.iframehelper.min.js"></script>
- <script src="/js/load.js"></script> <%-- ="/newUI/ss/js/base.js"。Lin(新UI) --%>
- <style type="text/css">
- .lightTab-selected,.lightTab{height: 34px;}
- </style>
- </head>
- <body>
- <%
- pageContext.setAttribute("dataType","change");
- %>
- <%-- 改为 <data@ss name="obj"/>。Lin
- <tab@ss name=""/> --%>
- <%-- <data@ss name="obj"/> 再去掉,好像不需要。Lin --%>
- <ss:tab name='chgBaseInfo,child'/>
- <%-- 改为 <jsp@ss file="/ss/tabState.jsp"/>。Lin
- <tab@ss name="tagState"/> --%>
- <%@include file="/ss/clip/tabState.jsp"%>
- <script>
- function addWdFitHeight(selecter,param){
- console.log(selecter);
- console.log(param);
- var aa="";
- if(param.minHeight){
- aa+="min:"+param.minHeight+",";
- }
- if(param.maxHeight){
- aa+="max:"+param.maxHeight+",";
- }
- if(param&&aa){
- aa=aa.substr(0,aa.length-1)
- document.querySelector(selecter).setAttribute("ssFith",aa); // ("wdFitHeight",。Lin
- }
- }
- </script>
- <%--<div class="tab-div">
- <ul ssNormClazz="tab-normal1111" ssHovClazz="tab-hover11111" ssSelClazz="tab-selected11111">
- <ss:rpt name='${tabList}' id='item'>
- <li name="${item.name}"--%> <%-- wdTabSite="${item.wdTabSite}"。先去掉,用到再弄。好像是 个人选项卡 的东西。Lin --%>
- <%--_sizeinfo="width:${item.width},height:${item.height},minHeight:${item.minHeight}, maxHeight:${item.maxHeight}"--%>
- <%-- 增加 删除二级对象的基本情况变动 功能,使用页面参数混写来传递 bdlbm 和 sqid。Lin
- wdTabClick="<varServ@ss name='${item.service}' dest='${item.dest}' parm='${item.param}'/>"> --%>
- <%-- 再改,不在页面混写。Lin
- ssTabClick="<ss:serv name='${item.service}' dest='${item.dest}' parm='{${item.paramStr},bdlbm:"${bdlbm}",sqid:"${sqid}"}'/>"> --%>
- <%--ssTabClick="<ss:serv name='${item.service}' dest='${item.dest}' parm='${item.param}'/>">
- ${item.desc}
- </li>
- </ss:rpt>
- </ul>
- </div>
- <div>
- <iframe frameborder="none" name="ssTabIframe" width="100%" ></iframe>
- </div>--%>
- <div id="app">
- <div class="project-edit-container">
- <ss-sub-tab
- :menu-list="tabConfig"
- active-menu="相对方"
- @menu-change="handleMenuChange"
- :footer-buttons="footerButtons"
- :left-display="leftDisplay"
- />
- </div>
- </div>
- <script>
- var tabHeight=<ss:txt val='${tabHeight}'/>;
- //addWdFitHeight("[name=ssTabIframe]",tabHeight); ("[name=wdTabFrame]",。Lin
- $(document).ready(function(){
- /* 改,规范 wdTabFrame 命名。Lin
- $("iframe[name=wdTabFrame]").height($("iframe[name=wdTabFrame]").height() -5)
- */ $("iframe[name=ssTabIframe]").height($("iframe[name=ssTabIframe]").height() -5)
- })
- </script>
- <script type="text/javascript">var wdRecordValue='${wdRecordValue}';</script>
- <script type="text/javascript" src="/ss/js/wdRecord.js"></script>
- <script type="text/javascript">(function(){wdRecord("objChg");})();</script>
- <script type="text/javascript" src="/ss/js/wdFitHeight.js"></script>
- <script type="text/javascript">initWdFitHeight(30)</script>
- <script type="text/javascript">initWdFitHeightFunction=function(){initWdFitHeight(30);};</script>
- <script type='text/javascript'>wd.display.wdTabNo='${ssNextTabNo}';</script><script type="text/javascript" src="/ss/js/wdDrag.js"></script>
- <script type="text/javascript" src="/ss/js/configurableTab.js"></script>
- <script type="text/javascript">
- wd.configurableTab.init(1,"objChg");</script>
- <ss:equal val="${empty resizeComponent}" val2="false">
- <script>{var iframe=wd.display.getFrameOfWindow();
- if(iframe&&iframe.contentWindow==window)
- wd.display.resizeComponent(${resizeComponent.width}, ${resizeComponent.height}, ${empty resizeComponent.minHeight?'null':resizeComponent.minHeight}, ${empty resizeComponent.maxHeight?'null':resizeComponent.maxHeight});}</script>
- </ss:equal>
- <ss:help/>
- </body>
- <script type="text/javascript">
- try{wd.display.showMsgPopup('${msg}');
- }catch(err){console.error(err);}
- </script>
- <ss:equal val="${empty wdclosewindowparam}" val2="false">
- <script type="text/javascript">
- try{wd.display.setCloseWindowParam('${wdclosewindowparam}');
- }catch(err){console.error(err);}
- </script>
- </ss:equal>
- </html>
- <script type="text/javascript">
- <%-- 增加初始化选项卡json start Ben --%>
- window.SS.dom.tabConfig = window.SS.dom.tabConfig || [];
- console.log(window.SS.dom.tabConfig);
- <ss:rpt name='${tabList}' id='item'>
- {
- let item = {
- <%--url: "<ss:serv name='${item.service}' dest='${item.dest}' parm='{${item.paramStr},bdlbm:"${bdlbm}",sqid:"${sqid}"}'/>",--%>title:"${item.desc}",
- url:"<ss:serv name='${item.service}' dest='${item.dest}' parm='${item.param}'/>",
- name:"${item.name}",
- <%-- 下面的属性是为了计算选项卡高度fitHeight准备的 --%>
- width:"${item.width}",
- height:"${item.height}",
- minHeight:"${item.minHeight}",
- maxHeight:"${item.maxHeight}"
- };
- window.SS.dom.tabConfig.push(item);
- }
- </ss:rpt>
- console.log('tabConfig:'+JSON.stringify(window.SS.dom.tabConfig));
- <%-- 增加初始化选项卡json end Ben --%>
- tokenCleanser("<ss:serv name='ss.clearPageToken'/>", {tokenList:"<%= pageContext.getAttribute(ss.page.PageC.PAGE_tokenList)%>"});
- </script>
- <script type="module">
- console.log("objChg.jsp");
- <%
- // System.out.println("@@@@dataType:"+pageContext.getAttribute("dataType"));
- String dataType = pageContext.getAttribute("dataType").toString();
- if(dataType.equals("change")){
- if(request.getAttribute("saveAndCommit")==null)
- request.setAttribute("saveAndCommit","dw_bd_tj");
- if(request.getAttribute("saveAndCommitDest")==null)
- request.setAttribute("saveAndCommitDest","chgSure");
- }else {
- if(request.getAttribute("saveAndCommit")==null)
- request.setAttribute("saveAndCommit","dw_lr_tj");
- if(request.getAttribute("saveAndCommitDest")==null)
- request.setAttribute("saveAndCommitDest","addSure");
- }
- if(request.getAttribute("saveAndCommitParam")==null){
- String objName = request.getParameter("ssObjName");
- String objId = request.getParameter("ssObjId");
- request.setAttribute("saveAndCommitParam","\"thisViewObject\":\""+objName+"\",\"dwid\":\""+objId+"\"");
- // request.setAttribute("saveAndCommitParam","\"thisViewObject\":\"dw\",\"dwid\":\"1011181\"");
- }
- if(request.getAttribute("saveAndCommitwidth")==null)
- request.setAttribute("saveAndCommitwidth","881");
- if(request.getAttribute("saveAndCommitheight")==null)
- request.setAttribute("saveAndCommitheight","361");
- if(request.getAttribute("saveAndCommitminheight")==null)
- request.setAttribute("saveAndCommitminheight","515");
- if(request.getAttribute("saveAndCommitmaxheight")==null)
- request.setAttribute("saveAndCommitmaxheight","515");
- %>
- //在本窗口提交表单
- function doThisWindowSaveAndCommit(){
- let url = null;
- //下面这行运行时报错,暂时注释掉
- <%--url = "<ss:serv name='${saveAndCommit}' dest='${saveAndCommitDest}' parm='${saveAndCommitParam}' />";--%>
- <%--let saveAndCommit = '${saveAndCommit}';--%>
- <%--let saveAndCommitDest = '${saveAndCommitDest}';--%>
- <%--let saveAndCommitParam = '${saveAndCommitParam}';--%>
- <%--let dataType = '${dataType}';--%>
- // let url = '';
- let width = ${saveAndCommitwidth};
- let height = ${saveAndCommitheight};
- let minHeight = ${saveAndCommitminheight};
- let maxHeight = ${saveAndCommitmaxheight};
- const f = document.getElementById("commitForm");
- f.action = url;
- wd.display.resizeComponent(width, height, minHeight, maxHeight);
- f.submit();<%-- 提交表单 --%>
- }
- const data = {
- tabConfig: window.SS.dom.tabConfig.map(tab => ({
- ...tab,
- cgxList: false,
-
- })),
- leftDisplay: true,
- footerButtons: [
- {
- text: "保存并提交",
- onclick: function(){
- // 左侧区域隐藏
- const app = window.SS.dom.currentApp;
- // 等待iframe加载完成后执行
- const $iframe = $('#sub-tab-iframe');
- if ($iframe.length) {
- const $saveAndCommitBtn = $iframe.contents().find('#saveAndCommit');
- if ($saveAndCommitBtn.length) {
-
- $saveAndCommitBtn.click();
-
- if (app) {
- app.$data.leftDisplay = false;
- }
- $(".sub-tab-iframe").css('display', 'none');
- $("#sub-tab-iframe").css('display', '');
-
- } else {
- //在本窗口提交表单
- doThisWindowSaveAndCommit();
- // console.error('未找到保存并提交按钮');
- // alert('未找到保存并提交按钮');
- }
- } else {
- //在本窗口提交表单
- doThisWindowSaveAndCommit();
- // console.error('未找到iframe元素');
- }
- },
- }
- ]
- }
- SS.ready(function () {
- const app = window.SS.dom.initializeFormApp({
- el: "#app",
- data(){
- return data;
- },
- methods:{
- handleMenuChange(menu){
- console.log('handleMenuChange', menu);
- },
- async showTagState(url) {
- // 从每个tab的url中提取token
- const tokenList = this.tabConfig.map(tab => {
- const match = /ssToken=([^&]+)/.exec(tab.url);
- return match ? match[1] : null;
- });
- try {
- const response = await $.post(url, {
- tokenList: JSON.stringify(tokenList)
- });
-
- const result = eval("(" + response + ")");
-
- // 更新每个tab的状态
- this.tabConfig = this.tabConfig.map((tab, index) => {
- console.log('result[index]:', result[index]);
- if (!result[index]) return tab;
- return {
- ...tab,
- cgxList: result[index].cgxList === true,
- };
- });
- console.log('更新标签状态成功:', this.tabConfig);
- } catch (error) {
- console.error('获取标签状态失败:', error);
- }
- }
- },
- mounted() {
- this.showTagState("<ss:serv name='ss.wrTabState' parm='{ssObjName:"${ssObjName}",ssObjId:"${ssObjId}","${ssObjIdName}":"${ssObjId}",wdConfirmationCaptchaService:"0",dataType:"${dataType}"}'/>");
- }
- })
-
- window.SS.dom.currentApp = app;
-
- })
- </script>
|