123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472 |
- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
- <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
- <c:set var="ctx" value="${pageContext.request.contextPath}" />
- <html ng-app="startFlow">
- <head>
- <meta charset="UTF-8">
- <title>流程任务-[${task.name}]执行</title>
- <script src="${ctx}/weixin/assets/js/importJs.js"></script>
- <script type="text/javascript">
- importCss(["/weixin/assets/js/ztree/css/zTreeStyle/zTreeStyle.css",
- "/weixin/assets/js/ztree/css/outLook.css",
- "/weixin/assets/css/jquery.qtip.css",
- "/weixin/assets/css/mobiscroll.custom-2.5.2.min.css",
- "/weixin/assets/css/form.css",
- "/weixin/assets/css/formValid.css"]);
- importJs(["/weixin/assets/js/angular.min.js",
- "/weixin/assets/js/zh_CN.js",
- "/weixin/assets/js/BaseService.js",
- "/weixin/assets/js/CustomValid.js",
- "/weixin/assets/js/mobiscroll.custom-2.5.2.min.js",
- "/js/hotent/platform/form/rule.js",
- "/weixin/assets/js/jquery.qtip.js",
- "/weixin/assets/js/ztree/js/jquery.ztree.core-3.5.js",
- "/weixin/assets/js/ztree/ZtreeCreator.js",
- "/weixin/assets/js/dialog/Dialogs.js",
- "/weixin/assets/js/formDirective.js",
- "/weixin/assets/js/bpm/FlowService.js",
- "/weixin/assets/js/bpm/FormService.js",
- "/weixin/assets/editor/ueditor.config.js",
- "/weixin/assets/editor/ueditor.all.min.js",
- "/weixin/assets/js/bpm/mobileTaskController.js",
- "/js/hotent/platform/form/OfficePlugin.js",
- "/js/hotent/platform/form/CustomForm.js",
- "/js/hotent/platform/form/SubtablePermission.js",
- "/js/hotent/platform/form/FormInit.js",
- "/js/ntkoWebSign/WebSignPlugin.js",
- "/js/util/json2.js",
- "/js/util/form.js"]);
-
- var taskId="${task.id}";
- var isExtForm=${isExtForm};
- var isEmptyForm=${isEmptyForm};
- var isSignTask=${isSignTask};
- var isHidePath=${isHidePath};
- var isManage=${isManage};
- var isNeedSubmitConfirm=${bpmDefinition.submitConfirm==1};
- var isHandChoolse=${isHandChoolse};
- var bpmGangedSets=[];
- var form;
- var signsequence = 0;
- //操作类型
- //1.完成任务
- //2.保存数据
- var operatorType=1;
- //loadFormSignData();
-
- $(function(){
- initForm();
- //显示路径
- //if(isHandChoolse){
- // chooseJumpType(2);
- //}else{
- // chooseJumpType(1);
- //}
- //resizeIframe();
- //初始化联动设置
- //<c:if test="${!empty bpmGangedSets}">
- // bpmGangedSets = ${bpmGangedSets};
- // FormUtil.InitGangedSet(bpmGangedSets);
- //</c:if>
- });
-
- function initBtnEvent(){
- //0,弃权,1,同意,2反对。
- var objVoteAgree=$("#voteAgree");
- var objBack=$("#back");
-
- //同意
- $("#btnAgree").click(function(){
- //var voteContent = $('#voteContent'),
- //content = voteContent.val();
- setExtFormData();
-
- var isDirectComlete = getIsDirectComplete();
-
- operatorType=1;
- //同意:5,一票通过。
- var tmp =isDirectComlete?"5":"1";
-
- objVoteAgree.val(tmp);
- objBack.val("0");
-
- // 提前校验表单
- //var beforeScript=beforeClick(getByOperatorType());
- //if(beforeScript==false) return;
- var appElement = document.querySelector('[ng-controller=ctrl]');
- var $scope = angular.element(appElement).scope();
- if($scope.myform.$invalid){
- Alert("提示信息","表单验证不成功,请检查表单是否正确填写!");
- return;
- }
- completeTaskBefore();
- });
- //驳回
- $("#btnReject").click(function(){
- setExtFormData();
-
- operatorType=4;
- objVoteAgree.val(3);
- objBack.val(1);
- completeTaskBefore();
- })
- //驳回到发起人
- $("#btnRejectToStart").click(function(){
- //var voteContent = $('#voteContent'),
- //content = voteContent.val();
- setExtFormData();
-
- operatorType=5;
- //驳回到发起人
- objVoteAgree.val(3);
- objBack.val(2);
- completeTaskBefore();
- })
- }
-
- function initSubForm(){
- $('#frmWorkFlow').ajaxForm({success:showResponse });
- }
-
- function initForm(){
- //初始化按钮事件。
- initBtnEvent();
-
- if(isEmptyForm) return;
-
- if(isExtForm){
- form=$('#frmWorkFlow').form({excludes:"[type=append]"});
- var formUrl=$('#frmWorkFlow').html();
- $('#frmWorkFlow').load(formUrl, function() {
- hasLoadComplete=true;
- //动态执行第三方表单指定执行的js
- try{
- afterOnload();
- }catch(e){}
- initSubForm();
- OfficePlugin.init();
- });
- }else{
- $(".taskopinion").each(function(){
- $(this).removeClass("taskopinion");
- var actInstId=$(this).attr("instanceId");
- $(this).load("${ctx}/platform/bpm/taskOpinion/listform.ht?actInstId="+actInstId);
- });
-
- }
- }
-
- //提交第三方表单时检查该表单的参数
- function setExtFormData(){
- if(isExtForm){
- var frm=$('#frmWorkFlow');
- if(!frm.valid()) return ;
- if(frm.setData)frm.setData();
- }
- }
-
- // 在完成任务之前,加上判断是否需要弹出意见对话框
- function completeTaskBefore(){
- // 加上判断是否需要弹出意见对话框
- var isPopup = '${bpmNodeSet.isPopup}';
- var isRequired = '${bpmNodeSet.isRequired}';
- //if(isPopup == 1){
-
- //var rtn=form.valid();
- //if(!rtn) return;
-
- //opintionDialog();
- //} else {
- completeTask();
- //}
- }
-
- //完成当前任务。
- function completeTask(){
-
- if($("input[name='nextPathId']").length>0){
- var b=false;//是否需要判断同步条件
- var destTask=$("input[name='destTask']:checked");
- if(destTask.length==0){
- b=true;
- }else{
- var nextPathId=destTask.parents("tr").find("[name=nextPathId]");
- if(nextPathId.length>0){
- b=true;
- }
- }
- if(b){
- var v=$("input[name='nextPathId']:checked").val();
- if(!v){
- $.ligerDialog.error("在同步条件后的执行路径中,您至少需要选择一条路径!",'提示信息');
- return;
- }
-
- }
- }
-
- //if(!checkNodeUser()){//检查节点选择
- // return;
- //}
-
- var operatorObj=getByOperatorType();
- var button="#" +operatorObj.btnId;
- var action="${ctx}/mobile/bpm/bpmMobileTask/complete.ht";
- //执行前置脚本
- //var rtn=beforeClick(operatorType);
- //if( rtn==false){
- // return;
- //}
- //确认执行任务。
- if(isNeedSubmitConfirm){
- $.ligerDialog.confirm("您确定执行此操作吗?","提示",function(rtn){
- if(rtn){
- submitForm(action,button);
- }
- });
- }
- else{
- submitForm(action,button);
- }
- }
-
- function getErrorByOperatorType(){
- var rtn="";
- switch(operatorType){
- //同意
- case 1:
- //反对
- case 2:
- //弃权
- case 3:
- rtn="执行任务失败!";
- break;
- //驳回
- //驳回
- case 4:
- rtn="驳回任务失败!";
- break;
- //驳回到发起人
- case 5:
- rtn="驳回到发起人失败!";
- break;
- //保存表单
- case 8:
- rtn="保存表单数据失败!";
- break;
- }
- return rtn;
- }
-
- function handFormJson(json){}
-
- function submitForm(action,button){
-
- var ignoreRequired=false;
- if(button=="#btnSave" || button=="#btnReject" || button=="#btnRejectToStart"){
- ignoreRequired=true;
- }
-
- if($(button).hasClass("disabled"))return;
- if(isEmptyForm){
- Alert("提示信息","还没有设置表单!");
- return;
- }
-
- var frmWorkFlow=$('#frmWorkFlow');
- frmWorkFlow.attr("action",action);
- if(isExtForm){
- var rtn = true;
- if(button!="a.save"){
- rtn=form.valid()
- }
- if(!rtn) return;
-
- $(button).addClass("disabled");
- frmWorkFlow.ajaxForm({success:showResponse }); //terry add
- if(frmWorkFlow.handleFieldName){//url表单清除命名
- frmWorkFlow.handleFieldName();
- }
- if(frmWorkFlow.setData){
- frmWorkFlow.setData();
- }
- frmWorkFlow.submit();
-
- }else{
- if(!ignoreRequired) {
- var appElement = document.querySelector('[ng-controller=ctrl]');
- var $scope = angular.element(appElement).scope();
- if($scope.myform.$invalid){
- Alert("提示信息","表单验证不成功,请检查表单是否正确填写!");
- return;
- }
- }
- if(button!="#btnSave" || button=="#btnReject" || button=="#btnRejectToStart" ){
- //子表必填检查(兼容新旧版本)
- rtn = SubtablePermission.subRequired();
- if(!rtn){
- Alert("提示信息","请填写子表表单数据!");
- return;
- }
- }
-
- //WebSign控件提交。 有控件时才提交 xcx
- if(WebSignPlugin.hasWebSignField){
- WebSignPlugin.submit();
- }
-
- $(button).addClass("disabled");
- //获取表单的数据
- var data=CustomForm.getMobileData();
- //设置表单数据
- $("#formData").val(data);
-
- FormSubmitUtil.submitFormAjax(frmWorkFlow,showResponse,handFormJson);
-
- }
- }
-
- function showResponse(responseText){
- var operatorObj=getByOperatorType();
- $("#" +operatorObj.btnId).removeClass("disabled");
- var obj=new com.hotent.form.ResultMessage(responseText);
- if(obj.isSuccess()){
- //var rtn=afterClick(operatorType);
- //if( rtn==false){
- // return;
- //}
- Alert("提示信息",operatorObj.msg);
- $('#alertDialog').on('closed.modal.amui', function() {
- handJumpOrClose();
- });
- return;
- }
- else{
- var title=getErrorByOperatorType();
- Alert("提示信息",obj.getMessage());
- }
-
- }
-
- function handJumpOrClose(){
- //如果按钮类型为保存则不关闭窗口。
- if(operatorType==8) return;
- if(window.opener){
- try{
- window.opener.location.href=window.opener.location.href.getNewUrl();
- }
- catch(e){}
- }
- window.close();
- }
-
- function getByOperatorType(){
- var obj={};
- switch(operatorType){
- //同意
- case 1:
- //LoadSignData();
- obj.btnId="btnAgree";
- obj.msg="执行任务成功!";
- break;
- //反对
- case 2:
- obj.btnId="btnNotAgree";
- obj.msg="执行任务成功!";
- break;
- //弃权
- case 3:
- obj.btnId="btnAbandon";
- obj.msg="执行任务成功!";
- break;
- //驳回
- case 4:
- obj.btnId="btnReject";
- obj.msg="驳回任务成功!";
- break;
- //驳回到发起人
- case 5:
- obj.btnId="btnRejectToStart";
- obj.msg="驳回到发起人成功!";
- break;
- //保存表单
- case 8:
- obj.btnId="btnSave";
- obj.msg="保存表单数据成功!";
- break;
-
- }
- return obj;
- }
-
- //获取是否允许直接结束。
- function getIsDirectComplete(){
- var isDirectComlete = false;
- if($("#chkDirectComplete").length>0){
- if($("#chkDirectComplete").attr("checked")=="checked"){
- isDirectComlete = true;
- }
- }
- return isDirectComlete;
- }
- </script>
- <style type="text/css">
- .am-form-group span{
- border:none;
- }
- </style>
- </head>
- <body ng-controller="ctrl">
- <div id="frmWorkFlow" ht-bind-html="formHtml" style="width: 100%;height:100%;overflow:auto;"></div>
- <div id="formMsg">
- <div id="divExternalForm">${form}</div>
- <input type="hidden" id="tableId" value="${formDef.tableId}">
- <input type="hidden" include="1" name="formData" id="formData" />
- <input type="hidden" id="taskId" include="1" name="taskId" value="${task.id}"/>
- <%--驳回和撤销投票为再次提交 --%>
- <c:choose>
- <c:when test="${processRun.status eq 5 or processRun.status eq 6}">
- <input type="hidden" include="1" id="voteAgree" name="voteAgree" value="34"/>
- </c:when>
- <c:otherwise>
- <input type="hidden" include="1" id="voteAgree" name="voteAgree" value="1"/>
- </c:otherwise>
- </c:choose>
- <input type="hidden" include="1" id="back" name="back" value=""/>
- <input type="hidden" include="1" id="actDefId" name="actDefId" value="${bpmDefinition.actDefId}"/>
- <input type="hidden" include="1" name="defId" value="${bpmDefinition.defId}"/>
- <input type="hidden" include="1" id="isManage" name="isManage" value="${isManage}"/>
- <input type="hidden" include="1" id="businessKey" name="businessKey" value="${processRun.businessKey}"/>
- <input type="hidden" include="1" id="startNode" name="startNode" value="${toBackNodeId}"/>
- <input type="hidden" include="1" name="curUserId" value="${curUserId}"/>
- <input type="hidden" include="1" name="curUserName" value="${curUserName}"/>
- <input type="hidden" include="1" id="currentNode" name="currentNode" value="${task.taskDefinitionKey}"/>
- <input type="hidden" include="1" name="formKey" value="${formKey}"/>
- </div>
- <div data-am-widget="navbar" class="am-navbar am-cf am-navbar-default">
- <ul class="am-navbar-nav am-cf am-avg-sm-4">
- <li>
- <a id="btnAgree">
- <i class="am-icon fa fa-check" ></i>
- <span class="am-navbar-label">同意</span>
- </a>
- </li>
- <li>
- <a id="btnReject" >
- <i class="am-icon fa fa-save" ></i>
- <span class="am-navbar-label">驳回</span>
- </a>
- </li>
- <li>
- <a id="btnRejectToStart">
- <i class="am-icon fa fa-picture-o" ></i>
- <span class="am-navbar-label">驳回到发起人</span>
- </a>
- </li>
- </ul>
- </div>
- </body>
- </html>
|