|
|
@@ -26,32 +26,61 @@ const { proxy }: any = getCurrentInstance()
|
|
|
|
|
|
const state: any = reactive({})
|
|
|
const onAdd = () => {
|
|
|
- console.log(props.data)
|
|
|
ProcessStore.graph.startBatch(GraphHistoryStep.NodeAdd)
|
|
|
- const currentNode = ProcessStore.graph.getCellById(props.data.id)
|
|
|
- const nextNode = ProcessStore.graph.getCellById(props.data.data.edgeTarget[0])
|
|
|
- const currentEdge = ProcessStore.graph.getOutgoingEdges(currentNode)[0]
|
|
|
- const approvalNode = getNodeDefault(NodeType.Approval)
|
|
|
- currentNode.data.workflowData.edgeTarget = [approvalNode.id]
|
|
|
- nextNode.data.workflowData.edgeSource = [approvalNode.id]
|
|
|
- approvalNode.data.edgeTarget = [nextNode.id]
|
|
|
- approvalNode.data.edgeSource = [currentNode.id]
|
|
|
- ProcessStore.graph.removeEdge(currentEdge)
|
|
|
- ProcessStore.graph.addNode(handleNode(approvalNode))
|
|
|
- ProcessStore.graph.addEdge(
|
|
|
- handleEdge({
|
|
|
- id: v4(),
|
|
|
- source: props.data.id,
|
|
|
- target: approvalNode.id,
|
|
|
- }),
|
|
|
- )
|
|
|
- ProcessStore.graph.addEdge(
|
|
|
- handleEdge({
|
|
|
- id: v4(),
|
|
|
- source: approvalNode.id,
|
|
|
- target: props.data.data.edgeTarget[0],
|
|
|
- }),
|
|
|
- )
|
|
|
+ const cell = ProcessStore.graph.getCellById(props.data.id)
|
|
|
+ if (cell.isNode()) {
|
|
|
+ const currentNode = cell
|
|
|
+ const nextNode = ProcessStore.graph.getCellById(
|
|
|
+ currentNode.data.workflowData.edgeTarget[0],
|
|
|
+ )
|
|
|
+ const currentEdge = ProcessStore.graph.getOutgoingEdges(currentNode)[0]
|
|
|
+ const approvalNode = getNodeDefault(NodeType.Approval)
|
|
|
+ currentNode.data.workflowData.edgeTarget = [approvalNode.id]
|
|
|
+ nextNode.data.workflowData.edgeSource = [approvalNode.id]
|
|
|
+ approvalNode.data.edgeTarget = [nextNode.id]
|
|
|
+ approvalNode.data.edgeSource = [currentNode.id]
|
|
|
+ ProcessStore.graph.removeEdge(currentEdge)
|
|
|
+ ProcessStore.graph.addNode(handleNode(approvalNode))
|
|
|
+ ProcessStore.graph.addEdge(
|
|
|
+ handleEdge({
|
|
|
+ id: v4(),
|
|
|
+ source: currentNode.id,
|
|
|
+ target: approvalNode.id,
|
|
|
+ }),
|
|
|
+ )
|
|
|
+ ProcessStore.graph.addEdge(
|
|
|
+ handleEdge({
|
|
|
+ id: v4(),
|
|
|
+ source: approvalNode.id,
|
|
|
+ target: nextNode.id,
|
|
|
+ }),
|
|
|
+ )
|
|
|
+ } else {
|
|
|
+ const currentNode = ProcessStore.graph.getCellById(cell.source.cell)
|
|
|
+ const nextNode = ProcessStore.graph.getCellById(cell.target.cell)
|
|
|
+ const currentEdge = cell
|
|
|
+ const approvalNode = getNodeDefault(NodeType.Approval)
|
|
|
+ currentNode.data.workflowData.edgeTarget = [approvalNode.id]
|
|
|
+ nextNode.data.workflowData.edgeSource = [approvalNode.id]
|
|
|
+ approvalNode.data.edgeTarget = [nextNode.id]
|
|
|
+ approvalNode.data.edgeSource = [currentNode.id]
|
|
|
+ ProcessStore.graph.removeEdge(currentEdge)
|
|
|
+ ProcessStore.graph.addNode(handleNode(approvalNode))
|
|
|
+ ProcessStore.graph.addEdge(
|
|
|
+ handleEdge({
|
|
|
+ id: v4(),
|
|
|
+ source: currentNode.id,
|
|
|
+ target: approvalNode.id,
|
|
|
+ }),
|
|
|
+ )
|
|
|
+ ProcessStore.graph.addEdge(
|
|
|
+ handleEdge({
|
|
|
+ id: v4(),
|
|
|
+ source: approvalNode.id,
|
|
|
+ target: nextNode.id,
|
|
|
+ }),
|
|
|
+ )
|
|
|
+ }
|
|
|
setTimeout(() => {
|
|
|
ProcessStore.onAutoFix()
|
|
|
ProcessStore.graph.stopBatch(GraphHistoryStep.NodeAdd)
|