123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570 |
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <%@ page import="com.hotent.core.util.UniqueIdUtil" %>
- <%@ page pageEncoding="UTF-8"%>
- <%@include file="/commons/include/html_doctype.html"%>
- <html>
- <head>
- <title>流程启动--${bpmDefinition.subject} --版本:${bpmDefinition.versionNo}</title>
- <%@include file="/commons/include/customForm.jsp" %>
- <link rel="stylesheet" type="text/css" href="${ctx}/styles/default/css/hotent/task.css"></link>
- <script type="text/javascript" src="${ctx}/js/hotent/platform/bpm/BpmImageDialog.js"></script>
- <script type="text/javascript">
- var isExtForm=${isExtForm};
- var isFormEmpty=${isFormEmpty};
- var isNeedSubmitConfirm=${bpmDefinition.submitConfirm==1};
- var bpmGangedSets=[];
- var hasLoadComplete=false;
- var actDefId="${bpmDefinition.actDefId}";
- var defId="${param.defId}";
- var form;
- var boo=false;
- $(function(){
- //id="spsrmzfbgsfw_zs"
- $("#spsrmzfbgsfw_zs").val("各县(市)、区人民政府,市政府各委办局,各直属机构");
- $("#spsrmzfbgsfw_cs").text("市委各部门,市纪委办公室,四平日报社,各人民团体,各民主党派,\n中省直各有关单位。\n"+
- "市人大常委会办公室,市政协办公室,市中级法院,市检察院。");
- //设置市政府发文的Flag
- //设置表单。
- initForm();
- //启动流程事件绑定。
- $("a.run").click(function(){
- getSuggestion();
- qddks();
- fjhb();
- });
- function qddks(){
- var h = document.body.clientHeight;
- $('.datagrid-mask').css({display:"block",width:"100%",height:h}).appendTo("body");
- }
- function qddjs(){
- $('.datagrid-mask').remove();
- }
- function fjhb(){
- var txt = [];
- var fileidarr = [];
- txt = document.getElementsByName("attach");
- if(txt.length>0){
- //有附件的处理方法
- for(var i=0;i<txt.length;i++){
- if(txt[i].getAttribute("file").indexOf(".pdf")>0){
- fileidarr.push(txt[i].getAttribute("fileid"));
- }else{
- $.ligerDialog.warn("文件格式错误,只能合并PDF文件!", '提示');
- return false;
- }
- }
- var data=CustomForm.getData();
- data=JSON.parse(data);
- $.post("${ctx}/platform/system/sysFile/mergePdfFiles.ht",{fileId:fileidarr,datastr:JSON.stringify(data.main.fields),defId:defId,runId:$("input[name='startRunId']").val()},function(data){
- var JsonStr=JSON.parse("["+data+"]");
- var divObj = $("div[class='attachement']");
- var textareaObj=$("textarea[controltype='attachment']");
- var html=AttachMent.getHtml(JsonStr,"w");
- divObj.empty();
- divObj.append(html);
- textareaObj.empty();
- textareaObj.val(JSON.stringify(JsonStr));
- //合并后更新附件ID
- for(var i=0;i<JsonStr.length;i++) {
- var obj = JsonStr[i];
- var id = obj.id;
- console.log(id);
- $("input[name='wj']").val(id);
- }
- if(typeof CustomForm != "undefined"){
- CustomForm.validate();
- }
- if(JsonStr[0].success){
- runTask();
- }
- });
- }else{
- //无附件的处理办法
- var main = {
- fields:{}
- };
- //取主表的字段。
- $("input:text[name^='m:'],input[type='hidden'][name^='m:'],textarea[name^='m:'],select[name^='m:']").each(function() {
- var name = $(this).attr('name');
- var value=handNumberData(this);
- main.fields[name.replace(/.*:/, '')] = value;
- });
- //请求
- $.post("${ctx}/platform/system/sysFile/createPdfFiles.ht",{datastr:JSON.stringify(main.fields),defId:defId,runId:$("input[name='startRunId']").val()},function(data){
- var JsonStr=JSON.parse("["+data+"]");
- var divObj = $("div[class='attachement']");
- var textareaObj=$("textarea[controltype='attachment']");
- var html=AttachMent.getHtml(JsonStr,"w");
- divObj.empty();
- divObj.append(html);
- textareaObj.empty();
- textareaObj.val(JSON.stringify(JsonStr));
- //合并后更新附件ID
- for(var i=0;i<JsonStr.length;i++) {
- var obj = JsonStr[i];
- var id = obj.id;
- $("input[name='wj']").val(id);
- }
- if(typeof CustomForm != "undefined"){
- CustomForm.validate();
- }
- if(JsonStr[0].success){
- runTask();
- }
- });
- }
- }
- function handNumberData (obj){
- var value=$(obj).val();
- var showType=$(obj).attr("showtype");
- if(!showType) return value;
- try{
- showType=showType.replaceAll("'","\"");
- var json=jQuery.parseJSON(showType);
- var coinvalue = json.coinValue;
- var isShowComdify = json.isShowComdify;
- if (coinvalue != null && coinvalue != '' && value.split(coinvalue) != -1) {
- var ary = value.split(coinvalue);
- value = ary.join("");
- }
- if (isShowComdify && value.split(",") != -1) {
- var temp = value.split(",");
- value = temp.join("");
- }
- }
- catch(err){}
- return value;
- }
- function runTask(){
- var flowNodes = $("input[name='flowNode']");
- if(flowNodes && flowNodes.length>1){
- var flowNode = $("input[type='radio']:checked");
- if(flowNode && flowNode.length==1){
- startWorkFlow();
- }
- else{
- $.ligerDialog.warn("请选择一个跳转节点!", '提示');
- return;
- }
- }else{
- startWorkFlow();
- }
- }
- //保存表单
- $("a.save").click(function(){
- saveForm(this);
- });
- //重置表单
- $("a.reset").click(function(){
- var fieldName=$(this).attr("name");
- if(fieldName!=undefined&&fieldName!=null&&fieldName!=""){
- return;
- }
- $("#frmWorkFlow").resetForm();
- var parentObj = $(this).parent();
- $("input",parentObj).each(function(){
- $(this).val('');
- })
- });
- $("#flowNodeList").delegate("input", "click", function() {
- $("#startNode").val($(this).val());
- });
- //选择第一步任务的执行人
- chooseJumpType();
- //初始化联动设置
- <c:if test="${!empty bpmGangedSets}">
- bpmGangedSets = ${bpmGangedSets};
- FormUtil.InitGangedSet(bpmGangedSets);
- </c:if>
- //启动流程时隐藏意见控件
- $(".taskopinion").hide();
- });
- //设置表单。
- function initForm(){
- //初始化百度编辑器
- if(isFormEmpty) return;
- //表单不为空的情况。
- if(isExtForm){
- form=$('#frmWorkFlow').form({excludes:"[type=append]"});
- var formUrl=$('#divExternalForm').attr("formUrl");
- $('#divExternalForm').load(formUrl, function() {
- hasLoadComplete=true;
- //动态执行第三方表单指定执行的js
- try{
- afterOnload();
- }catch(e){}
- initSubForm();
- OfficePlugin.init();
- });
- }
- //将额外参数渲染到表单中
- $("input:text[name^='m:'],input[type='hidden'][name^='m:'],textarea[name^='m:'],select[name^='m:']").each(function() {
- var name = $(this).attr('name');
- var formValue=name.replace(/.*:/, '');
- var title = $("input[name='title']").val();
- if(formValue == 'wj'&&$("input[name='"+formValue+"']").val() != null){
- var jsonObj = {};
- jsonObj.id = $("input[name='"+formValue+"']").val();
- if(title != ''){
- jsonObj.name = title+".pdf";
- }else{
- jsonObj.name = $("input[name='"+formValue+"']").val()+".pdf";
- }
- var JsonStr=JSON.parse("["+JSON.stringify(jsonObj)+"]");
- var divObj = $("div[class='attachement']");
- var textareaObj=$("textarea[controltype='attachment']");
- var html=AttachMent.getHtml(JsonStr,"w");
- divObj.empty();
- divObj.append(html);
- textareaObj.empty();
- textareaObj.val(JSON.stringify(JsonStr));
- if(typeof CustomForm != "undefined"){
- CustomForm.validate();
- }
- if(JsonStr[0].success){
- runTask();
- }
- }else{
- if($("input[name='"+formValue+"']").val()!=null){
- $("input[name='"+name+"']").val($("input[name='"+formValue+"']").val());
- }
- }
- });
- };
- function selExeUsers(btnElement,nodeId,scope){
- var spanObj=$(btnElement).prev();
- var aryCheckBox=$(":checked",spanObj);
- var selectUsers = [];
- if(aryCheckBox.length>0){
- for(var i=0;i<aryCheckBox.length;i++){
- var obj = $(aryCheckBox[i]).val().split("^");
- var selectUser={
- type:obj[0],
- id:obj[1],
- name:obj[2]
- }
- selectUsers.push(selectUser);
- }
- }
- if(!scope){
- scope={};
- scope.type='system',
- scope.value='all';
- scope=JSON2.stringify(scope);
- }else{
- scope=scope.replaceAll("#@","\"");
- }
- UserDialog({selectUsers:selectUsers,scope:scope,isSingle:true,callback:function(aryIds,aryNames){
- if(aryIds==null) return;
- var aryTmp=[];
- var aryUserName=[];
- var val="user" +"^" + aryIds +"^" +aryNames;
- var tmp="<input type='checkbox' include='1' name='"+nodeId+"_userId' checked='checked' value='"+val+"'/>"+aryNames;
- aryTmp.push(tmp);
- spanObj.html(aryTmp.join(''));
- }});
- }
- //是否点击了开始按钮。
- var isStartFlow=true;
- function saveForm(obj){
- isStartFlow=false;
- var action="";
- if($(obj).hasClass('isDraft')){
- action="${ctx}/platform/bpm/task/saveForm.ht";
- }else{
- action="${ctx}/platform/bpm/task/saveData.ht";
- }
- submitForm(action,"a.save");
- }
- function startWorkFlow(){
- isStartFlow=true;
- var action="${ctx}/platform/bpm/task/startFlow.ht";
- if(isNeedSubmitConfirm){
- qddjs();
- $.ligerDialog.confirm("确认启动流程吗?","提示",function(rtn){
- if(rtn){
- submitForm(action,"a.run");
- }
- });
- }
- else{
- submitForm(action,"a.run");
- }
- }
- //表单数据提交。
- //action:表单提交到的URL
- //button:点击按钮的样式。
- function submitForm(action,button){
- //百度编辑器数据处理
- var ignoreRequired=false;
- if(button=="a.save"){
- ignoreRequired=true;
- }
- var operatorType=(isStartFlow)?1:6;
- //前置事件处理
- var rtn=beforeClick(operatorType);
- if( rtn==false){
- return;
- }
- if($(button).hasClass("disabled"))return;
- if(isFormEmpty){
- $.ligerDialog.warn('流程表单为空,请先设置流程表单!',"提示信息");
- return;
- }
- var frmWorkFlow=$('#frmWorkFlow');
- frmWorkFlow.attr("action",action);
- if(isExtForm){
- //提交第三方表单时检查该表单的参数
- var rtn = true;
- if(button!="a.save"){
- rtn=form.valid()
- }
- if(rtn){
- if(frmWorkFlow.handleFieldName){//url表单清除命名
- frmWorkFlow.handleFieldName();
- }
- if(frmWorkFlow.setData){
- frmWorkFlow.setData();
- }
- $(button).addClass("disabled");
- frmWorkFlow.submit();
- }
- }else{
- var rtn=CustomForm.validate({ignoreRequired:ignoreRequired,returnErrorMsg:true});
- if(!rtn.success){
- $.ligerDialog.warn("表单验证不成功,请检查表单是否正确填写:"+rtn.errorMsg,"提示信息");
- return;
- }
- // 验证子表是否为必填
- rtn = CustomForm.isSubTableRequest();
- if(!rtn.success){
- $.ligerDialog.warn("表单验证不成功:<br><b>子表:("+rtn.errorMsg+")至少需要有一行数据</b>", "提示信息");
- return;
- }
- //获取自定义表单的数据
- var data=CustomForm.getData();
- //WebSign控件提交。 有控件时才提交 xcx
- if(WebSignPlugin.hasWebSignField){
- WebSignPlugin.submit();
- }
- $(button).addClass("disabled");
- var uaName=navigator.userAgent.toLowerCase();
- if(uaName.indexOf("firefox")>=0||uaName.indexOf("chrome")>=0){ // 火狐和谷歌 的文档提交
- //Office控件提交。 有可以提交的文档
- if(OfficePlugin.submitNum>0){
- OfficePlugin.submit();
- //火狐和谷歌 的文档提交包括了 业务提交代码部分(完成 OfficePlugin.submit()后面的回调 函数 有 业务提交代码),所以 后面就不用加上业务提交代码
- }else{ //没有可提交的文档时 直接做 业务提交代码
- data=CustomForm.getData();
- //设置表单数据
- $("#formData").val(data);
- FormSubmitUtil.submitFormAjax(frmWorkFlow,showResponse);
- }
- }else{ //IE内核的等
- //Office控件提交。 有可以提交的文档
- if(OfficePlugin.submitNum>0){
- OfficePlugin.submit();
- //当提交问题 等于 提交数量的变量 时 表示所有文档 都提交了 然后做 业务相关的提交
- if(OfficePlugin.submitNum == OfficePlugin.submitNewNum){
- //获取自定义表单的数据
- data=CustomForm.getData();
- //设置表单数据
- $("#formData").val(data);
- FormSubmitUtil.submitFormAjax(frmWorkFlow,showResponse);
- OfficePlugin.submitNewNum = 0; //重置 提交数量的变量
- }else{
- $.ligerDialog.warn($lang_bpm.ntkOffice.resetOfficeKj,$lang.tip.warn);
- }
- }else{
- //获取自定义表单的数据
- data=CustomForm.getData();
- //设置表单数据
- $("#formData").val(data);
- FormSubmitUtil.submitFormAjax(frmWorkFlow,showResponse);
- }
- }
- }
- }
- function showBpmImageDlg(){
- BpmImageDialog({actDefId:"${bpmDefinition.actDefId}"});
- }
- function initSubForm(){
- $('#frmWorkFlow').ajaxForm({success:showResponse });
- }
- function showResponse(responseText){
- var button=(isStartFlow)? "a.run":"a.save";
- var operatorType=(isStartFlow)?1:6;
- var obj=new com.hotent.form.ResultMessage(responseText);
- if(obj.isSuccess()){
- var msg=(isStartFlow)?"启动流程成功!":"保存表单数据成功!";
- $.ligerDialog.success(msg,'提示信息',function(){
- //添加后置事件处理
- var rtn=afterClick(operatorType);
- if( rtn==false){
- return;
- }
- if(window.opener){
- window.opener.location.href = window.opener.location.href;
- window.close();
- }else{
- window.close();
- }
- });
- }
- else{
- var msg=(isStartFlow)?"启动流程失败!":"保存表单数据失败!";
- $.ligerDialog.err('提示信息',msg,obj.getMessage());
- $(button).removeClass("disabled");
- }
- }
- function chooseJumpType(){
- var obj=$('#jumpDiv');
- var url="${ctx}/platform/bpm/task/tranTaskUserMap.ht?selectPath=1&isStart=1&actDefId="+actDefId;
- url=url.getNewUrl();
- obj.html(obj.attr("tipInfo")).show().load(url);
- }
- function openHelpDoc(fileId){
- var h=screen.availHeight-35;
- var w=screen.availWidth-5;
- var vars="top=0,left=0,height="+h+",width="+w+",status=no,toolbar=no,menubar=no,location=no,resizable=1,scrollbars=1";
- var showUrl = __ctx+"/platform/form/office/get.ht?fileId=" + fileId;
- window.open(showUrl,"myWindow",vars);
- }
- //增加Web签章
- function addWebSigns(){
- AddSecSignFromServiceX(); //WebSignPlugin JS类
- }
- //在线拟文方法 limeng 20190517 ADD
- function onlineText(){
- var runId= $("input[name='startRunId']").val();
- OnlineText.CreateNew(runId); //在线编辑 JS类
- }
- //增加手写签章
- function addHangSigns(){
- AddSecHandSignNoPromptX(); //WebSignPlugin JS类
- }
- function handwriting(){
- alert("调用手写方法");
- $("#processFlg").val('1');
- alert($("#processFlg").val());
- }
- function typing(){
- alert("调用打字方法");
- //清除手写等方法
- $("#processFlg").val('0');
- alert($("#processFlg").val());
- }
- //获取拟办意见
- function getSuggestion(){
- var suggestion=$("textarea[name$='zhknbyj']").val();
- $("input[name='suggestion']").val();
- $("input[name='suggestion']").val(suggestion);
- }
- </script>
- </head>
- <body>
- <form id="frmWorkFlow" method="post" >
- <input type="hidden" include="1" name="curUserId" id="curUserId" value="${curUserId}"/>
- <input type="hidden" include="1" name="curUserName" value="${curUserName}"/>
- <input type="hidden" include="1" name="actDefId" value="${bpmDefinition.actDefId}"/>
- <input type="hidden" include="1" name="defId" value="${bpmDefinition.defId}"/>
- <input type="hidden" include="1" id="businessKey" name="businessKey" value="${businessKey}"/>
- <input type="hidden" include="1" name="startRunId" value="<%=UniqueIdUtil.genId()%>" />
- <input type="hidden" include="1" id="startNode" name="startNode" />
- <input type="hidden" include="1" id="suggestion" name="suggestion" />
- <c:if test="${not empty paraMap}">
- <c:forEach items="${paraMap}" var="item">
- <input include="1" type="hidden" name="${item.key}" value="${item.value}" />
- </c:forEach>
- </c:if>
- <div class="panel">
- <%@include file="incToolBarStart.jsp" %>
- <div style=" width:1000px; margin:0px auto; height:30px;line-height:30px;" class="noprint">
- <b>流程简述:</b>${bpmDefinition.descp}
- </div>
- <div class="panel-body printForm" style="overflow: auto;">
- <c:choose>
- <c:when test="${isMultipleFirstNode}">
- <div id="flowNodeList">
- <table class="table-grid">
- <thead>
- <tr>
- <th height="28" width="20%">选择起始路径</th>
- <td>
- <c:forEach items="${flowNodeList}" var="flowNode">
- <lable>${flowNode.nodeName}<input type="radio" name="flowNode" value="${flowNode.nodeId}" /></lable>
- </c:forEach>
- </td>
- </tr>
- </thead>
- </table>
- </div>
- </c:when>
- </c:choose>
- <c:if test="${bpmDefinition.showFirstAssignee==1}">
- <div id="jumpDiv" class="noprint" style="display:none;" tipInfo="正在加载表单请稍候..."></div>
- </c:if>
- <c:if test="${not empty param.relRunId}">
- <div class="noprint">
- <jsp:include page="incTaskOpinion.jsp"></jsp:include>
- </div>
- </c:if>
- <c:choose>
- <c:when test="${isFormEmpty==true}">
- <div class="noForm">没有设置流程表单。</div>
- </c:when>
- <c:otherwise>
- <c:choose>
- <c:when test="${isExtForm}">
- <div id="divExternalForm" formUrl="${form}"></div>
- </c:when>
- <c:otherwise>
- <div class="panel-detail" type="custform" id="custformDiv">${form}</div>
- <input type="hidden" include="1" name="formKey" value="${formKey}"/>
- <input type="hidden" include="1" name="formData" id="formData" />
- </c:otherwise>
- </c:choose>
- </c:otherwise>
- </c:choose>
- </div>
- </div>
- </form>
- <div class="datagrid-mask" style="position:fixed;z-index:110;top:0px;left:0px;display:none;background-color:rgba(0,0,0,0.2);"><img src="${ctx}/styles/blue/images/qdd.gif" style="left:50%;margin-left:-160px;display:block;position:absolute;top:50%;margin-top:-152px;"></div>
- </body>
- </html>
|