You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

audit.js 9.6 KiB

4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. (function () {
  2. var processId = '';
  3. var taskId = '';
  4. var $header = null;
  5. var headText = '';
  6. var fieldMap = {};
  7. var formMap = {};
  8. var formDataes;
  9. var formAllData;
  10. var formreq;
  11. var getFormData = function ($page) {
  12. formDataes = $page.find('#auditcontainer').custmerformGet();
  13. if (formDataes == null) {
  14. return false;
  15. }
  16. formreq = [];
  17. formAllData = {};
  18. for (var id in formDataes) {
  19. if (!fieldMap[id]) {
  20. learun.layer.warning('未设置流程表单关联字段!', function () { }, '提示', '关闭');
  21. return false;
  22. }
  23. $.extend(formAllData, formDataes[id]);
  24. if (!formMap[id]) {
  25. formDataes[id][fieldMap[id]] = processId;
  26. }
  27. var point = {
  28. schemeInfoId: id,
  29. processIdName: fieldMap[id],
  30. formData: JSON.stringify(formDataes[id])
  31. }
  32. if (formMap[id]) {
  33. point.keyValue = processId;
  34. }
  35. formreq.push(point);
  36. }
  37. return true;
  38. };
  39. var page = {
  40. init: function ($page, param) {
  41. var _html = '<div class="lr-form-header-submit" style="display:block;" >审核</div>';
  42. $header = $page.parents('.f-page').find('.f-page-header');
  43. $header.append(_html);
  44. headText = $header.find('.f-page-title').text();
  45. $page.find('.lr-audit-page').toptab(['表单信息', '流程信息']).each(function (index) {
  46. var $this = $(this);
  47. switch (index) {
  48. case 0:
  49. $this.html('<div class="container" id="auditcontainer"></div>');
  50. break;
  51. case 1:
  52. $this.html('<div class="container" id="auditcontainer2"></div>');
  53. break;
  54. }
  55. $this = null;
  56. });
  57. processId = param.processId;
  58. taskId = param.taskId;
  59. taskinfo(param);
  60. // 审核
  61. $header.find('.lr-form-header-submit').on('tap', function () {
  62. learun.actionsheet({
  63. id: 'audit',
  64. data: [
  65. {
  66. text: '同意',
  67. group: '1',
  68. event: function () {// 删除当前条信息
  69. // 获取表单数据
  70. if (!getFormData($page)) {
  71. return false;
  72. }
  73. learun.nav.go({ path: 'workflow/audit/verify', title: headText + "【同意】", type: 'right', param: { processId: processId, taskId: taskId, formData: JSON.stringify(formAllData), verify:'1' } });
  74. }
  75. },
  76. {
  77. text: '不同意',
  78. mark: true,
  79. group: '1',
  80. event: function () {// 删除当前条信息
  81. // 获取表单数据
  82. if (!getFormData($page)) {
  83. return false;
  84. }
  85. learun.nav.go({ path: 'workflow/audit/verify', title: headText + "【不同意】", type: 'right', param: { processId: processId, taskId: taskId, formData: JSON.stringify(formAllData), verify: '2' } });
  86. }
  87. },
  88. {
  89. text: '加签',
  90. group: '2',
  91. event: function () {// 删除当前条信息
  92. // 获取表单数据
  93. if (!getFormData($page)) {
  94. return false;
  95. }
  96. learun.nav.go({ path: 'workflow/audit/sign', title: headText + "【加签】", type: 'right' });
  97. }
  98. }
  99. ],
  100. cancel: function () {
  101. }
  102. });
  103. });
  104. },
  105. sign: function (info, auditers) {// info加签信息
  106. var flowreq = {
  107. taskId: taskId,
  108. verifyType: '3',
  109. auditorId: info.auditorId,
  110. auditorName: info.auditorName,
  111. description: info.description,
  112. formData: JSON.stringify(formAllData),
  113. formreq: JSON.stringify(formreq)
  114. };
  115. learun.layer.loading(true, "加签流程,请等待!");
  116. learun.httppost(config.webapi + "learun/adms/workflow/audit", flowreq, (data) => {
  117. learun.layer.loading(false);
  118. var prepage = learun.nav.getpage('workflow/mytask');
  119. prepage.grid[1].reload();
  120. learun.nav.closeCurrent();
  121. });
  122. },
  123. verify: function (info, auditers) {// info审核信息
  124. var flowreq = {
  125. taskId: taskId,
  126. verifyType: info.verify,
  127. description: info.description,
  128. formData: JSON.stringify(formAllData),
  129. auditers: JSON.stringify(auditers),
  130. formreq: JSON.stringify(formreq)
  131. };
  132. learun.layer.loading(true, "审核流程,请等待!");
  133. learun.httppost(config.webapi + "learun/adms/workflow/audit", flowreq, (data) => {
  134. learun.layer.loading(false);
  135. var prepage = learun.nav.getpage('workflow/mytask');
  136. prepage.grid[1].reload();
  137. learun.nav.closeCurrent();
  138. });
  139. },
  140. destroy: function (pageinfo) {
  141. $header = null;
  142. }
  143. };
  144. // 流程发起初始化
  145. function taskinfo(_param) {
  146. fieldMap = {};
  147. var req = {
  148. processId: _param.processId,
  149. taskId: _param.taskId
  150. };
  151. learun.layer.loading(true, "获取流程信息");
  152. learun.httpget(config.webapi + "learun/adms/workflow/taskinfo", req, (data) => {
  153. learun.layer.loading(false);
  154. if (data) {
  155. var flowdata = data;
  156. if (flowdata.status == 1) {// 流程数据加载成功
  157. var wfForms = flowdata.data.currentNode.wfForms;// 表单数据
  158. // 获取下关联字段
  159. var formreq = [];
  160. var schemeIds = [];
  161. $.each(wfForms, function (_index, _item) {
  162. fieldMap[_item.formId] = _item.field;
  163. schemeIds.push(_item.formId);
  164. var point = {
  165. schemeInfoId: _item.formId,
  166. processIdName: _item.field,
  167. keyValue: _param.processId,
  168. }
  169. formreq.push(point);
  170. });
  171. learun.custmerform.loadScheme(schemeIds, function (scheme) {
  172. $('#auditcontainer').custmerform(scheme);
  173. // 设置表单的可查看权限
  174. $.each(flowdata.data.currentNode.authorizeFields || [], function (_index, _item) {
  175. if (_item.isLook === 0) {
  176. $('#auditcontainer').find('#' + _item.fieldId).parents('.lr-form-row').remove();
  177. }
  178. else if (_item.isEdit === 0) {
  179. $('#auditcontainer').find('#' + _item.fieldId).parents('.lr-form-row').attr('readonly', 'readonly');
  180. }
  181. });
  182. });
  183. formMap = {};
  184. // 获取下自定义表单数据
  185. learun.httpget(config.webapi + "learun/adms/form/data", formreq, (data) => {
  186. if (data) {// 加载表单
  187. // 设置自定义表单数据
  188. $.each(data, function (_id, _item) {
  189. $.each(_item, function (_j, _jitem) {
  190. if (_jitem.length > 0) {
  191. formMap[_id] = true;
  192. }
  193. });
  194. });
  195. $('#auditcontainer').custmerformSet(data);
  196. }
  197. });
  198. // 加载流程信息
  199. initTimeLine(flowdata.data.history);
  200. }
  201. }
  202. });
  203. }
  204. function initTimeLine(flowHistory) {
  205. var nodelist = [];
  206. for (var i = 0, l = flowHistory.length; i < l; i++) {
  207. var item = flowHistory[i];
  208. var content = '';
  209. if (item.F_Result == 1) {
  210. content += '通过';
  211. }
  212. else {
  213. content += '不通过';
  214. }
  215. if (item.F_Description) {
  216. content += '【备注】' + item.F_Description;
  217. }
  218. var point = {
  219. title: item.F_NodeName,
  220. people: item.F_CreateUserName + ':',
  221. content: content,
  222. time: item.F_CreateDate
  223. };
  224. nodelist.push(point);
  225. }
  226. $('#auditcontainer2').ftimeline(nodelist);
  227. }
  228. return page;
  229. })();