| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447 |
- <%@ page import="ss.bpm.BpmC" %>
- <%@ page import="ss.AppC" %>
- <%@ page language="java" pageEncoding="UTF-8" isELIgnored="false" %>
- <%@ taglib uri="/ssTag" prefix="ss"%>
- <% pageContext.setAttribute(ss.page.PageC.PAGE_objName,"sh");%>
- <%pageContext.setAttribute("wdpageinformation","{'hastab':'0'}");%>
- <!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="urgeHomep_curTask"; 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>
- <link rel="stylesheet" type="text/css" href="/ss/window/theme/dhtmlxwindows.css">
- <link rel="stylesheet" type="text/css" href="/ss/window/theme/dhx_blue/dhtmlxwindows_dhx_blue.css">
- <script type="text/javascript" src="/ss/window/dhtmlxcommon.js"></script>
- <script type="text/javascript" src="/ss/window/dhtmlxwindows.js"></script>
- <script type="text/javascript" src="/ss/window/dhtmlxcontainer.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/datePicker/WdatePicker.js"></script>
- <script type="text/javascript" src="/ss/js/edit.js"></script>
- <script src="/js/load.js"></script> <%-- ="/newUI/ss/js/base.js"。Lin(新UI) --%>
- <style>
- .icon-unchecked,.icon-checked{
- margin-top: 9px;
- }
- .longCardList-highlight{
- width: 765px !important;
- white-space: nowrap;
- text-overflow: ellipsis;
- overflow: hidden;
- }
- #sm{
- border: 1px solid #e1e1e1;
- }
- .input-div{
- width:95% !important;
- box-sizing: border-box;
- }
- </style>
- </head>
- <body>
- <div id="app">
-
- <div class="content-div" ssFith="true" style="height:600px;">
- <div class="longCardList-div" style="width: calc(100% - 4px);box-sizing: border-box;">
- <table class="scrollbar" style="max-height: 100%;width: 100%;">
- <tbody ssFith='{list:true,rowHeight:66}' style="width: 100%;padding: 0px 4px 0px 11px;box-sizing: border-box;">
- <%-- 去掉闭标签 />,与下面的 </tr> 不配对。Lin
- 再改为 WebC.REQ_objName、WebC.REQ_objId,避免与数据表里的 对象名、对象ID 字段重名
- <tr onclick='wd.display.showComponent({show:["wdDialog"],hide:[],url:"<wd:token service='${button.service}' dest='${button.dest}' param='"dxm":"${dxm}","dxid":"${dxid}","${objectId}":"${dxid}","dataType":"play"' test='false' />",title:"${button.title}",width:${button.width},height:${button.height},minHeight:${button.minHeight},maxHeight:${button.maxHeight},showTitle:${button.showTitle}});'/> --%>
- <tr onclick='wd.display.showComponent({show:["wdDialog"],url:"<ss:serv name='${button.service}' dest='${button.dest}' parm='{ssObjName:"${ssObjName}",ssObjId:"${ssObjId}","${objectId}":"${ssObjId}",dataType:"play"}'/>",title:"${button.title}",width:"${button.width}",height:"${button.height}",minHeight:"${button.minHeight}",maxHeight:"${button.maxHeight}",showTitle:"${button.showTitle}"});'>
- <td class="hLine">
- <div class="longCardList-info" style="font-size: 0px;display: inline-block;float: left;">
- <span class="longCardList-highlight" style="margin-bottom: 3px;">
- <a>
- <%-- 去掉,去掉 objectName.codebook。ObjU.toPlayDescByFieldVal( 已经翻译为 playDesc 了。Lin
- <wd:equal leftValue="${empty objectName.codebook}" rightValue="true">
- --%>
- <ss:txt val='${objectName.value}'/>
- <input id="atext" type="hidden" value="${objectName.value}"/>
- <%-- 去掉,去掉 objectName.codebook。ObjU.toPlayDescByFieldVal( 已经翻译为 playDesc 了。Lin
- </wd:equal>
- <wd:equal leftValue="${empty objectName.codebook}" rightValue="false">
- <codebook:translate name="${objectName.codebook}" value="${objectName.value}" />
- <input id="atext" type="hidden" value="<codebook:translate name="${objectName.codebook}" value="${objectName.value}" />"/>
- </wd:equal>
- --%>
- </a>
- </span>
- <ss:equal val='${empty abstractName.value}' val2='false'>
- <div id="cardList-abstract" class="longCardList-dim" style="height: auto;min-height: 20px;max-height: 40px;">
- <%-- 去掉,去掉 abstractName.codebook。ObjU.toPlayDescByFieldVal( 已经翻译为 playDesc 了。Lin
- <wd:equal leftValue="${empty abstractName.codebook}" rightValue="true">
- --%>
- <ss:txt val='${abstractName.value}'/>
- <%-- 去掉,去掉 abstractName.codebook。ObjU.toPlayDescByFieldVal( 已经翻译为 playDesc 了。Lin
- </wd:equal>
- <wd:equal leftValue="${empty abstractName.codebook}" rightValue="false">
- <codebook:translate name="${abstractName.codebook}" value="${abstractName.value}" />
- </wd:equal>
- --%>
- </div>
- </ss:equal>
- <ss:equal val='${empty categoryNoList}' val2='false'>
- <div class="longCardList">
- <ss:rpt name='categoryNoList' id='item'>
- <span>
- <ss:txt val='${item.dest}'/>
- <ss:equal val='${empty item.dest}' val2='false'>
- :
- </ss:equal>
- <%-- 去掉,去掉 categoryNoList.item.codebook。ObjU.toPlayDescByFieldVal( 已经翻译为 playDesc 了。Lin
- <wd:equal leftValue="${empty item.codebook}" rightValue="true">
- --%>
- <ss:txt val='${item.value}'/>
- <%-- 去掉,去掉 categoryNoList.item.codebook。ObjU.toPlayDescByFieldVal( 已经翻译为 playDesc 了。Lin
- </wd:equal>
- <wd:equal leftValue="${empty item.codebook}" rightValue="false">
- <codebook:translate name="${item.codebook}" value="${item.value}" />
- </wd:equal>
- --%>
- </span>
- </ss:rpt>
- </div>
- </ss:equal>
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div class="nbFrame">
- <div id="nbSelected" ssSelClazz="list-checkedIcon" class="scrollbar">
- <ss:rpt name='shList' id='sh'>
- <div ssObjId='${sh.shryid}' shid="${sh.shid}" isSq="true" class='list nb-Div' style='overflow:hidden;'>
- <div class='nbLeft'>
- <span class="icon-unchecked" style="float: left;margin-right: 6px"></span>
- <span class="indenter cursor icon-doc" style="padding-left: 0px;"></span>
- <span class='nbName list-dim' style='display: inline-block;float: left;width: 85px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;height:41px;line-height:41px;'>
- <%-- 再改,直接用 ${sh.shryxm}。已在 UrgeHomepServ.searchTask() 翻译好了。Lin
- <ss:cbTrans cb='ry' val='${sh.shryid}'/> --%>
- ${sh.shryxm}
- </span>
- <div class='sj list-smallDim cursor' style='float: right;display: flex;flex-direction: column;align-items: center;justify-content: center;margin: 0 10px;'>
- <span class="cursor">
- <ss:txt val='${sh.fssj}' fmt='HH:mm ' miniDate='false'/>
- </span>
- <span class="cursor">
- <ss:txt val='${sh.fssj}' fmt='MM-dd ' miniDate='false'/>
- </span>
- </div>
- <div class="vLine-dashed" style="float:right;display:inline-block;width:1px;height:30px;margin-top:5px;">
- </div>
- </div>
- </div>
- </ss:rpt>
- </div>
- </div>
- </div>
- <form id="sendMsgDialog" method="post">
- <input type="hidden" id="shidList" name="shidList" value=""/>
- <%-- 再增加 shryidList,收回等同于审核人的退回。Lin
- 原,在 BpmServ.forceRejTask() 里,使用当前登录用户作为审核人,导致 "当前操作人不是改当前审核节点的审核人或者代理人" --%>
- <input type="hidden" id="shryidList" name="shryidList" value=""/>
- <div class="" style="width: 100%;height:65px;border-top: 1px solid rgb(210, 210, 210);">
- <input name="title" id="title" type="hidden" value="${sq.mc}" />
- <div id="sm" width="73%" height="63px" style="margin: 20px;width: 100%;"></div>
- <script type="text/javascript" charset="utf-8" src="/ss/js/growHeight.js"></script>
- <script type="text/javascript" charset="utf-8" src="/ss/js/edit.js"></script>
- <script type="text/javascript" charset="utf-8" >
- wd.edit.initGrowHigh('sm','null',{},null,false);
- </script>
- </div>
- <div class="bottom-div" style="border: none; display:flex;flex-direction: column;position: absolute;">
- <div class="bottom-div-button" style="width: 100%;display:flex;justify-content: flex-end; gap:10px;padding-bottom: 10px;padding-top: 10px;">
- <ss-bottom-button
- text="催促"
- onclick="sendMsg();"
- ></ss-bottom-button>
- <ss-bottom-button
- text="代签"
- onclick="dq();"
- ></ss-bottom-button>
- <ss-bottom-button
- text="收回"
- onclick="ch();"
- ></ss-bottom-button>
- <ss-bottom-button
- text="终止整个流程"
- onclick="forceClBpm();"
- ></ss-bottom-button>
- <%-- 补发start 补发可能有多个,但系只显最新第一个--%>
- <%-- 改。Lin
- <wd:equal leftValue="${not empty bbList}" rightValue="true"> --%>
- <ss:equal val='${empty bbList}' val2='false'>
- <ss:rpt name='${bbList}' id='bb'>
- <ss:equal val='${index}' val2='0'>
- <ss-bottom-button
- text="补发"
- onclick="wd.display.showComponent({show:['wdDialog'],url:'<ss:serv name='${bb.service}' dest='${bb.dest}' parm='${bb.param}'/>',title:'${bb.title}',width:'${bb.width}',height:'${bb.height}',minHeight:'${empty bb.minHeight? 'null' : bb.minHeight}',maxHeight:'${empty bb.maxHeight? 'null' : bb.maxHeight}'});;
- event.stopPropagation();')"
- ></ss-bottom-button>
- </ss:equal>
- </ss:rpt>
- </ss:equal>
- <%-- 补发end--%>
- <ss-bottom-button
- text="关闭"
- onclick="wd.display.closeDialog();"
- ></ss-bottom-button>
- </div>
- </div>
- <div class="bottom-div" style="display: none;">
- <div class="bottom-up-div">
- <%-- <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;">
- 说明
- </div> --%>
- <%-- <div class="bottom-up-div-left-right" style="width: 84%;display: inline-block;float: right;height: 100%;"> --%>
- <%-- <input name="title" id="title" type="hidden" value="${sq.mc}" />
- <div id="sm" width="73%" height="63px" style="margin-top: 20px;border: 1px solid #e1e1e1;"></div>
- <script type="text/javascript" charset="utf-8" src="/ss/js/growHeight.js"></script>
- <script type="text/javascript" charset="utf-8" src="/ss/js/edit.js"></script>
- <script type="text/javascript" charset="utf-8" >
- wd.edit.initGrowHigh('sm','null',{},null,false);
- </script> --%>
- <%-- </div> --%>
- </div>
- <div class="bottom-down-div" >
- <input type="button" name="button" onclick='sendMsg();' value="催促" class="bottom-button"/>
- <input type="button" name="button" onclick='dq();' value="代签" class="bottom-button"/>
- <input type="button" name="button" onclick='ch()' value="收回" class="bottom-button"/>
- <input type="button" name="button" onclick='forceClBpm()' value="终止整个流程" class="bottom-button" /> <%-- 增加。Lin --%>
- <%-- 补发start 补发可能有多个,但系只显最新第一个--%>
- <%-- 改。Lin
- <wd:equal leftValue="${not empty bbList}" rightValue="true"> --%>
- <ss:equal val='${empty bbList}' val2='false'>
- <ss:rpt name='${bbList}' id='bb'>
- <ss:equal val='${index}' val2='0'>
- <input type="button" name="bb" value="补发" class="bottom-button"
- onclick='wd.display.showComponent({show:["wdDialog"],url:"<ss:serv name='${bb.service}' dest='${bb.dest}' parm='${bb.param}'/>",title:"${bb.title}",width:"${bb.width}",height:"${bb.height}",minHeight:"${empty bb.minHeight? "null" : bb.minHeight}",maxHeight:"${empty bb.maxHeight? "null" : bb.maxHeight}"});;
- event.stopPropagation();'
- />
- </ss:equal>
- </ss:rpt>
- </ss:equal>
- <%-- 补发end--%>
- <input type="button" name="button" onClick="wd.display.closeDialog();" value="关闭" class="bottom-button" />
- </div>
- </div>
- </div>
- <input name='wdComponentID' type='hidden' value='urgeHomep_curTask'/></form>
- <script type="text/javascript">var wdRecordValue='${wdRecordValue}';</script>
- <script type="text/javascript" src="/ss/js/wdRecord.js"></script>
- <script type="text/javascript">(function(){wdRecord("urgeHomep_curTask");})();</script>
- <script type="text/javascript" src="/ss/js/wdFitHeight.js"></script>
- <script type="text/javascript">initWdFitHeight(150)</script>
- <script type="text/javascript">initWdFitHeightFunction=function(){initWdFitHeight(150);};</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>
- <script>
- $(function(){
- var _div = $(".nb-Div");
- console.log(_div);
- _div.each(function(index){
- $(this).on("click",function(){
- if($(this).hasClass("list-checkedIcon")){
- $(this).find('.icon-checked').addClass('icon-unchecked').removeClass('icon-checked');
- $(this).removeClass("list-checkedIcon");
- }else{
- $(this).addClass("list-checkedIcon");
- $(this).find('.icon-unchecked').addClass('icon-checked').removeClass('icon-unchecked');
- }
- var shidList="";//已选中shidList
- $(".list-checkedIcon").each(function(){
- if($(this).attr("shid"))
- shidList+=$(this).attr("shid")+ '<%=AppC.SEP_abbrJson%>'; // +"|"。改为 ","。Lin
- })
- $("#shidList").val(shidList);
- /// 再增加 shryidList,收回等同于审核人的退回。Lin
- // 原,在 BpmServ.forceRejTask() 里,使用当前登录用户作为审核人,导致 "当前操作人不是改当前审核节点的审核人或者代理人"
- var shryidList="";//已选中shryidList
- $(".list-checkedIcon").each(function(){
- if($(this).attr("shid"))
- shryidList += $(this).attr("ssObjId") + '<%=AppC.SEP_abbrJson%>'; // ("wdObjectId") +"|"。改为 ","。Lin
- })
- $("#shryidList").val(shryidList);
- ///
- })
- })
- })
- function sendMsg() {
- console.log("------");
- var arr = new Array();
- var shid_arr = new Array();
- var _divs = $(".list-checkedIcon");
- if(_divs.length>0){
- _divs.each(function(index){
- arr.push($(this).attr("ssObjId")); // ("wdObjectId"))。Lin
- shid_arr.push($(this).attr("shid"));
- });
- }
- if(arr.length < 1) {
- wd.display.alert("请选择一个消息接收用户");
- return;
- }
- var atext =$("#atext").val();
- var title =$("#title").val();
- var content=$("textarea[name='sm']").val();
- var sqid = "${sqid}";
- console.log("??-"+content);
- if(!content||content==null||content==''){
- wd.display.alert("请选择填写催促内容");
- return;
- }
- //发送消息弹窗
- var json = JSON.parse('{"title":"'+encodeURIComponent(title)+'","shid":"'+encodeURIComponent(shid_arr)+'","atext":"'+encodeURIComponent(atext)+'","content":"'+encodeURIComponent(content)+'","shryid":"'+arr+'","sqid":"'+encodeURIComponent(sqid)+'"}');
- var url = '@service{name:"sendMsg",dest:"sys_info",param:{"title":"ssVal{title}","shid":"ssVal{shid}","atext":"ssVal{atext}","content":"ssVal{content}","shryid":"ssVal{shryid}","sqid":"ssVal{sqid}"}}@';
- url = wd.display.replaceDynamicParam(url, json);
- $('#sendMsgDialog').attr('action',url);
- $('#sendMsgDialog').submit();
- }
- // "越过"。Lin
- function yg() {
- if($("#shidList").val()) {
- $('#sendMsgDialog').attr('action', '@service{name:"yg",dest:"sys_info",param:{sqid:"${sqid}",isClose:"true"}}@').submit();
- } else {
- wd.display.alert("请选人")
- }
- }
- // "代签"。Lin
- function dq(){
- var checkAll=$(".list-checkedIcon");
- if(checkAll.length<1){
- wd.display.alert("请选人")
- return;
- }
- var shryid=$(checkAll[0]).attr("wdObjId"); // ("wdobjectid")。是 wdobjectid,不是 wdObjectId。Lin
- var shid=$(checkAll[0]).attr("shid");
- var json={};
- json["ryid"]=shryid;
- json["shid"]=shid;
- /* 改。pp = 代签。Lin
- var url='@service{name:"dq_cx",dest:"dcry_input",show:"wdDialog",param:{shid:"wdVal{shid}",ryid:"wdVal{ryid}"}}@'; */
- /* 再改,去掉 initPp,去掉 "代签人" 字段的默认值 "$@{sh.dlryid}" -- 就算原来有代理人员,也不会用了。Lin
- 先不实现 <serv po="ShPo",用到再弄
- var url='wd.display.showComponent({show:["wdDialog"],url:"<ss:serv name='initPp' parm='{"wdConfirmationCaptchaService":"0","shid":"wdVal{shid}","ryid":"wdVal{ryid}"}' dest='urgeHomep_ppSure'/>",title:"代签确认",width:500,height:300});'; */
- var url='wd.display.showComponent({show:["wdDialog"],url:"<ss:serv parm='{"wdConfirmationCaptchaService":"0","shid":"ssVal{shid}","ryid":"ssVal{ryid}"}' dest='urgeHomep_ppSure'/>",title:"代签确认",width:500,height:300});';
- url=wd.display.replaceDynamicParam(url,json);
- eval(url);
- }
- // "撤回"。Lin
- function ch() {
- var shidStr = $("#shidList").val();
- var shListData = ${shListData};
- if (shidStr) {
- // 增加确认过程,增加选择信息。Lin
- var taskMsg = "";
- var shidList = shidStr.split('<%=AppC.SEP_abbrJson%>'); // ("|")。改为 ","。Lin
- shidList.forEach(function(item) {
- if (item) {
- var idx; // 在 ${shListData} 中的。Lin
- for(var i = 0; i < shListData.length; i++) {
- if (item == shListData[i].shid) {
- idx = i;
- break;
- }
- }
- if (!taskMsg)
- taskMsg += "当前节点:"+ shListData[idx].jdmc +"<br>要收回的审核人:";
- taskMsg += shListData[idx].shryid +"("+ shListData[idx].shbm +") "
- }
- });
- wd.display.confirm("收回", taskMsg +"<br><br>没有上下级的部门内审,只能选择一个审核人<br>等同于审核人的退回,并根据流程图退回,确定吗?", function() { // 增加确认过程。Lin
- <%-- 改。Lin
- $('#sendMsgDialog').attr('action', '@service{name:"ch",dest:"sys_info",param:{sqid:"${sqid}"}}@').submit(); --%>
- $('#sendMsgDialog').attr('action', "<ss:serv name='ss.forceRejTask' parm='{"wdConfirmationCaptchaService":"0","sqid":"${sqid}"}' dest='info'/>").submit();
- }) // 增加确认过程。Lin
- } else {
- wd.display.alert("请选人")
- }
- }
- // 增加,终止整个流程。Lin
- // cl = 终止
- function forceClBpm() {
- var shListData = ${shListData};
- var shidList = ""; // 所有的 shidList
- var taskMsg = "";
- shListData.forEach(function(item) {
- shidList += item.shid + '<%=AppC.SEP_abbrJson%>'; // +"|"。改为 ","。Lin
- if (!taskMsg)
- taskMsg += "当前节点:"+ item.jdmc +"<br>审核人:";
- taskMsg += item.shryid +"("+ item.shbm +") "
- })
- if (shidList) {
- wd.display.confirm("终止整个流程", taskMsg +"<br><br>整个流程将被终止,确定吗?", function(){
- $('#sendMsgDialog').attr('action', "<ss:serv name='ss.forceClBpm' parm='{"wdConfirmationCaptchaService":"0","sqid":"${sqid}"}' dest='info'/>").submit();
- })
- } else {
- wd.display.alert("没有审核人")
- }
- }
- </script>
- </html>
- <script type="text/javascript">
- tokenCleanser("<ss:serv name='ss.clearPageToken'/>", {tokenList:"<%= pageContext.getAttribute(ss.page.PageC.PAGE_tokenList)%>"});
- </script>
- <script type="module">
- SS.ready(function() {
- window.SS.dom.initializeFormApp({
- el: '#app',
- data() {
- return{
- }
- },
- methods: {
- onDialogClose() {
- wd.display.closeDialog();
- },
- }
- });
- });
- </script>
|