view_step.html 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. <table class="layui-table layui-table-form" style="margin-top:12px">
  2. <tr>
  3. <td class="layui-td-gray-2">当前审核人</td>
  4. <td>{$detail.check_user}</td>
  5. <td class="layui-td-gray">抄送人</td>
  6. <td>{$detail.copy_user}</td>
  7. </tr>
  8. <tr>
  9. <td class="layui-td-gray">审批流程</td>
  10. <td colspan="3">
  11. <div class="flow-flexbox check-items flow-flex-row" id="flowList">
  12. <div class="flow-flexbox check-item flow-flex-row">
  13. <i class="layui-icon layui-icon-add-circle" data-ok=""></i>
  14. <div class="check-item-name">{$detail.create_user}</div>
  15. <div class="check-item-status">提交申请</div>
  16. <span class="layui-icon layui-icon-right"></span>
  17. </div>
  18. </div>
  19. </td>
  20. </tr>
  21. {if ( $is_check_admin eq 1) }
  22. {eq name="$flows.flow_type" value="0"}
  23. <tr>
  24. <td class="layui-td-gray">审批节点 <font>*</font></td>
  25. <td colspan="3">
  26. <input type="radio" name="check_node" lay-filter="check_node" value="1" title="审核结束">
  27. <input type="radio" name="check_node" lay-filter="check_node" value="2" title="下一审批人">
  28. <div class="layui-inline">
  29. <input type="text" name="check_admin_name" value="" autocomplete="off" placeholder="请选择下一审批人" lay-verify="required" lay-reqText="请选择下一审批人" class="layui-input picker-one"><input type="hidden" name="check_admin_ids" value="">
  30. </div>
  31. </td>
  32. </tr>
  33. {/eq}
  34. <tr>
  35. <td class="layui-td-gray">审批意见 <font>*</font></td>
  36. <td colspan="3">
  37. <textarea name="content" placeholder="请输入审批意见" class="layui-textarea"></textarea>
  38. </td>
  39. </tr>
  40. {/if}
  41. </table>
  42. <input type="hidden" name="id" value="{$detail.id}">
  43. <input type="hidden" name="flow_type" value="{$flows.flow_type}">
  44. <input type="hidden" name="check_step_sort" value="{$detail.check_step_sort}">
  45. <input type="hidden" name="check_status" value="{$detail.check_status}">
  46. <div id="formBtn" style="padding: 10px 0">
  47. {eq name="$is_check_admin" value='1'}
  48. <span class="layui-btn layui-btn-normal" data-status="1"><i class="layui-icon layui-icon-ok"></i> 通过</span>
  49. <span class="layui-btn layui-btn-danger" data-status="2"><i class="layui-icon layui-icon-close"></i> {$flows.flow_type == 5?'回退':'拒绝'}</span>
  50. {/eq}
  51. {eq name="$is_create_admin" value='1'}
  52. <span class="layui-btn layui-btn-primary" data-status="3"><i class="layui-icon layui-icon-reduce-circle"></i> 撤回</span>
  53. {/eq}
  54. </div>
  55. <script>
  56. function flowStep(){
  57. var form = layui.form,tool=layui.tool, dropdown = layui.dropdown,employeepicker = layui.employeepicker;
  58. //获取审核信息
  59. $.ajax({
  60. url: "/api/index/get_flow_nodes",
  61. type:'get',
  62. data:{id:contract_id,type:4},
  63. success: function (e) {
  64. if (e.code == 0) {
  65. let flowHtml='',list = e.data,record_list='',sort = $('[name="check_step_sort"]').val();
  66. for(var f=0;f<list.length;f++){
  67. //审批流程
  68. let checkUser = '',
  69. iconRight ='<span class="layui-icon layui-icon-right"></span>',
  70. iconStatus ='<i class="layui-icon layui-icon-time"></i>',
  71. strStatus ='<div class="check-item-status">待审核</div>',
  72. sortClass ='';
  73. if(f == list.length-1){
  74. iconRight ='';
  75. }
  76. if(list[f].flow_type == 1 || list[f].flow_type == 2){
  77. checkUser=list[f].flow_type == 1?'部门负责人':'上级部门负责人';
  78. if(list[f].check_list.length>0){
  79. if(list[f].check_list[0].status == 1){
  80. iconStatus ='<i class="layui-icon layui-icon-ok-circle" data-ok=""></i>';
  81. strStatus ='<div class="check-item-status">通过</div>';
  82. }
  83. else if(list[f].check_list[0].status == 2){
  84. iconStatus ='<i class="layui-icon layui-icon-close" data-no=""></i>';
  85. strStatus ='<div class="check-item-status">拒绝</div>';
  86. }
  87. }
  88. }
  89. else if(list[f].flow_type == 0 ){
  90. checkUser=list[f].user_id_info[0].name;
  91. if(list[f].check_list.length>0){
  92. iconStatus ='<i class="layui-icon layui-icon-close" data-no=""></i>';
  93. strStatus ='<div class="check-item-status">拒绝</div>';
  94. for(var m=0;m<list[f].check_list.length;m++){
  95. if(list[f].check_list[m].status == 1){
  96. iconStatus ='<i class="layui-icon layui-icon-ok-circle" data-ok=""></i>';
  97. strStatus ='<div class="check-item-status">通过</div>';
  98. }
  99. }
  100. }
  101. }
  102. else if(list[f].flow_type == 3 ){
  103. checkUser='多人或签';
  104. if(list[f].user_id_info.length>0){
  105. iconStatus ='<i class="layui-icon layui-icon-time"></i>';
  106. strStatus ='<div class="check-item-status">待审核</div>';
  107. for(var m=0;m<list[f].user_id_info.length;m++){
  108. if(list[f].user_id_info[m].status == 1){
  109. iconStatus ='<i class="layui-icon layui-icon-ok-circle" data-ok=""></i>';
  110. strStatus ='<div class="check-item-status">通过</div>';
  111. break;
  112. }
  113. if(list[f].user_id_info[m].status == 2){
  114. iconStatus ='<i class="layui-icon layui-icon-close" data-no=""></i>';
  115. strStatus ='<div class="check-item-status">拒绝</div>';
  116. }
  117. }
  118. }
  119. }
  120. else if(list[f].flow_type == 4){
  121. checkUser='多人会签';
  122. if(list[f].user_id_info.length>0){
  123. iconStatus ='<i class="layui-icon layui-icon-ok-circle" data-ok=""></i>';
  124. strStatus ='<div class="check-item-status">通过</div>';
  125. for(var m=0;m<list[f].user_id_info.length;m++){
  126. if(list[f].user_id_info[m].status == 2){
  127. iconStatus ='<i class="layui-icon layui-icon-close" data-no=""></i>';
  128. strStatus ='<div class="check-item-status">拒绝</div>';
  129. break;
  130. }
  131. if(list[f].user_id_info[m].status == 0){
  132. iconStatus ='<i class="layui-icon layui-icon-time"></i>';
  133. strStatus ='<div class="check-item-status">待审核</div>';
  134. }
  135. }
  136. }
  137. }
  138. else if(list[f].flow_type == 5){
  139. checkUser=list[f].flow_name+' ['+list[f].user_id_info[0].name+']';
  140. if(list[f].user_id_info.length>0){
  141. iconStatus ='<i class="layui-icon layui-icon-ok-circle" data-ok=""></i>';
  142. strStatus ='<div class="check-item-status">通过</div>';
  143. for(var m=0;m<list[f].user_id_info.length;m++){
  144. if(list[f].user_id_info[m].status == 2){
  145. iconStatus ='<i class="layui-icon layui-icon-close" data-no=""></i>';
  146. strStatus ='<div class="check-item-status">拒绝</div>';
  147. break;
  148. }
  149. if(list[f].user_id_info[m].status == 0){
  150. iconStatus ='<i class="layui-icon layui-icon-time"></i>';
  151. strStatus ='<div class="check-item-status">待审核</div>';
  152. }
  153. }
  154. }
  155. }
  156. if(sort == list[f].sort){
  157. sortClass ='flow-this';
  158. iconStatus ='<i class="layui-icon layui-icon-time"></i>';
  159. strStatus ='<div class="check-item-status">当前审核</div>';
  160. }
  161. flowHtml+= '<div class="flow-flexbox check-item flow-flex-row '+sortClass+'" id="flow'+f+'">'+iconStatus+'\
  162. <div class="check-item-name">'+checkUser+'</div>'+strStatus+iconRight+'\
  163. </div>';
  164. }
  165. $('#flowList').append(flowHtml);
  166. }
  167. }
  168. })
  169. //监听提交
  170. $('#formBtn').on('click','span', function(data){
  171. let content=$('[name="content"]').val();
  172. let check_status=$(this).data('status');
  173. let flow_type = $('input[name="flow_type"]').val();
  174. let check_node=0,check_admin_ids=0;
  175. if(flow_type == 0 && check_status==1){
  176. check_node = $('input[name="check_node"]:checked').val();
  177. check_admin_ids = $('input[name="check_admin_ids"]').val();
  178. if(!check_node){
  179. layer.msg('请选择下一审批节点');
  180. return false;
  181. }
  182. if(check_node == 2 && check_admin_ids==''){
  183. layer.msg('请选择下一审批人');
  184. return false;
  185. }
  186. }
  187. if(check_status ==1 || check_status==2){
  188. if(content==''){
  189. layer.msg('请输入审批意见');
  190. return false;
  191. }
  192. let confirmTips='确定通过该审核?';
  193. if(check_status==2){
  194. confirmTips='确定拒绝该审核?';
  195. }
  196. layer.confirm(confirmTips, function(index){
  197. $.ajax({
  198. url: "/api/index/flow_check",
  199. type:'post',
  200. data:{
  201. id:contract_id,
  202. type:4,
  203. check_node:check_node,
  204. check_admin_ids:check_admin_ids,
  205. check:check_status,
  206. content:content
  207. },
  208. success: function (e) {
  209. layer.msg(e.msg);
  210. if (e.code == 0) {
  211. parent.layui.pageTable.reload();
  212. location.reload();
  213. }
  214. }
  215. })
  216. layer.close(index);
  217. });
  218. }
  219. else if(check_status ==3){
  220. layer.prompt({
  221. formType: 2,
  222. title: '请输入撤回理由',
  223. area: ['500px', '120px'] //自定义文本域宽高
  224. }, function(value, index, elem){
  225. $.ajax({
  226. url: "/api/index/flow_check",
  227. type:'post',
  228. data:{
  229. id:contract_id,
  230. type:4,
  231. check:check_status,
  232. content:value
  233. },
  234. success: function (e) {
  235. layer.msg(e.msg);
  236. if (e.code == 0) {
  237. parent.layui.pageTable.reload();
  238. location.reload();
  239. }
  240. }
  241. })
  242. layer.close(index);
  243. });
  244. }
  245. return false;
  246. });
  247. }
  248. </script>