boom.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. import { request } from 'umi';
  2. import { stringify } from 'qs';
  3. export async function queryAuditList(params) {
  4. let res = await request(`/api/v1/purchase/flow/info?${stringify(params)}`);
  5. res.data = res.data.map((item) => ({
  6. ...item,
  7. list: null,
  8. ...item.list,
  9. }));
  10. return res;
  11. }
  12. export async function addAudit(data) {
  13. return request(`/api/v1/purchase/flow/info`, {
  14. method: 'POST',
  15. data,
  16. });
  17. }
  18. export async function audit(data) {
  19. return request(`/api/v1/oa/audit/status`, {
  20. method: 'GET',
  21. params: data,
  22. });
  23. }
  24. export async function queryAuditDetail(params) {
  25. return request(`/api/v1/oa/audit/detail`, {
  26. method: 'GET',
  27. params,
  28. });
  29. }
  30. const getFlowDetail = (data) => {
  31. const groups = {
  32. top: {
  33. position: { name: 'top' },
  34. attrs: {
  35. circle: {
  36. r: 4,
  37. magnet: true,
  38. stroke: '#31d0c6',
  39. strokeWidth: 2,
  40. fill: '#fff',
  41. style: { visibility: 'hidden' },
  42. },
  43. },
  44. zIndex: 10,
  45. },
  46. right: {
  47. position: { name: 'right' },
  48. attrs: {
  49. circle: {
  50. r: 4,
  51. magnet: true,
  52. stroke: '#31d0c6',
  53. strokeWidth: 2,
  54. fill: '#fff',
  55. style: { visibility: 'hidden' },
  56. },
  57. },
  58. zIndex: 10,
  59. },
  60. bottom: {
  61. position: { name: 'bottom' },
  62. attrs: {
  63. circle: {
  64. r: 4,
  65. magnet: true,
  66. stroke: '#31d0c6',
  67. strokeWidth: 2,
  68. fill: '#fff',
  69. style: { visibility: 'hidden' },
  70. },
  71. },
  72. zIndex: 10,
  73. },
  74. left: {
  75. position: { name: 'left' },
  76. attrs: {
  77. circle: {
  78. r: 4,
  79. magnet: true,
  80. stroke: '#31d0c6',
  81. strokeWidth: 2,
  82. fill: '#fff',
  83. style: { visibility: 'hidden' },
  84. },
  85. },
  86. zIndex: 10,
  87. },
  88. };
  89. const attrs = {
  90. line: {
  91. stroke: '#A2B1C3',
  92. targetMarker: { name: 'block', width: 12, height: 8 },
  93. strokeDasharray: '5 5',
  94. strokeWidth: 1,
  95. },
  96. };
  97. let nodes = data.nodes.map((item) => {
  98. let node = { ...item };
  99. node.ports.groups = groups;
  100. node.parentKey = '1';
  101. return node;
  102. });
  103. let edges = data.edges.map((item) => {
  104. let edge = { ...item };
  105. try {
  106. edge.attrs = item.attr ? JSON.parse(item.attr) : attrs;
  107. } catch (error) {
  108. edge.attrs = attrs;
  109. }
  110. return edge;
  111. });
  112. return {
  113. ...data,
  114. nodes,
  115. edges,
  116. };
  117. };
  118. export async function queryProcessFlows(params) {
  119. let res = await request(
  120. `/api/v1/purchase/process/get-flows?${stringify(params)}`,
  121. {
  122. method: 'GET',
  123. },
  124. );
  125. let data = res.data[0];
  126. let item = {
  127. ...data,
  128. flowDetail: data.process_json
  129. ? getFlowDetail(JSON.parse(data.process_json))
  130. : { nodes: [], edges: [] },
  131. formData: data.form_json ? JSON.parse(data.form_json) : [],
  132. simpleFlowDteail: data.process_simple_json,
  133. };
  134. // 旧字段formItems 替换为新字段条件组 formItemsOr
  135. item.flowDetail.nodes.forEach((node) => {
  136. if (node.formItems) {
  137. node.formItemsOr = [node.formItems];
  138. node.formItems = '';
  139. } else {
  140. node.formItemsOr = node.formItemsOr || [];
  141. }
  142. });
  143. return { data: item };
  144. }
  145. export async function saveAuditFlowInfo(data) {
  146. return request(`/api/v1/purchase/flow/info`, {
  147. method: 'POST',
  148. data,
  149. });
  150. }
  151. export async function queryUserListByRoleID(params) {
  152. let res = await request(
  153. `/api/v1/purchase/process/get-role-user?${stringify(params)}`,
  154. {
  155. method: 'GET',
  156. },
  157. );
  158. return res.data;
  159. }
  160. export async function queryGetBomForm(params) {
  161. let res = await request(
  162. `/api/v1/purchase/bom/get-bom-form?${stringify(params)}`,
  163. {
  164. method: 'GET',
  165. },
  166. );
  167. return res;
  168. }
  169. //获取分类列表
  170. export async function queryClassify(data) {
  171. let res = await request(`/api/v1/purchase/bom/get-classify`, {
  172. method: 'GET',
  173. params: data,
  174. });
  175. return res;
  176. }
  177. export async function queryOSSData() {
  178. return request(`/api/v1/config/chart-template-img?destDir=doc/bom`);
  179. }
  180. // 提交审批
  181. export async function createAduit(data) {
  182. return request(`/api/v1/oa/submit`, {
  183. method: 'POST',
  184. data,
  185. });
  186. }
  187. // 计算审批节点
  188. export async function advanceSubmitNextNode(params) {
  189. let data = {
  190. flow_id: 0,
  191. node_level_id: 0,
  192. id: 0,
  193. project_id: 0,
  194. cur_template_node_id: 0,
  195. next_template_node_id: 0,
  196. template_node_id: null,
  197. flow_path: null,
  198. template_id: 0,
  199. cur_template_id: 0,
  200. next_template_id: 0,
  201. ...params,
  202. form_list: [JSON.stringify(params)],
  203. };
  204. return request(`/api/v1/oa/next/node/advance-submit`, {
  205. method: 'POST',
  206. data,
  207. });
  208. }
  209. export async function queryProfileList(params) {
  210. let profileList = await request(`/api/v1/oa/audit/list`, { params });
  211. return profileList?.data;
  212. }
  213. export async function queryApplyList(params) {
  214. const res = await request(`/api/v1/oa/audit/my/list`, { params });
  215. if (res?.data) {
  216. return { list: res.data?.list, pagination: res.data?.pagination };
  217. } else {
  218. return { list: [], pagination: {} };
  219. }
  220. }
  221. //获取多级主管
  222. export async function queryLeader() {
  223. return request(`/api/v1/oa/get-leader/list`);
  224. }
  225. //撤回申请
  226. export async function applyRepeal(params) {
  227. return request(`/api/v1/oa/repeal/${params.id}`);
  228. }
  229. // 查询立项 id=&pageSize=&currentPage=&user_id=
  230. export async function queryApproval(data) {
  231. return request(`/api/v2/approval/record?${stringify(data)}`);
  232. }
  233. //删除审批流
  234. export async function queryFlowDelete(id) {
  235. return request(`/api/v1/oa/flow/delete/${id}`);
  236. }
  237. export async function updateAuditList(data, isAfter) {
  238. let res = await request(`/api/v1/oa/submit/add-auditor`, {
  239. method: 'POST',
  240. data,
  241. });
  242. if (isAfter) {
  243. await audit({
  244. id: data.oa_id,
  245. status: 1,
  246. });
  247. }
  248. return res;
  249. }