task-operate-his.jsp 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@include file="/context/mytags.jsp"%>
  3. <!DOCTYPE html>
  4. <html>
  5. <head>
  6. <title><t:mutiLang langKey="common.task.operate"/></title>
  7. <%-- <t:base type="jquery,tools,easyui,DatePicker"></t:base> --%>
  8. <style type="text/css">
  9. #t_table td label {font-size:15px;}
  10. </style>
  11. </head>
  12. <body>
  13. <t:formvalid formid="formobj" layout="table" dialog="true" usePlugin="password">
  14. <input name="taskId" id="taskId" type="hidden" value="${taskId}" />
  15. <input name="bormoney" id="bormoney" type="hidden" vartype="B" value="${bormoney}">
  16. <input name="keys" id="keys" type="hidden" />
  17. <input name="values" id="values" type="hidden" />
  18. <input name="types" id="types" type="hidden" />
  19. <input name="nextCodeCount" id="nextCodeCount" type="hidden" value="${nextCodeCount}"/>
  20. <div class="ui-widget-content ui-corner-all" style="padding: 10px; margin: 10px;">
  21. <div style="margin: 15px auto; height: 50px; width: 900px;" id="tabs-project">
  22. <c:if test="${bpmLogListCount-3 > 0}">
  23. <div class="progress"></div>
  24. <div class="progress"></div>
  25. </c:if>
  26. <c:forEach items="${bpmLogList}" var="bpmLg" varStatus="name" >
  27. <c:if test="${name.index < bpmLogNewListCount}">
  28. <div class="progress progress"></div>
  29. <div class="progress progress1">
  30. <div class="detial">
  31. <b>${bpmLg.task_node }</b><br/>
  32. [<span style="color:red;"><t:mutiLang langKey="common.task.time"/>:
  33. <fmt:formatDate value="${bpmLg.op_time }" pattern="MM-dd HH:mm:ss"/></span>]<br/>
  34. [<span><t:mutiLang langKey="common.task.operator"/>:${bpmLg.op_name }]</span>
  35. </div>
  36. </div>
  37. </c:if>
  38. </c:forEach>
  39. <c:if test="${taskName != null }">
  40. <div class='progress progress_cancel'></div>
  41. <div class="progress progress3">
  42. <div class="detial">
  43. <span><b>${taskName}</b></span><br>
  44. <!-- [<span><t:mutiLang langKey="common.task.assignee"/>:</span>]<br> -->
  45. [<span><t:mutiLang langKey="common.task.operator"/>:${task.assignee }]</span>
  46. </div>
  47. </div>
  48. </c:if>
  49. <div class='progress progress_unstart'></div>
  50. <div class='progress progress_unstart'></div>
  51. <div class='progress progress_unstart'></div>
  52. </div>
  53. </div>
  54. <table id="t_table" cellpadding="0" cellspacing="1" class="formtable" >
  55. <tr height="35">
  56. <td class="value" style="padding: 0px 5px;">
  57. <label class="Validform_label"><t:mutiLang langKey="common.task.suggestion"/></label>
  58. </td>
  59. </tr>
  60. <c:forEach items="${bpmLogList}" var="bpmLog">
  61. <tr height="35">
  62. <td class="value" style="padding: 0px 5px;border-top:1px dashed #00CCCC; font-size:13px;">
  63. <fmt:formatDate value="${bpmLog.op_time }" pattern="yyyy-MM-dd HH:mm:ss"/>[${bpmLog.op_name }]
  64. </td>
  65. </tr>
  66. <tr height="35">
  67. <td class="value" style="padding: 0px 5px;font-size:13px;">
  68. [<span style="color:blue">${bpmLog.task_node }</span>]${bpmLog.memo }
  69. </td>
  70. </tr>
  71. <c:forEach items="${bpmLog.bpmFiles}" var="bpmFile">
  72. <tr height="35">
  73. <td class="value" style="padding: 0px 5px;">
  74. [<span style="color:blue"><t:mutiLang langKey="common.attachment"/></span>] ${bpmFile.attachmenttitle}
  75. <a href="commonController.do?viewFile&fileid=${bpmFile.id}&subclassname=org.jeecgframework.workflow.pojo.base.TPBpmFile" title="common.document.download"><t:mutiLang langKey="common.document.download"/></a>
  76. <a href="javascript:void(0);"
  77. onclick="openwindow('<t:mutiLang langKey="common.preview"/>','commonController.do?openViewFile&fileid=${bpmFile.id}&subclassname=org.jeecgframework.workflow.pojo.base.TPBpmFile','fList','800','700')"><t:mutiLang langKey="common.preview"/></a>
  78. <!-- <a href="javascript:void(0)" class="jeecgDetail" onclick="del('tFinanceController.do?delFile&id=${bpmFile.id}',this)">删除</a>-->
  79. </td>
  80. </tr>
  81. </c:forEach>
  82. <br/>
  83. </c:forEach>
  84. <br>
  85. <tr height="35" >
  86. <td class="value" style="padding: 0px 5px;">
  87. <label class="Validform_label" style="font-size:14px;">
  88. <t:mutiLang langKey="common.handel.suggestion"/><p></p>
  89. </label>
  90. <textarea name="reason" datatype="*" vartype="S" style="resize: none;" rows="3" cols="105"></textarea>
  91. <span class="Validform_checktip"></span>
  92. </td>
  93. </tr>
  94. <tr>
  95. <td class="value" style="padding: 0px 5px;">
  96. <div class="form jeecgDetail" style="padding: 3px;">
  97. <input type="hidden" id="bpmlogId" name="bpmlogId" />
  98. <br/><t:upload name="fiels" id="file_upload" extend="*.doc;*.docx;*.txt;*.ppt;*.xls;*.xlsx;*.html;*.htm;*.pdf;*.jpg;" buttonText="common.file.add" formData="bpmlogId" uploader="activitiController.do?saveBpmFiles">
  99. </t:upload>
  100. </div>
  101. <div class="form" id="filediv" style="height: 50px"></div>
  102. </td>
  103. </tr>
  104. <tr>
  105. <td class="value">
  106. <input type="radio" name="model" value="1" onchange="changeModel(1);" checked/><t:mutiLang langKey="common.model.one"/>
  107. <%-- <input type="radio" name="model" value="2" onchange="changeModel(2);"/><t:mutiLang langKey="common.model.more"/> --%>
  108. <span id="manyModel" style="display:none">
  109. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:red"><t:mutiLang langKey="common.model.more.all"/>:</span>
  110. <c:forEach items="${transitionList}" var="trans">
  111. <input type="checkbox" name="transition" value="${trans.nextnode}" checked disabled>${trans.Transition }
  112. </c:forEach>
  113. </span>
  114. <c:if test="${histListSize > 0 }">
  115. <input type="radio" name="model" value="3" onchange="changeModel(3);"/><t:mutiLang langKey="common.reject"/>
  116. <span id="rejectModel" style="display:none">
  117. <select name="rejectModelNode">
  118. <c:forEach items="${histListNode}" var="histNode">
  119. <option value="${histNode.task_def_key_}">${histNode.name_ }</option>
  120. </c:forEach>
  121. </select>
  122. </span>
  123. </c:if>
  124. </td>
  125. </tr>
  126. <tr>
  127. <td class="value">
  128. <t:mutiLang langKey="common.next.operator"/>:
  129. <input name="last" id="last" readonly="readonly" type="text" />
  130. <input name="id" type="hidden" value="" id="id">
  131. <t:choose hiddenName="id" hiddenid="id" url="activitiController.do?goEntrust" name="entrusterList" icon="icon-search" title="common.user.list" textname="last" isclear="true"></t:choose><t:mutiLang langKey="common.noselect.default"/>
  132. </td>
  133. </tr>
  134. <tr>
  135. <td class="value" align="center">
  136. <div id="singleModel" style="display:black">
  137. <input type="hidden" name="option" id="option" />
  138. <input type="hidden" name="nextnode" id="nextnode" />
  139. <c:forEach items="${transitionList}" var="trans">
  140. <input type="button" buttongroup="buttongroup" class="Button" onclick="disabledButton();procPass('${trans.Transition }','${trans.nextnode}')" value="${trans.Transition }">
  141. </c:forEach>
  142. </div>
  143. <div id="manyModelButton" style="display:none">
  144. <input type="button" buttongroup="buttongroup" class="Button" onclick="disabledButton();manyModelSubmit();" value='<t:mutiLang langKey="common.submit"/>'>
  145. <input type="hidden" name="transStr" id="transStr">
  146. </div>
  147. </td>
  148. </tr>
  149. </table>
  150. </t:formvalid>
  151. <script type="text/javascript">
  152. function disabledButton(){
  153. $('input[buttongroup="buttongroup"]').attr("disabled","true");
  154. $('input[buttongroup="buttongroup"]').attr("class","disabledButton");
  155. }
  156. function procPass(yes,nextnode){
  157. //alert('d.success');
  158. $("#option").val(yes);
  159. $("#nextnode").val(nextnode);
  160. var formData = {};
  161. $(formobj).find("input,textarea,select").each(function(){
  162. if($(this).attr("name") == 'model'){
  163. formData[$(this).attr("name")]= $('input[name="model"]:checked').val();
  164. }else{
  165. formData[$(this).attr("name")]= $(this).val();
  166. }
  167. });
  168. //ajax方式提交iframe内的表单
  169. $.ajax({
  170. async : false,
  171. cache : false,
  172. type : 'POST',
  173. data : formData,
  174. url : 'activitiController.do?processComplete',// 请求的action路径
  175. error : function() {// 请求失败处理函数
  176. alert('提交申请失败');
  177. },
  178. success : function(data) {
  179. var d = data; // ------ $.parseJSON(data);
  180. //alert('d.success'+d.success);
  181. if (d.success) {
  182. $("#bpmlogId").val(d.obj.id);
  183. if($(".uploadify-queue-item").length>0){
  184. upload();
  185. }else{
  186. var msg = d.msg;
  187. W.tip(msg);
  188. W.reloadTable();
  189. windowapi.close();
  190. }
  191. }else{
  192. var msg = d.msg;
  193. W.tip(msg);
  194. }
  195. }
  196. });
  197. }
  198. /**
  199. * 单分支模式/多分支模式切换
  200. */
  201. function changeModel(value){
  202. if(value == 1){
  203. //单分支模式
  204. $("#singleModel").show();
  205. $("#manyModel").hide();
  206. $("#manyModelButton").hide();
  207. $("#rejectModel").hide();
  208. }else if(value == 2){
  209. //多分支模式
  210. $("#singleModel").hide();
  211. $("#rejectModel").hide();
  212. $("#manyModel").show();
  213. $("#manyModelButton").show();
  214. }else{
  215. $("#singleModel").hide();
  216. $("#manyModel").hide();
  217. $("#rejectModel").show();
  218. $("#manyModelButton").show();
  219. }
  220. }
  221. /**
  222. * 多分支模式 提交
  223. */
  224. function manyModelSubmit(){
  225. // alert('d.success');
  226. /** //checkbox 选中
  227. var transStr = "";
  228. var trans = $("input[name='transition']");
  229. for(i=0;i<trans.length;i++){
  230. if(trans[i].checked==true){
  231. transStr += (trans[i].value+',');
  232. }
  233. }
  234. $("#transStr").val(transStr);
  235. if(transStr == ""){
  236. alert("多分支模式必须选择下一步分支");
  237. return;
  238. }
  239. */
  240. var formData = {};
  241. $(formobj).find("input,textarea,select").each(function(){
  242. if($(this).attr("name") == 'model'){
  243. formData[$(this).attr("name")]= $('input[name="model"]:checked').val();
  244. }else{
  245. formData[$(this).attr("name")]= $(this).val();
  246. }
  247. });
  248. $.ajax({
  249. async : false,
  250. cache : false,
  251. type : 'POST',
  252. data : formData,
  253. url : 'activitiController.do?processComplete',// 请求的action路径
  254. error : function() {// 请求失败处理函数
  255. alert('提交申请失败');
  256. },
  257. success : function(data) {
  258. var d = data; // ------ $.parseJSON(data);
  259. alert('d.success'+d.success);
  260. if (d.success) {
  261. $("#bpmlogId").val(d.obj.id);
  262. if($(".uploadify-queue-item").length>0){
  263. upload();
  264. }else{
  265. var msg = d.msg;
  266. W.tip(msg);
  267. W.reloadTable();
  268. windowapi.close();
  269. }
  270. }else{
  271. var msg = d.msg;
  272. W.tip(msg);
  273. }
  274. }
  275. });
  276. }
  277. </script>
  278. </body>
  279. </html>