|  | @@ -5,9 +5,10 @@ import { connect } from 'dva';
 | 
											
												
													
														|  |  import { GetTokenFromUrl, getToken } from '@/utils/utils';
 |  |  import { GetTokenFromUrl, getToken } from '@/utils/utils';
 | 
											
												
													
														|  |  import { MODELS, useXFlowApp, useModelAsync } from '@antv/xflow';
 |  |  import { MODELS, useXFlowApp, useModelAsync } from '@antv/xflow';
 | 
											
												
													
														|  |  import { CheckOutlined } from '@ant-design/icons';
 |  |  import { CheckOutlined } from '@ant-design/icons';
 | 
											
												
													
														|  | -import { queryRecordSheet, queryVserionByNode } from '@/services/boom';
 |  | 
 | 
											
												
													
														|  | 
 |  | +import { queryDingInstanceDetail, queryRecordSheet, queryVserionByNode } from '@/services/boom';
 | 
											
												
													
														|  |  import { async } from '@antv/x6/lib/registry/marker/async';
 |  |  import { async } from '@antv/x6/lib/registry/marker/async';
 | 
											
												
													
														|  |  import VersionModal from './VersionModal';
 |  |  import VersionModal from './VersionModal';
 | 
											
												
													
														|  | 
 |  | +import AuditFlow from './AuditFlow';
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  const { Step } = Steps;
 |  |  const { Step } = Steps;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -28,6 +29,7 @@ function FlowModal(props) {
 | 
											
												
													
														|  |      dispatch,
 |  |      dispatch,
 | 
											
												
													
														|  |      isOut,
 |  |      isOut,
 | 
											
												
													
														|  |      onCommit,
 |  |      onCommit,
 | 
											
												
													
														|  | 
 |  | +    currentUser,
 | 
											
												
													
														|  |    } = props;
 |  |    } = props;
 | 
											
												
													
														|  |    const [data, setData] = useState([]);
 |  |    const [data, setData] = useState([]);
 | 
											
												
													
														|  |    const [nodeLoading, setNodeLoading] = useState(false);
 |  |    const [nodeLoading, setNodeLoading] = useState(false);
 | 
											
										
											
												
													
														|  | @@ -92,36 +94,41 @@ function FlowModal(props) {
 | 
											
												
													
														|  |      updateSteps([]);
 |  |      updateSteps([]);
 | 
											
												
													
														|  |    };
 |  |    };
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -  const updateSteps = (data, curNodeId) => {
 |  | 
 | 
											
												
													
														|  | -    let newData = [];
 |  | 
 | 
											
												
													
														|  | -    let set = new Set();
 |  | 
 | 
											
												
													
														|  | -    data.forEach(item => set.add(item.template_node_id));
 |  | 
 | 
											
												
													
														|  | -    let list = [...set];
 |  | 
 | 
											
												
													
														|  | -    if (set.has(curNodeId)) {
 |  | 
 | 
											
												
													
														|  | -      set.delete(curNodeId);
 |  | 
 | 
											
												
													
														|  | -      list = [curNodeId, ...set];
 |  | 
 | 
											
												
													
														|  | -    }
 |  | 
 | 
											
												
													
														|  | -    let dataList = list.map(template_node_id => {
 |  | 
 | 
											
												
													
														|  | -      let itemDataList = data.filter(item => item.template_node_id == template_node_id);
 |  | 
 | 
											
												
													
														|  | -      let curid = 3;
 |  | 
 | 
											
												
													
														|  | -      let status = 'process';
 |  | 
 | 
											
												
													
														|  | -      itemDataList.forEach(item => {
 |  | 
 | 
											
												
													
														|  | -        if (item.audit_status != 3 && item.node_id <= curid) curid = item.node_id - 1;
 |  | 
 | 
											
												
													
														|  | -        if (item.audit_status == 2) status = 'error';
 |  | 
 | 
											
												
													
														|  | -      });
 |  | 
 | 
											
												
													
														|  | -      let curNode = flowDetail.nodes.find(item => item.Id == itemDataList[0].template_node_id);
 |  | 
 | 
											
												
													
														|  | -      let obj = {
 |  | 
 | 
											
												
													
														|  | -        status,
 |  | 
 | 
											
												
													
														|  | -        current: curid,
 |  | 
 | 
											
												
													
														|  | -        list: itemDataList[0].FlowInfo.FlowNodes,
 |  | 
 | 
											
												
													
														|  | -        name: curNode?.label || itemDataList[0].FlowInfo.name,
 |  | 
 | 
											
												
													
														|  | -      };
 |  | 
 | 
											
												
													
														|  | -      itemDataList.forEach((itemData, idx) => {
 |  | 
 | 
											
												
													
														|  | -        if (idx >= obj.list.length) return;
 |  | 
 | 
											
												
													
														|  | -        obj.list[idx].auditor = itemData.AuthorInfo.CName;
 |  | 
 | 
											
												
													
														|  | 
 |  | +  const updateSteps = async (data, curNodeId) => {
 | 
											
												
													
														|  | 
 |  | +    const dataList = [];
 | 
											
												
													
														|  | 
 |  | +    for (let i = 0; i < data.length; i++) {
 | 
											
												
													
														|  | 
 |  | +      let curNode = flowDetail.nodes.find(item => item.Id == data[0].template_node_id);
 | 
											
												
													
														|  | 
 |  | +      const response = await queryDingInstanceDetail({
 | 
											
												
													
														|  | 
 |  | +        process_instance_id: data[i].ding_instance_id, //创建表单成功返回的id
 | 
											
												
													
														|  |        });
 |  |        });
 | 
											
												
													
														|  | -      return obj;
 |  | 
 | 
											
												
													
														|  | -    });
 |  | 
 | 
											
												
													
														|  | 
 |  | +      if (response) {
 | 
											
												
													
														|  | 
 |  | +        const processInstance = response.data?.process_instance;
 | 
											
												
													
														|  | 
 |  | +        let data = {
 | 
											
												
													
														|  | 
 |  | +          processCode: '',
 | 
											
												
													
														|  | 
 |  | +          deptId: '14169890',
 | 
											
												
													
														|  | 
 |  | +          tasks: [],
 | 
											
												
													
														|  | 
 |  | +          // userId: '16569001414345099',
 | 
											
												
													
														|  | 
 |  | +          // deptId: currentUser.DingDepId || getCurrentUser()?.DingDepId,
 | 
											
												
													
														|  | 
 |  | +          userId: currentUser.DingUserId || getCurrentUser()?.DingUserId,
 | 
											
												
													
														|  | 
 |  | +          formComponentValues: [],
 | 
											
												
													
														|  | 
 |  | +          activityId: '',
 | 
											
												
													
														|  | 
 |  | +          cc_userids: [],
 | 
											
												
													
														|  | 
 |  | +          status: version.audit_status,
 | 
											
												
													
														|  | 
 |  | +        };
 | 
											
												
													
														|  | 
 |  | +        if (processInstance?.tasks && processInstance.tasks?.length > 0) {
 | 
											
												
													
														|  | 
 |  | +          let item = flowDetail.nodes.find(item => item.Id == version.template_node_id);
 | 
											
												
													
														|  | 
 |  | +          if (!item) return data;
 | 
											
												
													
														|  | 
 |  | +          const { tasks, form_component_values, cc_userids } = processInstance;
 | 
											
												
													
														|  | 
 |  | +          data.processCode = curNode.process_code;
 | 
											
												
													
														|  | 
 |  | +          data.activityId = tasks[tasks.length - 1]?.activity_id;
 | 
											
												
													
														|  | 
 |  | +          data.tasks = tasks || [];
 | 
											
												
													
														|  | 
 |  | +          data.cc_userids = cc_userids;
 | 
											
												
													
														|  | 
 |  | +          data.formComponentValues = form_component_values?.filter(item => item.name);
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        dataList.push(data);
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    console.log(dataList);
 | 
											
												
													
														|  |      setStepsData(dataList);
 |  |      setStepsData(dataList);
 | 
											
												
													
														|  |    };
 |  |    };
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -254,24 +261,12 @@ function FlowModal(props) {
 | 
											
												
													
														|  |                />
 |  |                />
 | 
											
												
													
														|  |              </div>
 |  |              </div>
 | 
											
												
													
														|  |              {stepsData.map((item, idx) => (
 |  |              {stepsData.map((item, idx) => (
 | 
											
												
													
														|  | -              <div key={`${item.name}_${idx}`} style={{ marginBottom: '20px' }}>
 |  | 
 | 
											
												
													
														|  | -                <div style={{ marginBottom: '4px' }}>{item.name}</div>
 |  | 
 | 
											
												
													
														|  | -                <Steps size="small" current={item.current} status={item.status}>
 |  | 
 | 
											
												
													
														|  | -                  {item.list.map(node => (
 |  | 
 | 
											
												
													
														|  | -                    <Step
 |  | 
 | 
											
												
													
														|  | -                      key={`${node.id}_${node.node}`}
 |  | 
 | 
											
												
													
														|  | -                      title={node.node}
 |  | 
 | 
											
												
													
														|  | -                      description={`审批人:${node.auditor || '-'}`}
 |  | 
 | 
											
												
													
														|  | -                    />
 |  | 
 | 
											
												
													
														|  | -                  ))}
 |  | 
 | 
											
												
													
														|  | -                </Steps>
 |  | 
 | 
											
												
													
														|  | -              </div>
 |  | 
 | 
											
												
													
														|  | 
 |  | +              <AuditFlow {...item} />
 | 
											
												
													
														|  |              ))}
 |  |              ))}
 | 
											
												
													
														|  |            </Col>
 |  |            </Col>
 | 
											
												
													
														|  |          </Row>
 |  |          </Row>
 | 
											
												
													
														|  |        </Modal>
 |  |        </Modal>
 | 
											
												
													
														|  |        <VersionModal
 |  |        <VersionModal
 | 
											
												
													
														|  | -        // loading={getLoading()}
 |  | 
 | 
											
												
													
														|  |          visible={versionVisible}
 |  |          visible={versionVisible}
 | 
											
												
													
														|  |          onClose={() => setVersionVisible(false)}
 |  |          onClose={() => setVersionVisible(false)}
 | 
											
												
													
														|  |          onOk={values => {
 |  |          onOk={values => {
 | 
											
										
											
												
													
														|  | @@ -305,7 +300,8 @@ const getColor = item => {
 | 
											
												
													
														|  |    return color;
 |  |    return color;
 | 
											
												
													
														|  |  };
 |  |  };
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -export default connect(({ loading }) => ({
 |  | 
 | 
											
												
													
														|  | 
 |  | +export default connect(({ loading, user }) => ({
 | 
											
												
													
														|  |    loading,
 |  |    loading,
 | 
											
												
													
														|  | 
 |  | +  currentUser: user.currentUser,
 | 
											
												
													
														|  |  }))(FlowModal);
 |  |  }))(FlowModal);
 | 
											
												
													
														|  |  // export default FlowModal;
 |  |  // export default FlowModal;
 |