/* eslint-disable */ /* eslint-disable prefer-destructuring,no-await-in-loop,radix,,no-loop-func */ import React, { useState, useCallback, useNodes } from 'react'; import { Button, Modal, Input } from 'antd-v4'; import ReactFlow, { addEdge, MiniMap, Controls, Background, useNodesState, useEdgesState, } from 'react-flow-renderer'; import * as commonutils from '../../../utils/utils' import './flows.less' import { MarkerType } from 'react-flow-renderer'; import { connect } from "umi" import { set } from 'lodash'; const getNodeId = () => `randomnode_${+new Date()}`; const OverviewFlow = (props) => { console.log('porps',props); const flowDataStr = localStorage.getItem('flow'); const flowData = commonutils.isNotEmptyObject(flowDataStr) ? JSON.parse(flowDataStr) : []; // const { flowData} = props; let initialNodes =[]; let initialEdges =[]; if(commonutils.isNotEmptyObject(flowData)) { initialNodes = flowData.initialNodes; initialEdges = flowData.initialEdges; if (commonutils.isNotEmptyArr(initialNodes)) { initialNodes.forEach((item) =>{ const labelObj= (
{item.data.label1}

{item.data.label2}

) item.data.label= labelObj; }); } if (commonutils.isNotEmptyArr(initialEdges)) { initialEdges.forEach((item) => { if (commonutils.isNotEmptyStr(item.markerEnd)) { const markerObj = { type: MarkerType.ArrowClosed, } item.markerEnd = markerObj } }) } } // eslint-disable-next-line no-unused-vars const [nodes, setNodes, onNodesChange] = useNodesState(initialNodes); const [edges, setEdges, onEdgesChange] = useEdgesState(initialEdges); const [rfInstance, setRfInstance] = useState(null); const [label, setlabel, onsetlabelChange] = useState(''); const [value, setvalue, onsetvalueChange] = useState('') const [flowColor, setflowColor, onsetflowColor] = useState('') const [flowdata, delflowdata, ondelflowdata] = useState({}) const [isModalVisible, setIsModalVisible] = useState(false); const onConnect = useCallback((params) => setEdges((eds) => addEdge(params, eds)), [setEdges]); const onAdd = (e) => { //添加部件 setvalue('') setIsModalVisible(true); if (e.currentTarget.id === 'AddSole') { setflowColor('yellow') } else if (e.currentTarget.id === 'AddPortalBundle') { setflowColor('#fe7e83') } else if (e.currentTarget.id === 'AddClaim') { setflowColor('#00ff41') } }; const handleOk = () => { setIsModalVisible(false); const newNode = { id: getNodeId(), sourcePosition: 'right', targetPosition: 'left', type: 'step', data: { label: label }, style: { background: flowColor, width: 180, }, position: { x: Math.random() * window.innerWidth - 100, y: Math.random() * window.innerHeight, }, }; setNodes((nds) => nds.concat(newNode)); }; const handleCancel = () => { setIsModalVisible(false); }; const onSave = useCallback(() => { //保存部件 if (rfInstance) { const flow = rfInstance.toObject(); localStorage.setItem(flow, JSON.stringify(flow)); } }, [rfInstance]); const handleChangeValue = useCallback((e) => { setvalue(e.target.value) setlabel(e.target.value) }) const onNodeClick = (e, node) => { delflowdata(node) } const onDel = () => { //删除部件 let newnodes = nodes.filter(item => item.id !== flowdata.id) setNodes(newnodes) } const onMadl = () => { alert('二期项目') } // const abc = () => { // let aa = document.querySelector('#aa').value // let bb = document.querySelector('#bb').value // let aaa = JSON.parse(aa) // let bbb = JSON.parse(bb) // aaa.forEach =((item) => { // const labelObj= ( //
{item.data.label1}

{item.data.label2}

// ) // item.data.label= labelObj; // }) // bbb.forEach = ((item) => { // const markerObj = { // type: MarkerType.ArrowClosed, // } // item.markerEnd = markerObj // }) // setNodes(aaa) // setEdges(bb) // } return ( onNodeClick(e, node)} >
{/* */} handleChangeValue(e)} value={value} />
{ if (n.style?.background) return n.style.background; if (n.type === 'input') return '#0041d0'; if (n.type === 'output') return '#ff0072'; if (n.type === 'default') return '#1a192b'; return '#eee'; }} nodeColor={(n) => { if (n.style?.background) return n.style.background; return '#fff'; }} nodeBorderRadius={2} />
); }; export default connect()(OverviewFlow) // export default () => ( // // // // );