mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-12 13:24:25 +00:00
67 lines
1.7 KiB
Vue
67 lines
1.7 KiB
Vue
<template>
|
|
<div id="visgraph"></div>
|
|
</template>
|
|
|
|
<script>
|
|
import vis from 'vis-network/dist/vis-network'
|
|
import { mapState, mapGetters } from "vuex"
|
|
|
|
export default {
|
|
name: "App",
|
|
data() {
|
|
return {
|
|
container: ''
|
|
}
|
|
},
|
|
computed: {
|
|
...mapState(['persons', 'households', 'courses', 'relationships', 'householdLoadingIds']),
|
|
...mapGetters(['nodes', 'edges']),
|
|
visgraph_data() {
|
|
console.log('::: visgraph_data :::', this.nodes.length, 'nodes,', this.edges.length, 'edges')
|
|
return {
|
|
nodes: this.nodes,
|
|
edges: this.edges
|
|
}
|
|
},
|
|
refreshNetwork() { // B
|
|
console.log('refresh network')
|
|
window.network.setData(this.visgraph_data)
|
|
}
|
|
},
|
|
mounted() {
|
|
console.log('mounted: init graph')
|
|
this.initGraph()
|
|
},
|
|
methods: {
|
|
initGraph() {
|
|
this.container = document.getElementById('visgraph')
|
|
|
|
// Instanciate vis objects in window variables, see vis-network.js
|
|
window.network = new vis.Network(this.container, this.visgraph_data, window.options ) // A
|
|
}
|
|
}
|
|
/*
|
|
TODO / TO CHECK / TO UNDERSTAND
|
|
|
|
///// A
|
|
new vis.Network(), param 2: why we don't need to instanciate node and edges with new vis.DataSet like in example ?
|
|
{
|
|
nodes: new vis.DataSet(this.nodes),
|
|
edges: new vis.DataSet(this.relationships)
|
|
}
|
|
///// B
|
|
refreshNetwork() computed: need to watch/listen event to force refreshing ?
|
|
|
|
*/
|
|
}
|
|
</script>
|
|
|
|
<style src="vis-network/dist/dist/vis-network.min.css"></style>
|
|
<style lang="scss" scoped>
|
|
div#visgraph {
|
|
margin: 2em auto;
|
|
height: 500px;
|
|
border: 1px solid lightgray;
|
|
}
|
|
</style>
|