import { queryAuditList, addAudit, addAuditNode, addFlow, queryBoomFlowDetail, updateNode, queryFlowList, queryDingTemplateList, saveAuditFlowInfo, queryDepV2, queryProcessFlows, } from '@/services/boom'; import { queryRole } from '@/services/SysAdmin'; import { queryProject } from '@/services/PurchaseList'; import { message } from 'antd'; function getDepUserTree(data) { data.title = `${data.Name}`; data.id = data.ID; data.value = data.ID; // data.selectable = false; if (!data.children) data.children = new Array(); if (data.children) { data.children.forEach(item => { getDepUserTree(item); }); } if (data.Users && data.Users.length !== 0) { data.Users.forEach(item => { item.title = item.CName; item.id = item.ID + '||' + data.ID; item.value = item.ID + '||' + data.ID; // item.selectable = true; item.DepId = data.ID; data.children.push(item); }); } return data; } export default { namespace: 'flow', state: { flowDetail: { nodes: [], edges: [] }, formData: {}, auditList: [], flowList: [], projectList: [], current: {}, roleList: [], templateList: [], depUserTree: [], }, effects: { *addFlow({ payload, callback }, { call, put }) { const res = yield call(addFlow, payload); if (res) { message.success('添加成功'); callback && callback(); yield put({ type: 'queryFlowList', }); } }, *getRoleList({ payload }, { call, put }) { const response = yield call(queryRole, payload); if (response) { yield put({ type: 'save', payload: { roleList: response.data.list }, }); } }, *queryBoomFlowDetail({ payload }, { call, put }) { const data = yield call(queryBoomFlowDetail, payload); console.log(data); yield put({ type: 'save', payload: { flowDetail: data }, }); }, *queryProject({ callback }, { call, put }) { const response = yield call(queryProject); if (response) { yield put({ type: 'save', payload: { projectList: response.data.list, }, }); } }, *queryFlowList({ payload }, { call, put }) { const res = yield call(queryFlowList, payload); yield put({ type: 'save', payload: { flowList: res.data }, }); }, *updateNode({ payload }, { call, put }) { const data = yield call(updateNode, payload); console.log(data); message.success('修改成功'); }, *queryAuditList({ payload }, { call, put }) { const response = yield call(queryAuditList, payload); if (response) { yield put({ type: 'save', payload: { auditList: response.data }, }); } }, *addAudit({ payload, callback }, { call, put }) { const response = yield call(addAudit, payload); if (response) { message.success('新增成功'); callback && callback(); yield put({ type: 'queryAuditList', payload: {}, }); } }, *addAuditNode({ payload, callback }, { call, put }) { const response = yield call(addAuditNode, payload); if (response) { message.success('操作成功'); callback && callback(); } }, *queryDingTemplateList({ payload }, { call, put }) { const response = yield call(queryDingTemplateList, payload); if (response) { yield put({ type: 'save', payload: { templateList: response.data.result }, }); } }, *saveAuditFlowInfo({ payload, callback }, { call, put }) { const response = yield call(saveAuditFlowInfo, payload); if (response) { message.success('保存成功'); callback && callback(); } }, *fetchDepV2({ payload, callback }, { call, put }) { const response = yield call(queryDepV2, { pageSize: 999999 }); if (response) { // const depUserTree = response.data?.list; const depUserTree = response.data.list.map(item => { return getDepUserTree(item); }); yield put({ type: 'save', payload: { depUserTree }, }); } }, *queryProcessFlows({ payload }, { call, put }) { const data = yield call(queryProcessFlows, payload); if (data && data.length > 0) { yield put({ type: 'save', payload: { flowDetail: JSON.parse(data[0].process_json), formData: JSON.parse(data[0].form_json), }, }); } }, }, reducers: { save(state, action) { return { ...state, ...action.payload, }; }, }, };