|
@@ -11,13 +11,14 @@ const { Step } = Steps;
|
|
|
|
|
|
const { TextArea } = Input;
|
|
|
const localData = JSON.parse(localStorage.ggDetaiData || '{}');
|
|
|
+const PAGE_SIZE = 8
|
|
|
|
|
|
// 提交
|
|
|
function FlowModal(props) {
|
|
|
const { visible, version, onClose, onChangeVersion, form, loading, flowDetail, dispatch } = props;
|
|
|
const [data, setData] = useState([]);
|
|
|
const [nodeLoading, setNodeLoading] = useState(false);
|
|
|
- const [pageSize, setPageSize] = useState(9)
|
|
|
+ const [pageSize, setPageSize] = useState(PAGE_SIZE)
|
|
|
const [stepsData, setStepsData] = useState([])
|
|
|
// const app = useXFlowApp();
|
|
|
// const appRef = userRef()
|
|
@@ -39,9 +40,9 @@ function FlowModal(props) {
|
|
|
|
|
|
useEffect(()=>{
|
|
|
if(stepsData.length <= 0){
|
|
|
- setPageSize(9);
|
|
|
+ setPageSize(PAGE_SIZE);
|
|
|
}else{
|
|
|
- setPageSize(9 - stepsData.length)
|
|
|
+ setPageSize(PAGE_SIZE - stepsData.length)
|
|
|
}
|
|
|
},[stepsData])
|
|
|
|
|
@@ -62,10 +63,39 @@ function FlowModal(props) {
|
|
|
data = [...data, ...arr];
|
|
|
}
|
|
|
});
|
|
|
- //解决key报错问题
|
|
|
- data.forEach((item, id)=>data[id].key=`${id}-${item.name}`)
|
|
|
- console.log(data.length)
|
|
|
- setData(data);
|
|
|
+
|
|
|
+ const nameSet = new Set();
|
|
|
+ data.forEach((item, id)=>{
|
|
|
+ //解决key报错问题
|
|
|
+ data[id].key=`${id}-${item.name}`;
|
|
|
+ nameSet.add(item.version_name);
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ const getDataParent = () => {
|
|
|
+
|
|
|
+ }
|
|
|
+ let dataNew = [...nameSet].map(name=>{
|
|
|
+ let list = data.filter(item=>item.version_name == name)
|
|
|
+ if(list.length == 1) {
|
|
|
+ return list[0]
|
|
|
+ }else if(list.filter(item=>!item.version_no).length > 0) {
|
|
|
+ return list.filter(item=>!item.version_no)[0]
|
|
|
+ }else {
|
|
|
+ return list.reduce((a, b)=> a.version_no > b.version_no ? b : a)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ // let dataNew = data.filter(item=>!item.version_no);
|
|
|
+ dataNew.forEach(item=>{
|
|
|
+ let curItem = data.find(node => node.version_name == item.version_name && node.version_id != item.version_id)
|
|
|
+ if(curItem) {
|
|
|
+ curItem.isChild = true;
|
|
|
+ item.children = [curItem]
|
|
|
+ };
|
|
|
+ })
|
|
|
+ console.log("dataNew============" ,dataNew)
|
|
|
+ setData(dataNew);
|
|
|
+ // setData(data);
|
|
|
} catch (error) {
|
|
|
console.log(error);
|
|
|
}
|
|
@@ -77,28 +107,25 @@ function FlowModal(props) {
|
|
|
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 curNode = flowDetail.nodes.find(item=>item.Id == itemDataList[0].template_node_id)
|
|
|
let obj = {
|
|
|
status,
|
|
|
- current:curid,//itemDataList.find(item=>item.node_id == itemDataList.length)?.audit_status != 3 ? itemDataList.length-1 : itemDataList.length ,
|
|
|
+ current:curid,
|
|
|
list: itemDataList[0].FlowInfo.FlowNodes,
|
|
|
- name:itemDataList[0].FlowInfo.name,
|
|
|
+ name: curNode?.label || itemDataList[0].FlowInfo.name,
|
|
|
}
|
|
|
itemDataList.forEach((itemData, idx) => {
|
|
|
if(idx >= obj.list.length) return;
|
|
|
obj.list[idx].auditor = itemData.AuthorInfo.CName;
|
|
|
})
|
|
|
- console.log("---------------------", obj)
|
|
|
return obj
|
|
|
})
|
|
|
console.log(dataList)
|
|
@@ -106,8 +133,10 @@ function FlowModal(props) {
|
|
|
};
|
|
|
|
|
|
const handleChangeClick = (item) => {
|
|
|
+ console.log(item)
|
|
|
+ let type = item.flow_id ? 'detail/queryAuditRecord' : 'detail/queryAuditExcel'
|
|
|
dispatch({
|
|
|
- type: 'detail/queryAuditExcel',
|
|
|
+ type,
|
|
|
payload: {
|
|
|
excel_id: item.id,
|
|
|
pageSize: 100,
|
|
@@ -124,17 +153,18 @@ function FlowModal(props) {
|
|
|
return [
|
|
|
{
|
|
|
title: '名称',
|
|
|
- width: '33%',
|
|
|
+ // width: '33%',
|
|
|
render: item => (
|
|
|
- <div style={{ color: item.audit_status != 0 ? '#9b9b9b' : '' }}>
|
|
|
+ <span style={{ color: item.audit_status != 0 ? '#9b9b9b' : '' }}>
|
|
|
{item.id == version.id && <CheckOutlined style={{ marginRight: 10 }} />}
|
|
|
- {item.version_name}
|
|
|
- </div>
|
|
|
+ {/* {item.version_name} */}
|
|
|
+ {item.version_no && item.isChild ? `${item.version_name}.${item.version_no}` : item.version_name}
|
|
|
+ </span>
|
|
|
),
|
|
|
},
|
|
|
{
|
|
|
title: '状态',
|
|
|
- width: '33%',
|
|
|
+ width: '20%',
|
|
|
render: item => {
|
|
|
let style = { color: getColor(item) };
|
|
|
let txt = '';
|
|
@@ -158,11 +188,11 @@ function FlowModal(props) {
|
|
|
return item.audit_status != 0 ?
|
|
|
<Button onClick={()=>handleChangeClick(item)}>{txt}</Button> :
|
|
|
<span style={style} >{txt}</span>
|
|
|
-
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
title: '操作',
|
|
|
+ width: '20%',
|
|
|
render: item =>
|
|
|
item.id != version.id && (
|
|
|
<a
|
|
@@ -193,10 +223,10 @@ function FlowModal(props) {
|
|
|
width="98%"
|
|
|
>
|
|
|
<Row gutter={8}>
|
|
|
- <Col span={18}>
|
|
|
+ <Col span={16}>
|
|
|
<Flow meta={{ type: 'view' }} flowDetail={graphData} onSelectNode={handleSelectNode} />
|
|
|
</Col>
|
|
|
- <Col span={6} >
|
|
|
+ <Col span={8} >
|
|
|
<div style={{width:'100%'}}>
|
|
|
<Table style={{maxHeight:'90%'}} columns={columns} dataSource={data} loading={nodeLoading} bordered={false} pagination={{ pageSize, onChange}}/>
|
|
|
</div>
|