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.
 
 
 
 
 
 

190 lines
7.2 KiB

  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-againbootstraper-page').toptab(['表单信息', '流程信息']).each(function (index) {
  46. var $this = $(this);
  47. switch (index) {
  48. case 0:
  49. $this.html('<div class="container" id="againbootstrapercontainer1"></div>');
  50. break;
  51. case 1:
  52. $this.html('<div class="container" id="againbootstrapercontainer2"></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. if (!getFormData($page)) {
  63. return false;
  64. }
  65. learun.nav.go({ path: 'workflow/againbootstraper/form', title: headText + "【发起】", type: 'right', param: { processId: processId, formData: JSON.stringify(formAllData) } });
  66. });
  67. },
  68. create: function (info, auditers) {// info审核信息
  69. var flowreq = {
  70. isNew: false,
  71. processId: processId,
  72. processName: info.processName,
  73. processLevel: info.processLevel,
  74. description: info.description,
  75. formData: JSON.stringify(formAllData),
  76. auditers: JSON.stringify(auditers),
  77. formreq: JSON.stringify(formreq)
  78. };
  79. learun.layer.loading(true, "创建流程,请等待!");
  80. learun.httppost(config.webapi + "learun/adms/workflow/create", flowreq, (data) => {
  81. learun.layer.loading(false);
  82. var prepage = learun.nav.getpage('workflow/mytask');
  83. prepage.grid[prepage.currentPage].reload();
  84. learun.nav.closeCurrent();
  85. });
  86. },
  87. destroy: function (pageinfo) {
  88. $header = null;
  89. }
  90. };
  91. // 流程发起初始化
  92. function taskinfo(_param) {
  93. fieldMap = {};
  94. var req = {
  95. processId: _param.processId,
  96. isNew: false
  97. };
  98. learun.layer.loading(true, "获取流程信息");
  99. learun.httpget(config.webapi + "learun/adms/workflow/bootstraper", req, (data) => {
  100. learun.layer.loading(false);
  101. if (data) {
  102. var flowdata = data;
  103. if (flowdata.status == 1) {// 流程数据加载成功
  104. var wfForms = flowdata.data.currentNode.wfForms;// 表单数据
  105. // 获取下关联字段
  106. var formreq = [];
  107. var schemeIds = [];
  108. $.each(wfForms, function (_index, _item) {
  109. fieldMap[_item.formId] = _item.field;
  110. schemeIds.push(_item.formId);
  111. var point = {
  112. schemeInfoId: _item.formId,
  113. processIdName: _item.field,
  114. keyValue: _param.processId,
  115. }
  116. formreq.push(point);
  117. });
  118. learun.custmerform.loadScheme(schemeIds, function (scheme) {
  119. $('#againbootstrapercontainer1').custmerform(scheme);
  120. // 设置表单的可查看权限
  121. $.each(flowdata.data.currentNode.authorizeFields || [], function (_index, _item) {
  122. if (_item.isLook === 0) {
  123. $('#againbootstrapercontainer1').find('#' + _item.fieldId).parents('.lr-form-row').remove();
  124. }
  125. else if (_item.isEdit === 0) {
  126. $('#againbootstrapercontainer1').find('#' + _item.fieldId).parents('.lr-form-row').attr('readonly', 'readonly');
  127. }
  128. });
  129. });
  130. formMap = {};
  131. // 获取下自定义表单数据
  132. learun.httpget(config.webapi + "learun/adms/form/data", formreq, (data) => {
  133. if (data) {// 加载表单
  134. // 设置自定义表单数据
  135. $.each(data, function (_id, _item) {
  136. $.each(_item, function (_j, _jitem) {
  137. if (_jitem.length > 0) {
  138. formMap[_id] = true;
  139. }
  140. });
  141. });
  142. $('#againbootstrapercontainer1').custmerformSet(data);
  143. }
  144. });
  145. // 加载流程信息
  146. initTimeLine(flowdata.data.history);
  147. }
  148. }
  149. });
  150. }
  151. function initTimeLine(flowHistory) {
  152. var nodelist = [];
  153. for (var i = 0, l = flowHistory.length; i < l; i++) {
  154. var item = flowHistory[i];
  155. var content = '';
  156. if (item.F_Result == 1) {
  157. content += '通过';
  158. }
  159. else {
  160. content += '不通过';
  161. }
  162. if (item.F_Description) {
  163. content += '【备注】' + item.F_Description;
  164. }
  165. var point = {
  166. title: item.F_NodeName,
  167. people: item.F_CreateUserName + ':',
  168. content: content,
  169. time: item.F_CreateDate
  170. };
  171. nodelist.push(point);
  172. }
  173. $('#againbootstrapercontainer2').ftimeline(nodelist);
  174. }
  175. return page;
  176. })();