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.
 
 
 
 
 
 

202 lines
7.4 KiB

  1. (function () {
  2. var processId = '';
  3. var fieldMap = {};
  4. var formMap = {};
  5. var formDataes;
  6. var formAllData;
  7. var formreq;
  8. var $header = null;
  9. var headText = '';
  10. var getFormData = function ($page, flag) {
  11. formDataes = $page.find('#draftflow').custmerformGet(flag);
  12. if (formDataes == null) {
  13. return false;
  14. }
  15. formreq = [];
  16. for (var id in formDataes) {
  17. if (!fieldMap[id]) {
  18. learun.layer.warning('未设置流程表单关联字段!', function () { }, '数字化智慧校园', '关闭');
  19. return false;
  20. }
  21. formDataes[id][fieldMap[id]] = processId;
  22. var point = {
  23. schemeInfoId: id,
  24. processIdName: fieldMap[id],
  25. formData: JSON.stringify(formDataes[id])
  26. }
  27. if (formMap[id]) {
  28. point.keyValue = processId;
  29. }
  30. formreq.push(point);
  31. }
  32. return true;
  33. };
  34. // 流程信息
  35. var info;
  36. var schemeObj;
  37. var currentNode;
  38. var nodeMap = {};
  39. var page = {
  40. isScroll: false,
  41. init: function ($page, param) {
  42. processId = param.processId;
  43. currentNode = null;
  44. var _html = '<div class="lr-form-header-submit" style="display:block;" >提交</div>';
  45. $header = $page.parents('.f-page').find('.f-page-header');
  46. $header.append(_html);
  47. headText = $header.find('.f-page-title').text();
  48. bootstraper($page);
  49. // 提交
  50. $header.find('.lr-form-header-submit').on('tap', function () {
  51. if (currentNode == null) {
  52. learun.layer.toast('还未加载完流程模板');
  53. return;
  54. }
  55. learun.actionsheet({
  56. id: 'createflow1',
  57. data: [
  58. {
  59. text: '创建流程',
  60. group: '1',
  61. event: function () {
  62. // 获取表单数据
  63. if (!getFormData($page)) {
  64. return false;
  65. }
  66. learun.nav.go({ path: 'nworkflow/draft/form', title: headText, type: 'right', param: { node: currentNode, nodelist: schemeObj.nodes, processId: processId } });
  67. }
  68. },
  69. {
  70. text: '保存草稿',
  71. mark: true,
  72. group: '2',
  73. event: function () {
  74. // 获取表单数据
  75. if (!getFormData($page, true)) {
  76. return false;
  77. }
  78. // 创建草稿
  79. page.saveDraft();
  80. }
  81. }
  82. ],
  83. cancel: function () {
  84. }
  85. });
  86. });
  87. },
  88. create: function (info, auditers) {// 创建流程
  89. var flowreq = {
  90. processId: processId,
  91. title: info.title,
  92. level: info.level,
  93. auditors: JSON.stringify(auditers),
  94. formreq: JSON.stringify(formreq)
  95. };
  96. learun.layer.loading(true, "创建流程,请等待!");
  97. learun.httppost(config.webapi + "learun/adms/newwf/create", flowreq, function (data) {
  98. learun.layer.loading(false);
  99. var prepage = learun.nav.getpage('nworkflow/myflow');
  100. prepage.grid[0].reload();
  101. learun.nav.closeCurrent();
  102. });
  103. },
  104. saveDraft: function () {// 保存草稿
  105. var flowreq = {
  106. processId: processId,
  107. formreq: JSON.stringify(formreq)
  108. };
  109. learun.layer.loading(true, "保存草稿!");
  110. learun.httppost(config.webapi + "learun/adms/newwf/draft", flowreq, function (data) {
  111. learun.layer.loading(false);
  112. var prepage = learun.nav.getpage('nworkflow/myflow');
  113. prepage.grid[0].reload();
  114. learun.nav.closeCurrent();
  115. });
  116. }
  117. };
  118. // 流程发起初始化
  119. function bootstraper($page) {
  120. fieldMap = {};
  121. var req = {
  122. processId: processId
  123. };
  124. learun.layer.loading(true, "获取流程信息");
  125. learun.httpget(config.webapi + "learun/adms/newwf/processinfo", req, function (data) {
  126. learun.layer.loading(false);
  127. if (data) {
  128. var schemeIds = [];
  129. var authorizeFields = [];
  130. var formreq = [];
  131. info = data.info;
  132. schemeObj = JSON.parse(info.Scheme);
  133. // 获取当前节点
  134. $.each(schemeObj.nodes, function (_index, _item) {
  135. if (_item.id == info.CurrentNodeId) {
  136. currentNode = _item;
  137. }
  138. nodeMap[_item.id] = _item;
  139. });
  140. $.each(currentNode.wfForms, function (_index, _item) {
  141. if (_item.formId) {
  142. fieldMap[_item.formId] = _item.field;
  143. schemeIds.push(_item.formId);
  144. var point = {
  145. schemeInfoId: _item.formId,
  146. processIdName: _item.field,
  147. keyValue: processId,
  148. }
  149. formreq.push(point);
  150. $.each(_item.authorize, function (_jindex, _jitem) {
  151. _jitem.fieldId = _jindex;
  152. authorizeFields.push(_jitem);
  153. });
  154. }
  155. });
  156. learun.custmerform.loadScheme(schemeIds, function (scheme) {
  157. $('#draftflow').custmerform(scheme);
  158. // 设置表单的可查看权限
  159. $.each(authorizeFields, function (_index, _item) {
  160. if (_item.isLook === 0) {
  161. $('#draftflow').find('#' + _item.fieldId).parents('.lr-form-row').remove();
  162. }
  163. else if (_item.isEdit === 0) {
  164. $('#draftflow').find('#' + _item.fieldId).parents('.lr-form-row').attr('readonly', 'readonly');
  165. }
  166. });
  167. });
  168. formMap = {};
  169. // 获取下自定义表单数据
  170. learun.httpget(config.webapi + "learun/adms/form/data", formreq, function (data) {
  171. if (data) {
  172. // 设置自定义表单数据
  173. $.each(data, function (_id, _item) {
  174. $.each(_item, function (_j, _jitem) {
  175. if (_jitem.length > 0) {
  176. formMap[_id] = true;
  177. }
  178. });
  179. });
  180. $('#draftflow').custmerformSet(data);
  181. }
  182. });
  183. }
  184. });
  185. }
  186. return page;
  187. })();