import { message } from 'antd'; import request from '@/utils/request'; import { async } from '@antv/x6/lib/registry/marker/async'; import { stringify } from 'qs'; /** project_id version_id 大版本id template_id template_node_id 查询某流程和某节点下最新版本的数据记录 node_id 查询某审批流程和某审批节点下最新版本的数据记录 */ export async function queryRecord(params) { return request(`/purchase/record?${stringify(params)}`); } // 查询全部工作流 export async function queryFlowList(params) { return request(`/purchase/bom/flows?${stringify(params)}`); } // 根据节点id查询所有version export async function queryVserionByNode(params) { return request(`/purchase/bom/flow/node?${stringify(params)}`); } export async function commitSheet(params) { return request(`/purchase/record`, { method: 'POST', body: params, }); } export async function approve(params) { return request(`/purchase/audit/status`, { method: 'POST', body: params, }); } export async function queryAuthority(params) { const depId = localStorage.depId; return request(`/purchase/bom/user/excel/col?depId=${depId}`, { method: 'POST', body: params, }); } export async function addBomComment(params) { return request(`/purchase/comment`, { method: 'POST', body: params, }); } export async function queryBomComment(params) { return request(`/purchase/comment?${stringify(params)}`); } /** * 提交流转 "id":3, 当前流转文档id,必填 "project_id":46, 所属项目id "template_id":1, 所属模板id ,必填 "template_node_id":34,所属节点id,必填 "next_template_id":1,跳转的下级业务模板id,必填 "next_template_node_id":2,跳转的下级业务节点id,必填 "flow_id":1, 跳转的下级审核流程id , 如果不为空,则说明流转的是审核节点,下级业务节点为审核通过后进入的业务节点 "node_id":1,跳转的下级审核节点id "desc":"流转描述" */ export async function submitNextNode(params) { return request(`/purchase/next/node/submit`, { method: 'POST', body: params, }); } export async function advanceSubmitNextNode(params) { return request(`/api/v1/purchase/next/node/advance-submit`, { method: 'POST', body: params, }); } export async function queryDetail(params) { let response = await request(`/purchase/record?${stringify(params)}`); let sheet = response.data; sheet.data = JSON.parse(sheet.data || '[]'); sheet.data.forEach(item => { item.config = JSON.parse(item.config || '{}'); item.celldata = JSON.parse(item.cell_data || '[]'); delete item.cell_data; }); return sheet; } export async function queryHistoryDetail(params) { return request(`/purchase/record/history/detail?${stringify(params)}`); } export async function queryHistoryList(params) { return request(`/purchase/record/history?${stringify(params)}`); } export async function queryBoomFlowList(params) { return request(`/purchase/bom/flows?${stringify(params)}`); } //请求历史版本 export async function queryVersionsTree(params) { return request(`/api/v1/purchase/record/version/tree?${stringify(params)}`); } //查询业务节点的审核记录 export async function queryAuditExcel(params) { return request(`/api/v1/purchase/audit/excel?${stringify(params)}`); } //查询审批节点的审核记录 export async function queryAuditRecord(params) { return request(`/api/v1/purchase/audit/record?${stringify(params)}`); } //查询表单数据接口 export async function queryDingSchema(params) { return request(`/api/v1/purchase/bom/ding/schema?${stringify(params)}`); } export async function queryDingInstanceDetail(params) { let res = await request(`/api/v1/purchase/bom/ding/instance-detail`, { method: 'POST', body: params, }); if (res.data.errcode != 0) { message.error(res.data.errmsg); throw new Error(res.data.errmsg); } return res; } export async function queryDingInstanceExecute(params) { let res = await request(`/api/v1/purchase/bom/ding/instance-execute`, { method: 'POST', body: params, }); if (res.data.errcode != 0) { message.error('审批失败,请联系管理员。'); throw new Error(res.data.errmsg); } return res; } export async function queryListParentByUser(params) { return request(`/api/v1/purchase/bom/ding/department/list-parent-by-user`, { method: 'POST', body: params, }); } /** * 查看项目流程列表 * project_id */ export async function queryProjectRecord(params) { return request(`/purchase/bom/project/record?${stringify(params)}`); } /** 查看版本列表 * project_id template_id 流程id template_node_id 流程节点id */ export async function queryVersionsList(params) { return request(`/purchase/record/versions?${stringify(params)}`); } export async function queryBoomFlowDetail(params) { let { data } = await request(`/purchase/bom/flow/info?${stringify(params)}`); const groups = { top: { position: { name: 'top' }, attrs: { circle: { r: 4, magnet: true, stroke: '#31d0c6', strokeWidth: 2, fill: '#fff', style: { visibility: 'hidden' }, }, }, zIndex: 10, }, right: { position: { name: 'right' }, attrs: { circle: { r: 4, magnet: true, stroke: '#31d0c6', strokeWidth: 2, fill: '#fff', style: { visibility: 'hidden' }, }, }, zIndex: 10, }, bottom: { position: { name: 'bottom' }, attrs: { circle: { r: 4, magnet: true, stroke: '#31d0c6', strokeWidth: 2, fill: '#fff', style: { visibility: 'hidden' }, }, }, zIndex: 10, }, left: { position: { name: 'left' }, attrs: { circle: { r: 4, magnet: true, stroke: '#31d0c6', strokeWidth: 2, fill: '#fff', style: { visibility: 'hidden' }, }, }, zIndex: 10, }, }; const attrs = { line: { stroke: '#A2B1C3', targetMarker: { name: 'block', width: 12, height: 8 }, strokeDasharray: '5 5', strokeWidth: 1, }, }; let nodes = data.Nodes.map(item => { let node = { ...item, id: item.node_id, renderKey: item.render_key, zIndex: item.z_index, isCustom: !!item.is_custom, ports: JSON.parse(item.ports || '{}'), }; node.ports.groups = groups; node.parentKey = '1'; return node; }); let edges = data.Edges.map(item => { let edge = { id: item.edge_id, source: { cell: item.source_cell, port: item.source_port, }, target: { cell: item.target_cell, port: item.target_port, }, }; try { edge.attrs = item.attr ? JSON.parse(item.attr) : attrs; } catch (error) { edge.attrs = attrs; } return edge; }); return { ...data, nodes, edges, }; } export async function updateNode(data) { return request(`/purchase/bom/flow/${data.templateId}/${data.nodeId}`, { method: 'PUT', body: data.body, }); } export async function addBoomFlow(data) { return request(`/purchase/bom/flow/info`, { method: 'POST', body: data, }); } export async function queryAuditList(params) { return request(`/purchase/flow/info?${stringify(params)}`); } export async function addAudit(data) { return request(`/purchase/flow/info`, { method: 'POST', body: data, }); } export async function addFlow(data) { return request(`/purchase/bom/flow/info`, { method: 'POST', body: data, }); } /** * [ { "flow_id": 23, "node": "主管", "desc": "desc", "auditor": 2, "seq": 1, "seq_relate": 0 } ] */ export async function addAuditNode(data) { return request(`/purchase/flow/info/${data.flowId}`, { method: 'POST', body: data.nodes, }); } export async function queryOSSData() { return request(`/config/chart-template-img?destDir=public/bom`); } export async function queryRecordSheet(data) { return request(`/purchase/record/sheet?${stringify(data)}`, { method: 'POST', body: data, }); } export async function queryDingTemplateList() { return request(`/purchase/bom/ding/template/list`); } export async function queryDDdepList(data) { let res = await request(`/api/v1/purchase/bom/ding/department-list`, { method: 'POST', body: data, }); return res.data.result; } export async function queryDDProcessesForecast(data) { let res = await request(`/api/v1/purchase/bom/ding/processes-forecast`, { method: 'POST', body: data, }); if (res.data.message) { // message.error(res.data.message); throw new Error(res.data.message); } return res.data.result; } export async function uploadFile(data) { let res = await request(`/api/v1/purchase/bom/ding/upload-file`, { method: 'POST', body: data, headers: { ContentType: 'application/x-www-form-urlencoded', }, }); if (!res.data.dentry) { message.error(res.data.errmsg); throw new Error(res.data.errmsg); } return res.data; } export async function bindDDCode(userId, code) { let res = await request(`/api/v1/purchase/bom/ding/set-ding-user-code?ucode=${userId}:${code}`, { method: 'GET', }); return res.data; } export async function saveAuditFlowInfo(data) { return request(`/purchase/flow/info`, { method: 'POST', body: data, }); } //获取部门结构 export async function queryDepV2(params) { return request(`/api/v2/dep?${stringify(params)}`); } export async function queryProcessFlows(params) { let res = await request(`/purchase/process/get-flows?${stringify(params)}`, { method: 'GET', }); return res.data; } export async function queryUserListByRoleID(params) { let res = await request(`/api/v1/purchase/process/get-role-user?${stringify(params)}`, { method: 'GET', }); return res.data; } //新增工作流时调用接口 给项目绑定默认分类列表 //purchase/bom/default-bind-classify?project_id=1 export async function queryDefaultBindClassify (params) { let res = await request(`/purchase/bom/default-bind-classify?${stringify(params)}`, { method: 'GET', }); return res.data; } //获取分类列表 export async function queryClassify() { let res = await request(`/purchase/bom/get-classify`, { method: 'GET', }); return res.data; } export async function queryBindClassify (params) { let res = await request(`/purchase/bom/get-bind-classify?${stringify(params)}`, { method: 'GET', }); return res.data; } export async function queryAddBindClassify(data) { return request(`/purchase/bom/add-bind-classify`, { method: 'POST', body: data, }); } export async function queryDelPurchaseExcel(params) { let res = await request(`/purchase/bom/del-purchase-excel?${stringify(params)}`, { method: 'GET', }); return res; }