Sfoglia il codice sorgente

显示审批状态

Renxy 2 anni fa
parent
commit
b68be4e66d

+ 40 - 44
src/pages/PurchaseAdmin/PurchaseList/Detail/FlowModal.js

@@ -5,9 +5,10 @@ import { connect } from 'dva';
 import { GetTokenFromUrl, getToken } from '@/utils/utils';
 import { MODELS, useXFlowApp, useModelAsync } from '@antv/xflow';
 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 VersionModal from './VersionModal';
+import AuditFlow from './AuditFlow';
 
 const { Step } = Steps;
 
@@ -28,6 +29,7 @@ function FlowModal(props) {
     dispatch,
     isOut,
     onCommit,
+    currentUser,
   } = props;
   const [data, setData] = useState([]);
   const [nodeLoading, setNodeLoading] = useState(false);
@@ -92,36 +94,41 @@ function FlowModal(props) {
     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);
   };
 
@@ -254,24 +261,12 @@ function FlowModal(props) {
               />
             </div>
             {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>
         </Row>
       </Modal>
       <VersionModal
-        // loading={getLoading()}
         visible={versionVisible}
         onClose={() => setVersionVisible(false)}
         onOk={values => {
@@ -305,7 +300,8 @@ const getColor = item => {
   return color;
 };
 
-export default connect(({ loading }) => ({
+export default connect(({ loading, user }) => ({
   loading,
+  currentUser: user.currentUser,
 }))(FlowModal);
 // export default FlowModal;

+ 0 - 1
src/pages/PurchaseAdmin/PurchaseList/Detail/Index.js

@@ -101,7 +101,6 @@ function Detail(props) {
       data.processCode = item.process_code;
       data.activityId = tasks[tasks.length - 1]?.activity_id;
       data.tasks = tasks || [];
-      debugger;
       data.cc_userids = cc_userids;
       data.formComponentValues = form_component_values?.filter(item => item.name);
     }