fix:修改tooltip的样式

This commit is contained in:
zhangyu
2021-02-04 17:06:04 +08:00
parent 537c03de0d
commit d817ee3be7
4 changed files with 181 additions and 72 deletions

View File

@@ -7,7 +7,7 @@
<div class="resize-box resize-box-echarts" ref="resizeBox"> <div class="resize-box resize-box-echarts" ref="resizeBox">
<div class="line-chart-block" :id="'lineChartDiv'+chartIndex" @mouseenter="mouseEnterChart" @mouseleave="mouseLeaveChart"> <div class="line-chart-block" :id="'lineChartDiv'+chartIndex" @mouseenter="mouseEnterChart" @mouseleave="mouseLeaveChart">
<loading :ref="'localLoading'+chartIndex"></loading> <loading :ref="'localLoading'+chartIndex"></loading>
<div :class="{'drag-disabled': this.filter.from == $CONSTANTS.fromRoute.rule}" :id="'chartTitle'+chartIndex" class="clearfix chartTitle" v-if="chartTitleShow"> <div :class="{'drag-disabled': this.filter.from == $CONSTANTS.fromRoute.rule}" :id="'chartTitle'+chartIndex" class="clearfix chartTitle">
<el-popover <el-popover
v-if="isError" v-if="isError"
placement="top-start" placement="top-start"
@@ -38,9 +38,9 @@
<el-dropdown-menu style="display: none"></el-dropdown-menu> <el-dropdown-menu style="display: none"></el-dropdown-menu>
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow"> <span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
<span class="chart-title-text">{{chartData.title}}</span> <span class="chart-title-text">{{chartData.title}}</span>
<span class="chart-title-icon" v-if="filter.from != $CONSTANTS.fromRoute.rule"><i :class="{'visible':caretShow,'hidden':!caretShow}" class="nz-icon nz-icon-xialaxuanze "></i></span> <span class="chart-title-icon" v-if="filter.from != $CONSTANTS.fromRoute.rule&&chartTitleShow"><i :class="{'visible':caretShow,'hidden':!caretShow}" class="nz-icon nz-icon-xialaxuanze "></i></span>
</span> </span>
<ul :class="{'el-dropdown-menu nz-chart-dropdown':!isExplore,'el-dropdown-menu nz-chart-dropdown-one':isExplore}" :id="'dropdownUl'+chartIndex" slot="dropdown" style="position: absolute; top: 30px; left: calc(50% - 79px); transform-origin: center top; z-index: 1000;" v-if="filter.from != $CONSTANTS.fromRoute.rule" v-show="dropdownMenuShow" > <ul :class="{'el-dropdown-menu nz-chart-dropdown':!isExplore,'el-dropdown-menu nz-chart-dropdown-one':isExplore}" :id="'dropdownUl'+chartIndex" slot="dropdown" style="position: absolute; top: 30px; left: calc(50% - 79px); transform-origin: center top; z-index: 1000;" v-if="filter.from != $CONSTANTS.fromRoute.rule&&chartTitleShow" v-show="dropdownMenuShow" >
<li v-show="!isExplore" @click="refreshChart" class="el-dropdown-menu__item"> <li v-show="!isExplore" @click="refreshChart" class="el-dropdown-menu__item">
<i class="global-active-color el-icon-refresh-right" style="font-size: 16px;"></i><span>{{$t('dashboard.refresh')}}</span></li> <i class="global-active-color el-icon-refresh-right" style="font-size: 16px;"></i><span>{{$t('dashboard.refresh')}}</span></li>
<li @click="editChart" class="el-dropdown-menu__item" v-has="`${from}_chart_toEdit`" v-show="!isExplore"> <li @click="editChart" class="el-dropdown-menu__item" v-has="`${from}_chart_toEdit`" v-show="!isExplore">

View File

@@ -1,7 +1,7 @@
<template> <template>
<div style="display: flex;"> <div class="tooltip-box" style="display: flex;" v-if="chartData.tooltipShow">
<span class="temp-dom"></span> <span class="temp-dom"></span>
<div style="width: 400px;height: 400px;" v-if="chartData.displayChart"> <div class="tooltip-box-chart" style="" v-if="chartData.displayChart&&chartData.tooltipShow">
<line-chart-block v-if="chartData.type !== 'table'" <line-chart-block v-if="chartData.type !== 'table'"
:key="'inner' + chartData.id" :key="'inner' + chartData.id"
:from="'project'" :from="'project'"
@@ -12,7 +12,6 @@
:chart-index="0" :chart-index="0"
:chartTitleShow="false" :chartTitleShow="false"
:chart-data="chartData"> :chart-data="chartData">
</line-chart-block> </line-chart-block>
</div> </div>
@@ -25,7 +24,9 @@
<!--:panel-id="-1"--> <!--:panel-id="-1"-->
<!--:chart-data="chartData"--> <!--:chart-data="chartData"-->
<!--:chart-index="0"></chart-table>--> <!--:chart-index="0"></chart-table>-->
<expression-info :chart-data="chartData"/> <div class="tooltip-box-info">
<expression-info :chart-data="chartData" :filterTime="filterTime"/>
</div>
</div> </div>
</template> </template>
@@ -45,6 +46,7 @@
chartDataParent:{ chartDataParent:{
type:Object, type:Object,
}, },
filterTime:{},
}, },
watch:{ watch:{
chartDataParent:{ chartDataParent:{
@@ -58,10 +60,6 @@
data(){ data(){
return{ return{
tempDom: {height: 400, width: ""}, tempDom: {height: 400, width: ""},
filterTime: [
bus.timeFormate(bus.getOffsetTimezoneData(-1),'yyyy-MM-dd hh:mm:ss'),
bus.timeFormate(bus.getOffsetTimezoneData(),'yyyy-MM-dd hh:mm:ss')
],
chartDataTemp:{"id":8832,"prev":null,"next":null,"panelId":0,"title":"123","span":12,"height":400,"createAt":"2021-01-27 07:36:19","type":"line","unit":2,"weight":0,"pid":null,"buildIn":null,"seq":null,"param":{"last":0,"legendValue":{"total":"off","min":"off","avg":"off","last":"off","max":"off"},"threshold":"","valueMapping":{"mapping":[{"color":{"bac":"#fff","text":"#000"},"text":"","value":""}],"type":"text"},"url":"","nullType":"connected"},"elements":[{"id":14926,"chartId":null,"expression":"cache_evictions_total","type":"expert","legend":"","buildIn":null,"seq":null},{"id":14927,"chartId":null,"expression":"appDevice","type":"expert","legend":"","buildIn":null,"seq":null}],"sync":null,"asset":null,"isLoaded":true,"from":"__vue_devtool_undefined__","draggable":true,"resizable":true,"editable":true}, chartDataTemp:{"id":8832,"prev":null,"next":null,"panelId":0,"title":"123","span":12,"height":400,"createAt":"2021-01-27 07:36:19","type":"line","unit":2,"weight":0,"pid":null,"buildIn":null,"seq":null,"param":{"last":0,"legendValue":{"total":"off","min":"off","avg":"off","last":"off","max":"off"},"threshold":"","valueMapping":{"mapping":[{"color":{"bac":"#fff","text":"#000"},"text":"","value":""}],"type":"text"},"url":"","nullType":"connected"},"elements":[{"id":14926,"chartId":null,"expression":"cache_evictions_total","type":"expert","legend":"","buildIn":null,"seq":null},{"id":14927,"chartId":null,"expression":"appDevice","type":"expert","legend":"","buildIn":null,"seq":null}],"sync":null,"asset":null,"isLoaded":true,"from":"__vue_devtool_undefined__","draggable":true,"resizable":true,"editable":true},
chartData:{}, chartData:{},
filter:{ filter:{
@@ -148,6 +146,7 @@
setTimeout(()=>{ setTimeout(()=>{
this.$nextTick(() => { this.$nextTick(() => {
let res=chartItem.res; let res=chartItem.res;
console.log(res);
if (res.length > 0) { if (res.length > 0) {
let series = []; let series = [];
let singleStatRlt = ''; let singleStatRlt = '';
@@ -391,10 +390,34 @@
} }
</script> </script>
<style scoped> <style lang="scss" scoped>
.temp-dom { .temp-dom {
visibility: hidden; visibility: hidden;
font-size: 14px; font-size: 14px;
position: fixed; position: fixed;
} }
.tooltip-box{
background: #FFFFFF;
box-shadow: 1px 2px 8px 0 rgba(0,0,0,0.11);
border-radius: 4px;
padding: 10px;
max-height: 400px;
min-height: 200px;
.tooltip-box-chart{
border: 1px solid #E7EAED;
width: 400px;
height: 400px;
margin-right: 10px;
}
.tooltip-box-info{
border: 1px solid #E7EAED;
background: #FFFFFF;
max-height: 400px;
min-height: 200px;
min-width: 186px;
max-width: 300px;
}
}
</style> </style>

View File

@@ -1,27 +1,36 @@
<template> <template>
<div class="expressionInfo"> <div class="expression-info">
<div v-if="expressionInfoData.length===0">No Data</div> <div class="expression-info-title">{{filterTime[1]}}</div>
<div v-if="expressionInfoData.length>0"> <div class="expression-info-content" v-if="expressionInfoData.length===0">No Data</div>
<el-row v-for="(item,index) in expressionInfoData" :key="index"> <div class="expression-info-content" v-if="expressionInfoData.length>0">
{{item.legend.alias}} <el-row v-for="(item,index) in expressionInfoData" :key="index" v-if="index<20">
{{item.showValue}} <el-col class="info-title" :span="18">{{item.legend.alias}}</el-col>
<el-col class="info-content" :span="6" :style="{background:computeData(item).fill,color:computeData(item).text}">{{item.showValue}}</el-col>
</el-row> </el-row>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import chartDataFormat from "@/components/charts/chartDataFormat";
export default { export default {
name:"expressionInfo", name:"expressionInfo",
props:{ props:{
chartData:{ chartData:{
} },
filterTime:{},
}, },
watch:{ watch:{
chartData(){ chartData(){
this.expressionInfoData=[]; this.expressionInfoData=[];
if(this.chartData.res.length>0){
this.chartData.res.forEach((item,index)=>{
if(item.status==='success'){
this.expressionInfoData=this.expressionInfoData.concat(item.data.result);
}
});
console.log(this.expressionInfoData);
}
} }
}, },
data(){ data(){
@@ -30,7 +39,6 @@
} }
}, },
mounted(){ mounted(){
console.log(this.chartData);
if(this.chartData.res.length>0){ if(this.chartData.res.length>0){
this.chartData.res.forEach((item,index)=>{ this.chartData.res.forEach((item,index)=>{
if(item.status==='success'){ if(item.status==='success'){
@@ -41,7 +49,16 @@
} }
}, },
methods:{ methods:{
computeData(item){
if(item.level){
return this.chartData.valueMapping.find((item2)=>item.level===item2.level).color
} else {
return {
fill:'#ffffff',
text:'#000000',
}
}
}
}, },
beforeDestroy(){ beforeDestroy(){
@@ -49,6 +66,38 @@
} }
</script> </script>
<style scoped> <style lang="scss" scoped>
.expression-info{
padding: 5px;
height: 100%;
font-size: 14px;
color: #666666;
letter-spacing: 0;
.expression-info-title{
font-size: 14px;
color: #333333;
letter-spacing: 0;
font-weight: 600;
line-height: 40px;
height: 40px;
border-bottom: 1px dashed #DCE1E7;
}
.expression-info-content{
height: calc(100% - 60px);
overflow-y: auto;
padding:5px;
}
.info-title{
overflow: hidden;
padding-right: 10px;
text-overflow: ellipsis;
line-height: 20px;
font-weight: 500;
word-break:keep-all; /* 不换行 */
white-space:nowrap; /* 不换行 */
}
.info-content{
text-align: center;
}
}
</style> </style>

View File

@@ -174,7 +174,7 @@
v-if="tooltipPosition.show&&!editTopologyFlag" v-if="tooltipPosition.show&&!editTopologyFlag"
@mouseover="tooltipOver" @mouseover="tooltipOver"
@mouseout="tooltipOut"> @mouseout="tooltipOut">
<topoTooltip :chartDataParent="chartData"/> <topoTooltip :chartDataParent="chartData" :filterTime="filterTime"/>
</div> </div>
</div> </div>
<!--<div class="left-bottom" v-if="editTopologyFlag">--> <!--<div class="left-bottom" v-if="editTopologyFlag">-->
@@ -267,6 +267,7 @@
export default { export default {
data(){ data(){
return { return {
imgInit:false,//判断图片是否加载完成
toolGroup:'基本形状', toolGroup:'基本形状',
editFlag:true, editFlag:true,
tools:Tools, tools:Tools,
@@ -423,6 +424,9 @@
}; };
} }
}, },
created(){
this.addNodeInit();
},
mounted(){ mounted(){
document.getElementById('topology-canvas'+this.topologyIndexF).addEventListener('mousemove',this.canvasMove); document.getElementById('topology-canvas'+this.topologyIndexF).addEventListener('mousemove',this.canvasMove);
window.addEventListener('resize',this.winResize) window.addEventListener('resize',this.winResize)
@@ -450,6 +454,7 @@
let endTime=this.filterTime[1]; let endTime=this.filterTime[1];
let startTime=this.filterTime[0]; let startTime=this.filterTime[0];
let step=bus.getStep(startTime,endTime); let step=bus.getStep(startTime,endTime);
console.log(data);
data.pens&&data.pens.forEach((item,index)=>{ data.pens&&data.pens.forEach((item,index)=>{
this.chartGetData.push({id:item.id,res:[]}); this.chartGetData.push({id:item.id,res:[]});
let arr=item.data.expressArr.map((ele)=>{ let arr=item.data.expressArr.map((ele)=>{
@@ -499,6 +504,7 @@
let endTime=this.filterTime[1]; let endTime=this.filterTime[1];
let startTime=this.filterTime[0]; let startTime=this.filterTime[0];
let step=bus.getStep(startTime,endTime); let step=bus.getStep(startTime,endTime);
console.log(data);
data.pens&&data.pens.forEach((item,index)=>{ data.pens&&data.pens.forEach((item,index)=>{
this.chartGetData.push({id:item.id,res:[]}); this.chartGetData.push({id:item.id,res:[]});
let arr=item.data.expressArr.map((ele)=>{ let arr=item.data.expressArr.map((ele)=>{
@@ -517,7 +523,11 @@
Promise.all(promiseArr).then((res)=>{ Promise.all(promiseArr).then((res)=>{
getTopology(this.topologyIndex).open(data); getTopology(this.topologyIndex).open(data);
getTopology(this.topologyIndex).lock(1); getTopology(this.topologyIndex).lock(1);
if(this.fromOverView){
getTopology(this.topologyIndex).centerView();
// getTopology(this.topologyIndex).fitView();
this.getNodesArr(); this.getNodesArr();
}
}); });
}) })
}); });
@@ -532,7 +542,7 @@
} }
getTopology(this.topologyIndex).data.projectId=this.obj.id; getTopology(this.topologyIndex).data.projectId=this.obj.id;
getTopology(this.topologyIndex).lock(1); getTopology(this.topologyIndex).lock(1);
this.addNodeInit();
this.getModule()//获取module this.getModule()//获取module
resolve() resolve()
}) })
@@ -542,7 +552,7 @@
return new Promise(resolve=>{ return new Promise(resolve=>{
this.$get('/project/topo',{projectId:this.obj.id}).then(res=>{ this.$get('/project/topo',{projectId:this.obj.id}).then(res=>{
let data=res.data.topo; let data=res.data.topo;
if(!data.pens){ if(!res.data.topo || !data.pens){
data={ data={
bkColor:'#FFFFFF', bkColor:'#FFFFFF',
gridSize:10, gridSize:10,
@@ -550,9 +560,24 @@
lineWidth:1, lineWidth:1,
ruleColor:"#4e4e4e" ruleColor:"#4e4e4e"
}; };
}
this.saveData={...data}; this.saveData={...data};
resolve(data); resolve(data);
}else{
let timer=setInterval(()=>{
if(!this.imgInit){
return
}
clearInterval(timer);
data.pens.forEach((item=>{
console.log(item,this.iconArray.find(item1=>item1.id==item.imageId))
if(item.type===0&&item.data.imageId){
item.image=this.iconArray.find(item1=>item1.id==item.data.imageId).image
}
}))
this.saveData={...data};
resolve(data);
},100)
}
}) })
}); });
}, },
@@ -595,12 +620,12 @@
pen.animateType=selLevel.animateType; pen.animateType=selLevel.animateType;
pen.font.color=selLevel.color.text; pen.font.color=selLevel.color.text;
onChangeAnimateLine(pen,pen.animateType); onChangeAnimateLine(pen,pen.animateType);
pen.font.color=selLevel.color.text;
} }
} else { } else {
if(pen.type===0&&pen.animatePlay){// 判断valueMapping 给相应的状态 if(pen.type===0&&pen.animatePlay){// 判断valueMapping 给相应的状态
onChangeAnimate(pen,pen.animateType); onChangeAnimate(pen,pen.animateType);
}else if(pen.type===1&&pen.animatePlay){// 判断valueMapping 给相应的状态 }else if(pen.type===1&&pen.animatePlay){// 判断valueMapping 给相应的状态
console.log(123123123);
onChangeAnimateLine(pen,pen.animateType); onChangeAnimateLine(pen,pen.animateType);
} }
} }
@@ -784,7 +809,7 @@
setTimeout(()=>{ setTimeout(()=>{
this.dragFlag=true; this.dragFlag=true;
},100); },100);
event.dataTransfer.setData('Text',JSON.stringify(node.data)); event.dataTransfer.setData('Text',JSON.stringify({...node.data,data:{imageId:node.data.imageId}}));
}, },
dragFlagChange(node){ dragFlagChange(node){
getTopology(this.topologyIndex).addNode( getTopology(this.topologyIndex).addNode(
@@ -794,7 +819,8 @@
...node.data.rect, ...node.data.rect,
x:this.$refs['topology-canvas'+this.topologyIndexF].offsetWidth/2-50, x:this.$refs['topology-canvas'+this.topologyIndexF].offsetWidth/2-50,
y:this.$refs['topology-canvas'+this.topologyIndexF].offsetHeight/2-50 y:this.$refs['topology-canvas'+this.topologyIndexF].offsetHeight/2-50
} },
data:{imageId:node.data.imageId}
}); });
setTimeout(()=>{ setTimeout(()=>{
this.dragFlag=true; this.dragFlag=true;
@@ -802,7 +828,7 @@
}, },
onMessage(event,data){ onMessage(event,data){
// console.log('onMessage',event,data); console.log('onMessage',event,data);
// console.log(getTopology(this.topologyIndex)) // console.log(getTopology(this.topologyIndex))
if(getTopology(this.topologyIndex)){ if(getTopology(this.topologyIndex)){
this.cachesIndex=getTopology(this.topologyIndex).caches.index; this.cachesIndex=getTopology(this.topologyIndex).caches.index;
@@ -812,8 +838,9 @@
; ;
} }
if(!Array.isArray(data)&&data){//判断不是数组 提前个data配置好节点属性 if(!Array.isArray(data)&&data){//判断不是数组 提前个data配置好节点属性
if(data.type===0&& !data.data){ if(data.type===0&& !data.data.moduleId){
data.data={ data.data={
...data.data,
moduleId:'', moduleId:'',
moduleName:'', moduleName:'',
show:false, show:false,
@@ -889,15 +916,17 @@
switch(event){ switch(event){
case 'moveInNode': case 'moveInNode':
case 'moveInLine': case 'moveInLine':
if(this.timer3){ // if(this.timer3){
clearTimeout(this.timer3); // clearTimeout(this.timer3);
this.timer3=null // this.timer3=null
} // }
this.chartData={...data.data,...this.chartGetData.find(item=>item.id===data.id)}; this.chartData={...data.data,...this.chartGetData.find(item=>item.id===data.id)};
this.tooltipPosition.show=true; this.tooltipPosition.show=true;
break; break;
case 'moveOutNode': case 'moveOutNode':
case 'moveOutLine': case 'moveOutLine':
this.tooltipPosition.show=false;
return
if(!this.timer3){ if(!this.timer3){
this.timer3=setTimeout(()=>{ this.timer3=setTimeout(()=>{
this.tooltipPosition.show=false; this.tooltipPosition.show=false;
@@ -911,7 +940,6 @@
},300) },300)
} }
break; break;
} }
// 右侧输入框编辑状态时点击编辑区域其他元素onMessage执行后才执行onUpdateProps方法通过setTimeout让onUpdateProps先执行 // 右侧输入框编辑状态时点击编辑区域其他元素onMessage执行后才执行onUpdateProps方法通过setTimeout让onUpdateProps先执行
setTimeout(()=>{ setTimeout(()=>{
@@ -1184,34 +1212,35 @@
}) })
}, },
addNodeInit(selImageId){ addNodeInit(){
this.$get('/project/topo/icon').then(res=>{ this.$get('/project/topo/icon').then(res=>{
this.imgageLoading=true; this.imgageLoading=true;
this.tools[1].children=[]; this.tools[1].children=[];
let promiseArr=[];
res.data.list.forEach((item,index)=>{ res.data.list.forEach((item,index)=>{
item.imageName=item.name; item.imageName=item.name;
delete item.name; delete item.name;
this.dealImg(`/project/topo/icon/${item.id}`).then((data)=>{ promiseArr.push( this.dealImg(`/project/topo/icon/${item.id}`));
item.image=data; });
if(index===res.data.list.length-1){ Promise.all(promiseArr).then(res2=>{
setTimeout(()=>{
this.iconArray=[...res.data.list]; this.iconArray=[...res.data.list];
this.iconArray.forEach(item=>{ this.iconArray.forEach((item,index)=>{
this.tools[1].children.push({ this.tools[1].children.push({
...imageTemp, ...imageTemp,
data:{ data:{
...imageTemp.data, ...imageTemp.data,
text:item.imageName, text:item.imageName,
image:item.image, image:res2[index],
imageId:item.id, imageId:item.id,
} }
}) })
item.image=res2[index];
}); });
this.imgageLoading=false; console.log(this.iconArray);
},100) this.imgInit=true;
}
}) })
});
}) })
}, },
@@ -1302,7 +1331,7 @@
}, },
//保存 //保存
saveTopology(){ saveTopology(){
let topologyData=getTopology(this.topologyIndex).data; let topologyData=getTopology(this.topologyIndex).pureData();
let flag=true; let flag=true;
topologyData.pens.forEach(item=>{ topologyData.pens.forEach(item=>{
if(item.type===0&&((flag&& !item.data)||(flag&&item.data&& !item.data.moduleId))){ if(item.type===0&&((flag&& !item.data)||(flag&&item.data&& !item.data.moduleId))){
@@ -1311,8 +1340,15 @@
}); });
if(flag){ if(flag){
this.editTopologyFlag=false; this.editTopologyFlag=false;
localStorage.setItem('data',JSON.stringify(topologyData)); topologyData.pens.forEach(item=>{
if(item.type===0&&JSON.stringify(item.data.imageId)){
item.image="";
item.animateFrames=[];
item.animateReady=null;
delete item.img;
delete item.lastImage;
}
});
this.$put('/project/topo',{topo:JSON.stringify(topologyData),projectId:this.projectInfo.id}).then(res=>{ this.$put('/project/topo',{topo:JSON.stringify(topologyData),projectId:this.projectInfo.id}).then(res=>{
this.prevent_opt.save=false; this.prevent_opt.save=false;
if(res.code===200){ if(res.code===200){
@@ -1328,7 +1364,6 @@
getTopology(this.topologyIndex).canvasPos=domRect; getTopology(this.topologyIndex).canvasPos=domRect;
this.reload(); this.reload();
}) })
this.getNodesArr();
} }
}).catch(res=>{ }).catch(res=>{
this.prevent_opt.save=false; this.prevent_opt.save=false;
@@ -1380,14 +1415,14 @@
this.tooltipPosition.left=e.offsetX+20; this.tooltipPosition.left=e.offsetX+20;
}, },
tooltipOver(){ tooltipOver(){
clearTimeout(this.timer3); // clearTimeout(this.timer3);
this.timer3=null // this.timer3=null
}, },
tooltipOut(){ tooltipOut(){
this.timer3=setTimeout(()=>{ // this.timer3=setTimeout(()=>{
this.tooltipPosition.show=false; // this.tooltipPosition.show=false;
this.timer3=null // this.timer3=null
},300) // },300)
}, },
nodeDefaultWidth(nodeName){ nodeDefaultWidth(nodeName){
switch(nodeName){ switch(nodeName){
@@ -1402,7 +1437,9 @@
destroyed(){ destroyed(){
getTopology(this.topologyIndex).destroy(); getTopology(this.topologyIndex).destroy();
setTopology(this.topologyIndex,null); setTopology(this.topologyIndex,null);
if(document.getElementById('topology-canvas'+this.topologyIndexF)){
document.getElementById('topology-canvas'+this.topologyIndexF).removeEventListener('mousemove',this.canvasMove); document.getElementById('topology-canvas'+this.topologyIndexF).removeEventListener('mousemove',this.canvasMove);
}
window.removeEventListener('resize',this.winResize) window.removeEventListener('resize',this.winResize)
} }
} }