flow.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. import {
  2. queryAuditList,
  3. addAudit,
  4. addAuditNode,
  5. addFlow,
  6. queryBoomFlowDetail,
  7. updateNode,
  8. queryFlowList,
  9. queryDingTemplateList,
  10. saveAuditFlowInfo,
  11. queryDepV2,
  12. queryProcessFlows,
  13. } from '@/services/boom';
  14. import { queryRole } from '@/services/SysAdmin';
  15. import { queryProject } from '@/services/PurchaseList';
  16. import { message } from 'antd';
  17. function getDepUserTree(data) {
  18. data.title = `${data.Name}`;
  19. data.id = data.ID;
  20. data.value = data.ID;
  21. // data.selectable = false;
  22. if (!data.children) data.children = new Array();
  23. if (data.children) {
  24. data.children.forEach(item => {
  25. getDepUserTree(item);
  26. });
  27. }
  28. if (data.Users && data.Users.length !== 0) {
  29. data.Users.forEach(item => {
  30. item.title = item.CName;
  31. item.id = item.ID + '||' + data.ID;
  32. item.value = item.ID + '||' + data.ID;
  33. // item.selectable = true;
  34. item.DepId = data.ID;
  35. data.children.push(item);
  36. });
  37. }
  38. return data;
  39. }
  40. export default {
  41. namespace: 'flow',
  42. state: {
  43. flowDetail: { nodes: [], edges: [] },
  44. formData: {},
  45. auditList: [],
  46. flowList: [],
  47. projectList: [],
  48. current: {},
  49. roleList: [],
  50. templateList: [],
  51. depUserTree: [],
  52. },
  53. effects: {
  54. *addFlow({ payload, callback }, { call, put }) {
  55. const res = yield call(addFlow, payload);
  56. if (res) {
  57. message.success('添加成功');
  58. callback && callback();
  59. yield put({
  60. type: 'queryFlowList',
  61. });
  62. }
  63. },
  64. *getRoleList({ payload }, { call, put }) {
  65. const response = yield call(queryRole, payload);
  66. if (response) {
  67. yield put({
  68. type: 'save',
  69. payload: { roleList: response.data.list },
  70. });
  71. }
  72. },
  73. *queryBoomFlowDetail({ payload }, { call, put }) {
  74. const data = yield call(queryBoomFlowDetail, payload);
  75. console.log(data);
  76. yield put({
  77. type: 'save',
  78. payload: { flowDetail: data },
  79. });
  80. },
  81. *queryProject({ callback }, { call, put }) {
  82. const response = yield call(queryProject);
  83. if (response) {
  84. yield put({
  85. type: 'save',
  86. payload: {
  87. projectList: response.data.list,
  88. },
  89. });
  90. }
  91. },
  92. *queryFlowList({ payload }, { call, put }) {
  93. const res = yield call(queryFlowList, payload);
  94. yield put({
  95. type: 'save',
  96. payload: { flowList: res.data },
  97. });
  98. },
  99. *updateNode({ payload }, { call, put }) {
  100. const data = yield call(updateNode, payload);
  101. console.log(data);
  102. message.success('修改成功');
  103. },
  104. *queryAuditList({ payload }, { call, put }) {
  105. const response = yield call(queryAuditList, payload);
  106. if (response) {
  107. yield put({
  108. type: 'save',
  109. payload: { auditList: response.data },
  110. });
  111. }
  112. },
  113. *addAudit({ payload, callback }, { call, put }) {
  114. const response = yield call(addAudit, payload);
  115. if (response) {
  116. message.success('新增成功');
  117. callback && callback();
  118. yield put({
  119. type: 'queryAuditList',
  120. payload: {},
  121. });
  122. }
  123. },
  124. *addAuditNode({ payload, callback }, { call, put }) {
  125. const response = yield call(addAuditNode, payload);
  126. if (response) {
  127. message.success('操作成功');
  128. callback && callback();
  129. }
  130. },
  131. *queryDingTemplateList({ payload }, { call, put }) {
  132. const response = yield call(queryDingTemplateList, payload);
  133. if (response) {
  134. yield put({
  135. type: 'save',
  136. payload: { templateList: response.data.result },
  137. });
  138. }
  139. },
  140. *saveAuditFlowInfo({ payload, callback }, { call, put }) {
  141. const response = yield call(saveAuditFlowInfo, payload);
  142. if (response) {
  143. message.success('保存成功');
  144. callback && callback();
  145. }
  146. },
  147. *fetchDepV2({ payload, callback }, { call, put }) {
  148. const response = yield call(queryDepV2, { pageSize: 999999 });
  149. if (response) {
  150. // const depUserTree = response.data?.list;
  151. const depUserTree = response.data.list.map(item => {
  152. return getDepUserTree(item);
  153. });
  154. yield put({
  155. type: 'save',
  156. payload: { depUserTree },
  157. });
  158. }
  159. },
  160. *queryProcessFlows({ payload }, { call, put }) {
  161. const data = yield call(queryProcessFlows, payload);
  162. if (data && data.length > 0) {
  163. yield put({
  164. type: 'save',
  165. payload: {
  166. flowDetail: JSON.parse(data[0].process_json),
  167. formData: JSON.parse(data[0].form_json),
  168. },
  169. });
  170. }
  171. },
  172. },
  173. reducers: {
  174. save(state, action) {
  175. return {
  176. ...state,
  177. ...action.payload,
  178. };
  179. },
  180. },
  181. };