Added data edited event
This commit is contained in:
parent
ab40c321a3
commit
1428502706
@ -202,6 +202,7 @@ export default {
|
||||
saveEdit() {
|
||||
this.show.editor = false;
|
||||
this.$emit('update:data', this.editorData);
|
||||
this.$emit("dataUpdated", this.data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,24 +1,27 @@
|
||||
<template>
|
||||
<div class="flowchart-container"
|
||||
@mousemove="handleMove"
|
||||
@mouseup="handleUp"
|
||||
@mousedown="handleDown">
|
||||
@mousemove="handleMove"
|
||||
@mouseup="handleUp"
|
||||
@mousedown="handleDown">
|
||||
|
||||
<svg width="100%" height="100%">
|
||||
<flowchart-link v-bind.sync="link"
|
||||
v-for="(link, index) in lines"
|
||||
:key="`link${index}`"
|
||||
@deleteLink="linkDelete(link.id)">
|
||||
v-for="(link, index) in lines"
|
||||
:key="`link${index}`"
|
||||
@deleteLink="linkDelete(link.id)">
|
||||
</flowchart-link>
|
||||
</svg>
|
||||
|
||||
<flowchart-node v-bind.sync="node"
|
||||
v-for="(node, index) in scene.nodes"
|
||||
:key="`node${index}`"
|
||||
:options="nodeOptions"
|
||||
@linkingStart="linkingStart(node.id)"
|
||||
@linkingStop="linkingStop(node.id)"
|
||||
@nodeSelected="nodeSelected(node.id, $event)">
|
||||
v-for="(node, index) in scene.nodes"
|
||||
:key="`node${index}`"
|
||||
:options="nodeOptions"
|
||||
@linkingStart="linkingStart(node.id)"
|
||||
@linkingStop="linkingStop(node.id)"
|
||||
@nodeSelected="nodeSelected(node.id, $event)"
|
||||
@dataUpdated="dataUpdated(node.id, $event)"
|
||||
>
|
||||
|
||||
</flowchart-node>
|
||||
|
||||
</div>
|
||||
@ -27,7 +30,7 @@
|
||||
<script>
|
||||
import FlowchartLink from './FlowchartLink.vue';
|
||||
import FlowchartNode from './FlowchartNode.vue';
|
||||
import { getMousePosition } from '../assets/utilty/position';
|
||||
import {getMousePosition} from '../assets/utilty/position';
|
||||
|
||||
export default {
|
||||
name: 'VueFlowchart',
|
||||
@ -120,15 +123,14 @@ export default {
|
||||
methods: {
|
||||
findNodeWithID(id) {
|
||||
return this.scene.nodes.find((item) => {
|
||||
return id === item.id
|
||||
return id === item.id
|
||||
})
|
||||
},
|
||||
getPortPosition(type, x, y) {
|
||||
// Line start and end points set here
|
||||
if (type === 'top') {
|
||||
return [x + 100, y];
|
||||
}
|
||||
else if (type === 'bottom') {
|
||||
} else if (type === 'bottom') {
|
||||
return [x + 100, y + 150];
|
||||
}
|
||||
},
|
||||
@ -136,7 +138,7 @@ export default {
|
||||
this.action.linking = true;
|
||||
// Dirty fix, so that links won't glitch when being created
|
||||
const node = this.findNodeWithID(index);
|
||||
const [x,y] = this.getPortPosition('bottom',node.x + this.scene.centerX,node.y + this.scene.centerY);
|
||||
const [x, y] = this.getPortPosition('bottom', node.x + this.scene.centerX, node.y + this.scene.centerY);
|
||||
this.draggingLink = {
|
||||
from: index,
|
||||
mx: x, // Yes, those are magic numbers
|
||||
@ -167,11 +169,11 @@ export default {
|
||||
},
|
||||
linkDelete(id) {
|
||||
const deletedLink = this.scene.links.find((item) => {
|
||||
return item.id === id;
|
||||
return item.id === id;
|
||||
});
|
||||
if (deletedLink) {
|
||||
this.scene.links = this.scene.links.filter((item) => {
|
||||
return item.id !== id;
|
||||
return item.id !== id;
|
||||
});
|
||||
this.$emit('linkBreak', deletedLink);
|
||||
}
|
||||
@ -256,6 +258,9 @@ export default {
|
||||
return link.from !== id && link.to !== id
|
||||
})
|
||||
this.$emit('nodeDelete', id)
|
||||
},
|
||||
dataUpdated(id, newData) {
|
||||
this.$emit('nodeDataEdited', id, newData);
|
||||
}
|
||||
},
|
||||
}
|
||||
@ -269,6 +274,7 @@ export default {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
height: 100%;
|
||||
|
||||
svg {
|
||||
cursor: grab;
|
||||
}
|
||||
|
@ -40,36 +40,8 @@ export default {
|
||||
centerX: 0,
|
||||
centerY: 0,
|
||||
scale: 1,
|
||||
nodes: [
|
||||
{
|
||||
id: 2,
|
||||
x: 100,
|
||||
y: 110,
|
||||
type: 'ingest',
|
||||
data: {"url": "rtmp://videon.test.kmlabz.com/test:6554"},
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
x: 357,
|
||||
y: 80,
|
||||
type: 'restreamer',
|
||||
data: {"url": "rtmp://youtube.com/live/stream/ysos:55223", "streamkey": "asdjnao9gj9833tjkq389fjae9jf"},
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
x: 557,
|
||||
y: 80,
|
||||
type: 'encoder',
|
||||
data: {"bitrate": 8000, "width": 600, "height": 800}
|
||||
}
|
||||
],
|
||||
links: [
|
||||
{
|
||||
id: 1,
|
||||
from: 2, // node id the link start
|
||||
to: 4, // node id the link end
|
||||
}
|
||||
]
|
||||
nodes: [],
|
||||
links: []
|
||||
}
|
||||
}),
|
||||
methods: {
|
||||
|
Loading…
Reference in New Issue
Block a user