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.
 
 
 
 
 
 

292 lines
12 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 formreq;
  10. // 流程信息
  11. var info;
  12. var schemeObj;
  13. var currentNode;
  14. var nodeMap = {};
  15. var getFormData = function ($page) {
  16. formDataes = $page.find('#chlidauditcontainer').custmerformGet();
  17. if (formDataes == null) {
  18. return false;
  19. }
  20. formreq = [];
  21. for (var id in formDataes) {
  22. if (!fieldMap[id]) {
  23. learun.layer.warning('未设置流程表单关联字段!', function () { }, '数字化智慧校园', '关闭');
  24. return false;
  25. }
  26. if (!formMap[id]) {
  27. formDataes[id][fieldMap[id]] = info.childProcessId;
  28. }
  29. var point = {
  30. schemeInfoId: id,
  31. processIdName: fieldMap[id],
  32. formData: JSON.stringify(formDataes[id])
  33. }
  34. if (formMap[id]) {
  35. point.keyValue = info.childProcessId;
  36. }
  37. formreq.push(point);
  38. console.log(point);
  39. }
  40. return true;
  41. };
  42. var page = {
  43. init: function ($page, param) {
  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. $page.find('.lr-chlidaudit-page').toptab(['表单信息', '父流程信息']).each(function (index) {
  49. var $this = $(this);
  50. switch (index) {
  51. case 0:
  52. $this.html('<div class="container" id="chlidauditcontainer"></div>');
  53. break;
  54. case 1:
  55. $this.html('<div class="container" id="chlidauditcontainer2"></div>');
  56. break;
  57. }
  58. $this = null;
  59. });
  60. processId = param.processId;
  61. taskId = param.taskId;
  62. taskinfo(param);
  63. // 提交
  64. $header.find('.lr-form-header-submit').on('tap', function () {
  65. learun.actionsheet({
  66. id: 'chlidaudit1',
  67. data: [
  68. {
  69. text: '创建子流程',
  70. group: '1',
  71. event: function () {
  72. // 获取表单数据
  73. if (!getFormData($page)) {
  74. return false;
  75. }
  76. learun.layer.confirm('是否确认创建子流程?', function (_index) {
  77. if (_index === '1') {
  78. // 创建流程
  79. page.create();
  80. }
  81. }, '数字化智慧校园', ['取消', '确定']);
  82. }
  83. },
  84. {
  85. text: '保存草稿',
  86. mark: true,
  87. group: '2',
  88. event: function () {
  89. // 获取表单数据
  90. if (!getFormData($page, true)) {
  91. return false;
  92. }
  93. // 创建草稿
  94. page.saveDraft();
  95. }
  96. }
  97. ],
  98. cancel: function () {
  99. }
  100. });
  101. });
  102. },
  103. create: function () {// info加签信息
  104. var flowreq = {
  105. code: currentNode.childFlow,
  106. processId: info.childProcessId,
  107. parentProcessId: processId,
  108. parentTaskId: taskId,
  109. formreq: JSON.stringify(formreq)
  110. };
  111. learun.layer.loading(true, "创建子流程中");
  112. learun.httppost(config.webapi + "learun/adms/newwf/childcreate", flowreq, function (data) {
  113. learun.layer.loading(false);
  114. var prepage = learun.nav.getpage('nworkflow/myflow');
  115. prepage.grid[1].reload();
  116. learun.nav.closeCurrent();
  117. });
  118. },
  119. saveDraft: function (info, auditers) {// info审核信息
  120. var flowreq = {
  121. formreq: JSON.stringify(formreq)
  122. };
  123. learun.layer.loading(true, "保存草稿!");
  124. learun.httppost(config.webapi + "learun/adms/newwf/draft", flowreq, function (data) {
  125. learun.layer.loading(false);
  126. learun.nav.closeCurrent();
  127. });
  128. },
  129. destroy: function (pageinfo) {
  130. $header = null;
  131. }
  132. };
  133. // 流程发起初始化
  134. function taskinfo(_param) {
  135. fieldMap = {};
  136. var req = {
  137. processId: _param.processId,
  138. taskId: _param.taskId
  139. };
  140. learun.layer.loading(true, "获取流程信息");
  141. learun.httpget(config.webapi + "learun/adms/newwf/processinfo", req, function (data) {
  142. if (data) {
  143. info = data.info;
  144. schemeObj = JSON.parse(info.Scheme);
  145. // 获取当前节点
  146. $.each(schemeObj.nodes, function (_index, _item) {
  147. if (_item.id == info.CurrentNodeId) {
  148. currentNode = _item;
  149. }
  150. });
  151. learun.httpget(config.webapi + "learun/adms/newwf/scheme", currentNode.childFlow, function (cdata) {
  152. learun.layer.loading(false);
  153. if (cdata) {
  154. var schemeObj3 = JSON.parse(cdata.F_Content);
  155. var ccurrentNode;
  156. // 获取开始节点
  157. $.each(schemeObj3.nodes, function (_index, _item) {
  158. if (_item.type == 'startround') {
  159. ccurrentNode = _item;
  160. return false;
  161. }
  162. });
  163. var wfForms = ccurrentNode.wfForms;// 表单数据
  164. var schemeIds = [];
  165. var authorizeFields = [];
  166. var formreq = [];
  167. // 获取下关联字段
  168. $.each(wfForms, function (_index, _item) {
  169. if (_item.formId) {
  170. fieldMap[_item.formId] = _item.field;
  171. schemeIds.push(_item.formId);
  172. var point = {
  173. schemeInfoId: _item.formId,
  174. processIdName: _item.field,
  175. keyValue: info.childProcessId,
  176. }
  177. formreq.push(point);
  178. $.each(_item.authorize, function (_jindex, _jitem) {
  179. _jitem.fieldId = _jindex;
  180. authorizeFields.push(_jitem);
  181. });
  182. }
  183. });
  184. learun.custmerform.loadScheme(schemeIds, function (scheme) {
  185. $('#chlidauditcontainer').custmerform(scheme);
  186. // 设置表单的可查看权限
  187. $.each(authorizeFields, function (_index, _item) {
  188. if (_item.isLook === 0) {
  189. $('#chlidauditcontainer').find('#' + _item.fieldId).parents('.lr-form-row').remove();
  190. }
  191. else if (_item.isEdit === 0) {
  192. $('#chlidauditcontainer').find('#' + _item.fieldId).parents('.lr-form-row').attr('readonly', 'readonly');
  193. }
  194. });
  195. });
  196. formMap = {};
  197. // 获取下自定义表单数据
  198. learun.httpget(config.webapi + "learun/adms/form/data", formreq, function (data) {
  199. if (data) {
  200. // 设置自定义表单数据
  201. $.each(data, function (_id, _item) {
  202. $.each(_item, function (_j, _jitem) {
  203. if (_jitem.length > 0) {
  204. formMap[_id] = true;
  205. }
  206. });
  207. });
  208. $('#chlidauditcontainer').custmerformSet(data);
  209. }
  210. });
  211. }
  212. });
  213. }
  214. else {
  215. learun.layer.loading(false);
  216. }
  217. });
  218. learun.httpget(config.webapi + "learun/adms/newwf/processinfo", {
  219. processId: _param.processId
  220. }, function (data) {
  221. learun.layer.loading(false);
  222. if (data) {
  223. var schemeObj2 = JSON.parse(data.info.Scheme);
  224. // 获取当前节点
  225. $.each(schemeObj2.nodes, function (_index, _item) {
  226. nodeMap[_item.id] = _item;
  227. });
  228. // 加载流程信息
  229. initTimeLine(data.info.TaskLogList);
  230. }
  231. });
  232. }
  233. function initTimeLine(flowHistory) {
  234. var nodelist = [];
  235. learun.clientdata.getAll('department', {
  236. callback: function (departmentMap) {
  237. learun.clientdata.getAll('user', {
  238. callback: function (userMap) {
  239. for (var i = 0, l = flowHistory.length; i < l; i++) {
  240. var item = flowHistory[i];
  241. var name = (item.F_CreateUserName || '系统处理') + ':';
  242. if (item.F_CreateUserId && userMap[item.F_CreateUserId]) {
  243. var _department = departmentMap[userMap[item.F_CreateUserId].departmentId];
  244. if (_department) {
  245. name = '【' + _department.name + '】' + name;
  246. }
  247. }
  248. var content = item.F_OperationName;
  249. if (item.F_Des) {
  250. content += '【审批意见】' + item.F_Des;
  251. }
  252. var nodeName = '';
  253. if (item.F_NodeId && nodeMap[item.F_NodeId]) {
  254. nodeName = nodeMap[item.F_NodeId].name;
  255. }
  256. var point = {
  257. title: item.F_NodeName || nodeName,
  258. people: name,
  259. content: content,
  260. time: item.F_CreateDate
  261. };
  262. nodelist.push(point);
  263. }
  264. $('#chlidauditcontainer2').ftimeline(nodelist);
  265. }
  266. });
  267. }
  268. });
  269. }
  270. return page;
  271. })();