Ver código fonte

Merge branch 'develop_0715' into develop
解决冲突
# Conflicts:
# src/pages/PurchaseAdmin/PurchaseList/Detail/FlowModal.js
# src/pages/PurchaseAdmin/PurchaseList/Detail/HistoryDrawer.js
# src/pages/PurchaseAdmin/PurchaseList/Detail/Index.js

Renxy 2 anos atrás
pai
commit
0e349e1027

+ 58 - 32
src/pages/PurchaseAdmin/PurchaseList/Detail/FlowModal.js

@@ -19,7 +19,6 @@ function FlowModal(props) {
   const [nodeLoading, setNodeLoading] = useState(false);
   const [pageSize, setPageSize] = useState(9)
   const [stepsData, setStepsData] = useState([])
-  const [auditvisible, setAuditVisible] = useState(false);
   // const app = useXFlowApp();
   // const appRef = userRef()
 
@@ -35,9 +34,17 @@ function FlowModal(props) {
   }, [flowDetail, version.template_node_id]);
 
   useEffect(() => {
-    if(!visible) setAuditVisible(false);
+    if(!visible) updateSteps([]);
   }, [visible, version])
 
+  useEffect(()=>{
+    if(stepsData.length <= 0){
+      setPageSize(9);
+    }else{
+      setPageSize(9 - stepsData.length)
+    }
+  },[stepsData])
+
   const handleSelectNode = async args => {
     let res;
     const id = args.nodeId || args.nodeIds[0];
@@ -63,29 +70,47 @@ function FlowModal(props) {
       console.log(error);
     }
     setNodeLoading(false);
-    setAuditVisible(false);
+    updateSteps([]);
   };
 
   const updateSteps = (data) => {
-    let newData = []
-    data?.forEach(item => {
-      let list = {
-        current: item.audit_status == 0 ? item.audit_status : item.audit_status-1,
-        list:item.FlowInfo.FlowNodes,
-        name:item.FlowInfo.name,
+    let newData = [];
+    let set = new Set()
+    data.forEach(item=>set.add(item.template_node_id));
+    console.log("========================节点id ",[...set])
+    let dataList = [...set].map(template_node_id=>{
+      
+      let itemDataList = data.filter(item => item.template_node_id == template_node_id)
+      console.log("========================节点id ",itemDataList)
+      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 obj = { 
+        status,
+        current:curid,//itemDataList.find(item=>item.node_id == itemDataList.length)?.audit_status != 3 ? itemDataList.length-1 : itemDataList.length ,
+        list: itemDataList[0].FlowInfo.FlowNodes,
+        name:itemDataList[0].FlowInfo.name,
       }
-      newData.push(list);
+      itemDataList.forEach((itemData, idx) => {
+        if(idx >= obj.list.length) return;
+        obj.list[idx].auditor = itemData.AuthorInfo.CName;
+      })
+      console.log("---------------------", obj)
+      return obj
     })
-    setStepsData(newData)
-    setPageSize(pageSize - data.length)
+    console.log(dataList)
+    setStepsData(dataList)
   };
 
   const handleChangeClick = (item) => {
-    message.success('哈哈哈哈')
     dispatch({
       type: 'detail/queryAuditExcel',
       payload: {
         excel_id: item.id,
+        pageSize: 100,
         // project_id: item.project_id,
         // template_id:item.template_id,
         // template_node_id:item.template_node_id,
@@ -94,7 +119,6 @@ function FlowModal(props) {
         updateSteps(res);
       },
     });
-    setAuditVisible(true)
   }
   const columns = useMemo(() => {
     return [
@@ -131,10 +155,9 @@ function FlowModal(props) {
               txt = '已提交';
               break;
           }
-          return <Button onClick={()=>handleChangeClick(item)}>{txt}</Button>
-          // (item.audit_status == 1 || item.audit_status == 4) ? 
-          //   <Button onClick={()=>handleChangeClick(item)}>{txt}</Button> :
-          //   <span style={style} >{txt}</span>
+          return  item.audit_status != 0  ? 
+            <Button onClick={()=>handleChangeClick(item)}>{txt}</Button> :
+            <span style={style} >{txt}</span>
               
         },
       },
@@ -155,6 +178,10 @@ function FlowModal(props) {
     ];
   }, [version]);
 
+  const onChange = () => {
+    updateSteps([]);
+  }
+
   return (
     <Modal
       confirmLoading={loading}
@@ -171,21 +198,20 @@ function FlowModal(props) {
         </Col>
         <Col span={6} >
           <div style={{width:'100%'}}>
-            <Table style={{maxHeight:'90%'}} columns={columns} dataSource={data} loading={nodeLoading} bordered={false} pagination={{ pageSize}}/>
+            <Table style={{maxHeight:'90%'}} columns={columns} dataSource={data} loading={nodeLoading} bordered={false} pagination={{ pageSize, onChange}}/>
           </div>
-          <Space direction="vertical" size='8' style={{ display: auditvisible ? 'flex' : 'none' }}>
-            {stepsData.map((item ,idx)=> <div key={`${item.name}_${idx}`} style={{marginBottom:'8px'}}>
-              <div style={{marginBottom:'4px'}}>{item.name}</div>
-              <Steps size='small' current={item.current} >
-                {item.list.map(node => 
-                  <Step
-                    key={`${node.id}_${node.node}`}
-                    title={node.node}
-                  />
-                )}
-              </Steps>
-            </div>)}
-          </Space>
+          {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>)}
         </Col>
       </Row>
     </Modal>

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

@@ -16,6 +16,7 @@ function HistoryDrawer(props) {
     loading,
     dispatch,
     versionTree,
+    onChangeVersion,
   } = props;
   const columns = useMemo(() => {
     return [

+ 4 - 3
src/pages/PurchaseAdmin/PurchaseList/Detail/Index.js

@@ -904,9 +904,10 @@ function Detail(props) {
 
       <HistoryDrawer 
         versionTree={versionTree}
-         version={version}
-         visible={versionTreeVisible}
-         onClose={() => setVersionTreeVisible(false)}
+        version={version}
+        visible={versionTreeVisible}
+        onChangeVersion={version => changeVersion(version)}
+        onClose={() => setVersionTreeVisible(false)}
       />
 
       <CommentContent