Эх сурвалжийг харах

Merge branch 'develop_0715' into develop
merge
# Conflicts:
# src/pages/PurchaseAdmin/PurchaseList/Detail/FlowModal.js
# src/pages/PurchaseAdmin/PurchaseList/Detail/HistoryDrawer.js
# src/pages/PurchaseAdmin/PurchaseList/Detail/Index.js
# src/pages/PurchaseAdmin/PurchaseList/Detail/TimeNode.js

Renxy 2 жил өмнө
parent
commit
f5add5c6a7

+ 0 - 2
src/pages/PurchaseAdmin/PurchaseList/Detail/CommitAuditModal.js

@@ -64,7 +64,6 @@ function CommitAuditModal(props) {
 
   const currentNodeId = useMemo(() => {
     let Id = version.template_node_id;
-    console.log("+++++++++++++++++++++", version)
     setAuditId(currentNodeId)
     return flowDetail.nodes.find?.(item => item.Id == Id)?.node_id;
   }, [flowDetail, version]);
@@ -157,7 +156,6 @@ function CommitAuditModal(props) {
       params.template_node_id = result[0][0]; // 将要流转的节点审批节点
       params.flow_path = result.map(item=>getFlowPath(item));
     }
-    console.log("flow_path    ",params)
 
     
     //   if (approvalNode?.Id) {

+ 12 - 13
src/pages/PurchaseAdmin/PurchaseList/Detail/FlowModal.js

@@ -52,9 +52,8 @@ function FlowModal(props) {
     if (!id) return;
     let node = graphData.nodes.find(item => item.id == id);
     setNodeLoading(true);
-    let node_type = node.name == "custom-rect" ? 0 : 1;
     try {
-      res = await queryVserionByNode({ template_node_id: node.Id, node_type });
+      res = await queryVserionByNode({ template_node_id: node.Id});
       let data = [];
       res.data.excel_version_tree.map(arr => {
         if (res.data.flow_id) {
@@ -88,7 +87,6 @@ function FlowModal(props) {
       //     item.children = [curItem]
       //   };
       // })
-      console.log("dataNew============" ,data)
       // setData(dataNew);
       setData(data);
     } catch (error) {
@@ -98,11 +96,16 @@ function FlowModal(props) {
     updateSteps([]);
   };
 
-  const updateSteps = (data) => {
+  const updateSteps = (data, curNodeId) => {
     let newData = [];
     let set = new Set()
     data.forEach(item=>set.add(item.template_node_id));
-    let dataList = [...set].map(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';
@@ -123,24 +126,19 @@ function FlowModal(props) {
       })
       return obj
     })
-    console.log(dataList)
     setStepsData(dataList)
   };
 
   const handleChangeClick = (item) => {
-    console.log(item)
     let type = item.flow_id ? 'detail/queryAuditRecord' : 'detail/queryAuditExcel'
     dispatch({
       type,
       payload: {
         excel_id: item.id,
         pageSize: 100,
-        // project_id: item.project_id,
-        // template_id:item.template_id,
-        // template_node_id:item.template_node_id,
       },
       callback: res => {
-        updateSteps(res);
+        updateSteps(res, item.template_node_id);
       },
     });
   }
@@ -179,6 +177,7 @@ function FlowModal(props) {
               txt = '已提交';
               break;
           }
+          if(item.status == 1)  txt = '失效';
           return  item.audit_status != 0  ? 
             <Button onClick={()=>handleChangeClick(item)}>{txt}</Button> :
             <span style={style} >{txt}</span>
@@ -221,8 +220,8 @@ function FlowModal(props) {
           <Flow meta={{ type: 'view' }} flowDetail={graphData} onSelectNode={handleSelectNode} />
         </Col>
         <Col span={8} >
-          <div style={{width:'100%'}}>
-            <Table style={{maxHeight:'90%'}} columns={columns} dataSource={data} loading={nodeLoading} bordered={false} pagination={{ pageSize, onChange}}/>
+          <div style={{width:'100%'}}>         
+            <Table style={{maxHeight:'90%'}} columns={columns} dataSource={data} loading={nodeLoading} bordered={false} pagination={{pageSize:8,  onChange}} scroll={{ y: 65*pageSize }}/>
           </div>
           {stepsData.map((item ,idx)=> <div key={`${item.name}_${idx}`} style={{marginBottom:'20px'}}>
             <div style={{marginBottom:'4px'}}>{item.name}</div>

+ 19 - 29
src/pages/PurchaseAdmin/PurchaseList/Detail/HistoryDrawer.js

@@ -10,6 +10,7 @@ import CommentContent from '@/components/CommentContent';
 // 评论
 function HistoryDrawer(props) {
   const {
+    flowDetail,
     visible,
     onClose,
     version,
@@ -22,42 +23,30 @@ function HistoryDrawer(props) {
     return [
       {
         title: '名称',
-        width: '60%',
         render: item => (
           <div style={{ color: '#9b9b9b'}}>
-            {/* {item.id == version.id && <dix style={{ marginRight: 10 }} />} */}
             {item.version_no ? `${item.version_name}.${item.version_no}` : item.version_name}
           </div>
         ),
       },
-      // {
-      //   title: '状态',
-      //   width: '33%',
-      //   render: item => {
-      //     let style = { color: getColor(item) };
-      //     let txt = '';
-      //     switch (item.audit_status) {
-      //       case 0:
-      //         txt = '未提交';
-      //         break;
-      //       case 1:
-      //         txt = '待审批';
-      //         break;
-      //       case 2:
-      //         txt = '拒绝';
-      //         break;
-      //       case 3:
-      //         txt = '通过';
-      //         break;
-      //       case 4:
-      //         txt = '已提交';
-      //         break;
-      //     }
-      //     return <span style={style}>{txt}</span>;
-      //   },
-      // },
+      {
+        title: '业务节点',
+        width: '20%',
+        render: item => {
+          let node = flowDetail.Nodes.find(cur => cur.Id == item.template_node_id)
+          return <span style={{ color: '#9b9b9b'}}>{node?.label ? node.label : '-'}</span>;
+        },
+      },
+      {
+        title:'提交人',
+        width: '20%',
+        render: item => {
+          return <span style={{ color: '#9b9b9b'}}>{item.AuthorInfo?.UserName ? item.AuthorInfo?.UserName : '-'}</span>
+        }
+      },
       {
         title: '操作',
+        width: '20%',
         render: item =>
           item.id != version.id && (
             <a
@@ -114,9 +103,10 @@ function HistoryDrawer(props) {
     </Drawer>
   );
 }
-export default connect(({ detail, user, loading }) => ({
+export default connect(({ detail, xflow, user, loading }) => ({
   comment: detail.comment,
   userList: user.list,
   bomComment: detail.bomComment,
+  flowDetail: xflow.flowDetail,
   loading: loading,
 }))(HistoryDrawer);

+ 28 - 6
src/pages/PurchaseAdmin/PurchaseList/Detail/Index.js

@@ -218,7 +218,6 @@ function Detail(props) {
   };
 
   const onCommit = (values, id) => {
-    console.log("=================================", values, id)
     let currentNode = flowDetail.nodes.find?.(item => item.Id == version.template_node_id);
     let currentData = sheetRef.current.getSheetJson().data;
     let sheets = JSON.parse(JSON.stringify(currentData));
@@ -332,8 +331,28 @@ function Detail(props) {
     let isSingle = false;
     let serviceNode;
     const flowNode = flow.currentNode;
+    const getLastTemplateNodeId = (data) => {
+      let result;
+      const getFun = (item) => {
+        if(item.flow_path?.length > 0){
+          getFun(item.flow_path[0])
+        }else{
+          result = item.template_node_id;
+        }
+      }
+      if(!data) return version.template_node_id
+      getFun(data[0])
+      return result;
+    }
+    let lastTemplateNodeId = version.template_node_id;
+    if(version.flow_path){
+      //如果多节点审批  获取当前是否审批流程的最后一个审批节点
+      let flowPathList = JSON.parse(version.flow_path)
+      lastTemplateNodeId = getLastTemplateNodeId(flowPathList)
+    }
+    
     // 判断是否为最后一个审批节点
-    if (flow.current == flow.list.FlowNodes.length - 1) {
+    if (lastTemplateNodeId == version.template_node_id && flow.current == flow.list.FlowNodes.length - 1) {
       serviceNode = flowDetail.nodes.find?.(item => item.Id == version.next_template_node_id);
       if (!serviceNode.muti_version) {
         //audit_status=4 表示为清单推进后留存的副本.不计入多清单计算
@@ -542,11 +561,12 @@ function Detail(props) {
         if (!flowDetail?.nodes || !nodeId) return;
         const node = flowDetail.nodes.find(item => item.Id == nodeId);
         if(node.name=='custom-circle') return ;
-        if( node?.role_list && node?.role_list.length > 0){
+        if( node?.role_list ){
           return node.role_list.split(",").some(id=> currentUser.roleList?.find(role=>role.ID == id))
         } 
         return true;
       }
+      console.log("是否有权限提交流转   ", getIsSubmit())
       if(getIsSubmit()) menuList.push(<Menu.Item key="commitAudit">提交流转</Menu.Item>);
       
 
@@ -575,10 +595,12 @@ function Detail(props) {
 
   const renderAlert = () => {
     const audit_comment = history.list[0]?.audit_comment;
-    let item = '';
+    let item = ''; 
     switch (active_audit) {
       case 0:
-        return;
+        if (!flow.list || flow.list.FlowNodes?.length == 0) return
+        item = <Alert message="审批拒绝" type="error" />;
+        break;
       case 1:
         item = <Alert message="等待审核中" type="info" />;
         break;
@@ -596,7 +618,7 @@ function Detail(props) {
         item = <Alert message="审批通过" type="success" />;
         break;
     }
-
+    
     return <div style={{ marginTop: 20 }}>{item}</div>;
   };
 

+ 1 - 1
src/pages/PurchaseAdmin/PurchaseList/Detail/TimeNode.js

@@ -27,7 +27,7 @@ function TimeNode(props) {
           ))}
         </Steps>
         <div className={styles.btns} style={{ marginLeft: 80 }}>
-          {active == 0 ? <Button  type="primary" disabled>审批拒绝</Button> : isAuditor && active != 0 && (
+          {isAuditor && active != 0 && (
             <>
               <Button type="primary" onClick={() => onApprove(true)}>
                 审批通过