123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292 |
- import {
- queryAuditList,
- addAudit,
- addAuditNode,
- addFlow,
- queryBoomFlowDetail,
- updateNode,
- queryFlowList,
- queryDingTemplateList,
- saveAuditFlowInfo,
- queryDepV2,
- queryProcessFlows,
- queryDefaultBindClassify,
- } from '@/services/boom';
- import {
- queryApproval,
- } from '@/services/approval';
- 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;
- }
- const getFlowDetail = data => {
- 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 };
- node.ports.groups = groups;
- node.parentKey = '1';
- return node;
- });
- let edges = data.edges.map(item => {
- let edge = { ...item };
- try {
- edge.attrs = item.attr ? JSON.parse(item.attr) : attrs;
- } catch (error) {
- edge.attrs = attrs;
- }
- return edge;
- });
- return {
- ...data,
- nodes,
- edges,
- };
- };
- export default {
- namespace: 'flow',
- state: {
- flowDetail: { nodes: [], edges: [] },
- formData: {},
- auditList: [],
- flowList: [],
- projectList: [],
- current: {},
- roleList: [],
- templateList: [],
- depUserTree: [],
- simpleFlowDteail: '',
- },
- 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(queryApproval,{pageSize: 99999});
- 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, callback }, { call, put }) {
- const data = yield call(updateNode, payload);
- console.log(data);
- message.success('修改成功');
- callback && callback();
- },
- *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: data[0].process_json
- ? getFlowDetail(JSON.parse(data[0].process_json))
- : { nodes: [], edges: [] },
- formData: data[0].form_json ? JSON.parse(data[0].form_json) : [],
- simpleFlowDteail: data[0].process_simple_json,
- },
- });
- }
- },
- *queryDefaultBindClassify({ payload }, { call, put }) {
- const data = yield call(queryDefaultBindClassify, payload);
- if (data) {
-
- }
- },
- },
- reducers: {
- save(state, action) {
- return {
- ...state,
- ...action.payload,
- };
- },
- },
- };
|