|
@@ -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,11 +34,16 @@ function FlowModal(props) {
|
|
|
}, [flowDetail, version.template_node_id]);
|
|
|
|
|
|
useEffect(() => {
|
|
|
- if(!visible) setAuditVisible(false);
|
|
|
+ if(!visible) updateSteps([]);
|
|
|
}, [visible, version])
|
|
|
+
|
|
|
useEffect(()=>{
|
|
|
- if(!auditVisible) setPageSize(9)
|
|
|
- },[auditVisible])
|
|
|
+ if(stepsData.length <= 0){
|
|
|
+ setPageSize(9);
|
|
|
+ }else{
|
|
|
+ setPageSize(9 - stepsData.length)
|
|
|
+ }
|
|
|
+ },[stepsData])
|
|
|
|
|
|
const handleSelectNode = async args => {
|
|
|
let res;
|
|
@@ -66,53 +70,47 @@ function FlowModal(props) {
|
|
|
console.log(error);
|
|
|
}
|
|
|
setNodeLoading(false);
|
|
|
- setAuditVisible(false);
|
|
|
+ updateSteps([]);
|
|
|
};
|
|
|
|
|
|
const updateSteps = (data) => {
|
|
|
let newData = [];
|
|
|
let set = new Set()
|
|
|
data.forEach(item=>set.add(item.template_node_id));
|
|
|
- // console.log("========================节点id ",[...set])
|
|
|
+ console.log("========================节点id ",[...set])
|
|
|
let dataList = [...set].map(template_node_id=>{
|
|
|
|
|
|
- let itemDataList = data.filter(item => item.template_node_id == template_node_id).sort((a, b)=>{
|
|
|
- return a.nodeId > b.nodeId
|
|
|
+ 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 = {
|
|
|
- current:itemDataList.find(item=>item.node_id == itemDataList.length)?.audit_status != 3 ? itemDataList.length-1 : itemDataList.length ,
|
|
|
+ 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,
|
|
|
}
|
|
|
itemDataList.forEach((itemData, idx) => {
|
|
|
- // if(itemData.audit_status != 3 && obj.current < itemData.node_id -1) {
|
|
|
- // obj.current = itemData.node_id -1;
|
|
|
- // }
|
|
|
- obj.list[idx].auditor = itemData.auditor;
|
|
|
+ if(idx >= obj.list.length) return;
|
|
|
+ obj.list[idx].auditor = itemData.AuthorInfo.CName;
|
|
|
})
|
|
|
+ console.log("---------------------", obj)
|
|
|
return obj
|
|
|
})
|
|
|
- // console.log("================dataList ",dataList)
|
|
|
-
|
|
|
- // template_node_id: 430 audit_status: 1 FlowInfo.name:'测试审批'
|
|
|
- // 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,
|
|
|
- // }
|
|
|
- // newData.push(list);
|
|
|
- // })
|
|
|
+ console.log(dataList)
|
|
|
setStepsData(dataList)
|
|
|
- setPageSize(pageSize - data.length)
|
|
|
};
|
|
|
|
|
|
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,
|
|
@@ -121,7 +119,6 @@ function FlowModal(props) {
|
|
|
updateSteps(res);
|
|
|
},
|
|
|
});
|
|
|
- setAuditVisible(true)
|
|
|
}
|
|
|
const columns = useMemo(() => {
|
|
|
return [
|
|
@@ -158,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>
|
|
|
|
|
|
},
|
|
|
},
|
|
@@ -182,6 +178,10 @@ function FlowModal(props) {
|
|
|
];
|
|
|
}, [version]);
|
|
|
|
|
|
+ const onChange = () => {
|
|
|
+ updateSteps([]);
|
|
|
+ }
|
|
|
+
|
|
|
return (
|
|
|
<Modal
|
|
|
confirmLoading={loading}
|
|
@@ -198,16 +198,16 @@ 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>
|
|
|
{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} >
|
|
|
+ <Steps size='small' current={item.current} status={item.status} >
|
|
|
{item.list.map(node =>
|
|
|
<Step
|
|
|
key={`${node.id}_${node.node}`}
|
|
|
title={node.node}
|
|
|
- description={`审批人:${item?.auditor || '-'}`}
|
|
|
+ description={`审批人:${node.auditor || '-'}`}
|
|
|
/>
|
|
|
)}
|
|
|
</Steps>
|