2020-08-19 11:44:26 +08:00
|
|
|
<template>
|
|
|
|
|
<div class="nz-chart-resize">
|
|
|
|
|
<div class="resize-shadow" ref="resizeShadow"></div>
|
|
|
|
|
<div class="resize-box resize-box-table" ref="resizeBox">
|
|
|
|
|
<div class="vis-network" :id="'chartTableDiv'+chartIndex" @mouseenter="caretShow=true" @mouseleave="caretShow=false">
|
|
|
|
|
<loading :ref="'localLoading'+chartIndex"></loading>
|
2020-09-15 15:37:01 +08:00
|
|
|
<div class="clearfix text-right edit-visnetwork" :class="{'dragTitle':dragTitleShow}" :id="'chartTitle'+chartIndex">
|
2020-08-19 11:44:26 +08:00
|
|
|
<el-popover
|
|
|
|
|
v-if="isError"
|
|
|
|
|
:close-delay=10
|
|
|
|
|
placement="top-start"
|
|
|
|
|
trigger="hover"
|
|
|
|
|
popper-class="chart-error-popper">
|
|
|
|
|
<div >{{errorContent}}</div>
|
|
|
|
|
<span slot="reference" style="" class="panel-info-corner panel-info-corner--error">
|
|
|
|
|
<i class="nz-icon nz-icon-warning fa"></i>
|
|
|
|
|
<span class="panel-info-corner-inner"></span>
|
|
|
|
|
</span>
|
|
|
|
|
</el-popover>
|
2020-09-14 15:27:26 +08:00
|
|
|
<span class="el-dropdown-link chart-title" @click.stop="dropdownMenuShow=!dropdownMenuShow">
|
2020-08-19 11:44:26 +08:00
|
|
|
<span></span>
|
|
|
|
|
<span>
|
2020-08-24 15:02:23 +08:00
|
|
|
<!--<span class="chart-title-text">{{chartData.title}}</span>-->
|
2020-09-10 17:00:32 +08:00
|
|
|
<!--<span class="chart-title-icon"><i class="nz-icon nz-icon-caret-bottom el-icon--right" :class="{'visible':caretShow,'hidden':!caretShow}"></i></span>-->
|
2020-08-19 11:44:26 +08:00
|
|
|
</span>
|
2020-09-10 09:41:39 +08:00
|
|
|
<div style="height: 34px">
|
2020-09-17 10:46:47 +08:00
|
|
|
<button style="border-right: 1px solid rgba(162,162,162,0.50);margin-right: 12px" type="button" class="nz-btn nz-btn-size-normal nz-btn-style-light float-right pickTime" @click="editVisNetworkChange(true)" v-show="!editVisNetwork">
|
|
|
|
|
<i class="nz-icon nz-icon-edit" :title="$t('project.topology.edit')"></i>
|
|
|
|
|
</button>
|
2020-09-17 14:20:18 +08:00
|
|
|
<pick-time v-show="!editVisNetwork" :showTimePicker="false" class="float-right pickTime" :refresh-data-func="dateChange" v-model="searchTime" :use-chart-unit="false" ref="pickTime"></pick-time>
|
2020-08-20 11:31:51 +08:00
|
|
|
<!--<i class="nz-icon nz-icon-zoomin float-right"></i>-->
|
|
|
|
|
<!--<i class="nz-icon nz-icon-exit-full-screen float-right"></i>-->
|
2020-09-04 10:04:41 +08:00
|
|
|
</div>
|
2020-08-19 11:44:26 +08:00
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="vis-network-content">
|
2020-08-24 15:02:23 +08:00
|
|
|
<!--project主要信息-->
|
2020-08-24 17:04:27 +08:00
|
|
|
<div class="facade-top" v-if="!editVisNetwork">
|
2020-08-24 15:02:23 +08:00
|
|
|
<div class="facade-top-left" v-loading="projectInfo.loading">
|
|
|
|
|
<div class="facade-top-title">
|
2020-09-09 15:32:44 +08:00
|
|
|
Project information
|
2020-08-24 15:02:23 +08:00
|
|
|
</div>
|
|
|
|
|
<div>
|
2020-09-03 09:51:50 +08:00
|
|
|
<!--<span><span class="label">Id :</span>{{projectInfo.id}}</span>-->
|
|
|
|
|
<span><span class="label">Name :</span>{{projectInfo.name}}</span>
|
2020-08-24 15:02:23 +08:00
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<span><span class="label">Description :</span>{{projectInfo.remark?projectInfo.remark:'--'}}</span>
|
|
|
|
|
</div>
|
2020-08-27 15:23:52 +08:00
|
|
|
<!--<div>-->
|
|
|
|
|
<!--<span>-->
|
|
|
|
|
<!--<span class="label">Alert state :</span>-->
|
|
|
|
|
<!--<div class="active-icon" style="background: #B7464A 100%;"></div>{{projectInfo.alertStat[0]}}-->
|
|
|
|
|
<!--<div class="active-icon" style="background: #E64E4E 100%;"></div>{{projectInfo.alertStat[1]}}-->
|
|
|
|
|
<!--<div class="active-icon" style="background: #F7B500 100%;"></div>{{projectInfo.alertStat[2]}}-->
|
|
|
|
|
<!--</span>-->
|
|
|
|
|
<!--</div>-->
|
2020-08-24 15:02:23 +08:00
|
|
|
<div>
|
2020-09-16 13:46:38 +08:00
|
|
|
<span><span class="label">Module Num :</span>{{projectInfo.moduleMum}}</span>
|
2020-08-24 15:02:23 +08:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2020-09-09 15:32:44 +08:00
|
|
|
<div class="facade-top-right" v-loading="projectInfo.loading" style="padding: 20px 20px 0 20px;height: calc(100% - 20px);">
|
2020-08-24 15:02:23 +08:00
|
|
|
<div class="facade-top-title">
|
2020-09-08 14:15:48 +08:00
|
|
|
<span class="label" style="padding-left: 0;">Alert :</span>
|
2020-08-26 16:01:33 +08:00
|
|
|
{{total}}
|
2020-08-24 15:02:23 +08:00
|
|
|
</div>
|
|
|
|
|
<div class="facade-top-right-content">
|
|
|
|
|
<div>
|
2020-10-14 14:24:07 +08:00
|
|
|
<div class="content-P1-title">
|
|
|
|
|
{{returnSeverityLabel('P1')}}
|
2020-09-08 14:15:48 +08:00
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
{{projectInfo.alertStat[0] || 0}}
|
|
|
|
|
</div>
|
2020-08-24 15:02:23 +08:00
|
|
|
</div>
|
|
|
|
|
<div>
|
2020-10-14 14:24:07 +08:00
|
|
|
<div class="content-P2-title">
|
|
|
|
|
{{returnSeverityLabel('P2')}}
|
2020-09-08 14:15:48 +08:00
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
{{projectInfo.alertStat[1] || 0}}
|
|
|
|
|
</div>
|
2020-08-24 15:02:23 +08:00
|
|
|
</div>
|
2020-09-09 15:32:44 +08:00
|
|
|
<div style="margin-bottom: 20px;">
|
2020-10-14 14:24:07 +08:00
|
|
|
<div class="content-P3-title">
|
|
|
|
|
{{returnSeverityLabel('P3')}}
|
2020-09-08 14:15:48 +08:00
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
{{projectInfo.alertStat[2] || 0}}
|
|
|
|
|
</div>
|
2020-08-24 15:02:23 +08:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<!--拓扑图-->
|
2020-08-20 14:47:14 +08:00
|
|
|
<topology
|
|
|
|
|
:editVisNetwork="editVisNetwork"
|
|
|
|
|
:nodesArray="nodesArray"
|
|
|
|
|
:edgesArray="edgesArray"
|
|
|
|
|
@setTopologyData="setTopologyData"
|
|
|
|
|
:isFullScreen="false"
|
|
|
|
|
ref="topology"
|
|
|
|
|
:allModuleInfo="allModuleInfo"
|
2020-08-20 17:09:22 +08:00
|
|
|
v-loading="topologyLoading"
|
2020-08-24 10:56:15 +08:00
|
|
|
@editVisNetworkChange="editVisNetworkChange"
|
2020-09-01 14:31:03 +08:00
|
|
|
@reload="reload"
|
2020-09-16 17:23:44 +08:00
|
|
|
@topologyLoad="topologyLoad"
|
2020-08-20 14:47:14 +08:00
|
|
|
>
|
|
|
|
|
</topology>
|
2020-08-19 11:44:26 +08:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import loading from "@/components/common/loading";
|
|
|
|
|
import timePicker from '@/components/common/timePicker';
|
|
|
|
|
import topology from './topology'
|
2020-09-15 15:37:01 +08:00
|
|
|
import bus from '@/libs/bus';
|
2020-09-09 16:09:48 +08:00
|
|
|
// import other from './other'
|
2020-08-19 11:44:26 +08:00
|
|
|
export default {
|
|
|
|
|
name: 'visNetwork',
|
|
|
|
|
components: {
|
|
|
|
|
'loading': loading,
|
|
|
|
|
'time-picker':timePicker,
|
|
|
|
|
'topology':topology,
|
2020-09-09 16:09:48 +08:00
|
|
|
// other
|
2020-08-19 11:44:26 +08:00
|
|
|
},
|
|
|
|
|
props:{
|
|
|
|
|
chartIndex:{
|
|
|
|
|
type: Number,
|
|
|
|
|
default: 0,
|
|
|
|
|
},
|
|
|
|
|
chartData: {
|
|
|
|
|
type: Object
|
|
|
|
|
},
|
2020-08-24 15:02:23 +08:00
|
|
|
allModuleInfo:{},
|
|
|
|
|
projectInfo:{},
|
2020-08-19 11:44:26 +08:00
|
|
|
},
|
2020-08-20 17:09:22 +08:00
|
|
|
watch:{
|
2020-08-26 14:51:45 +08:00
|
|
|
// allModuleInfo:{
|
|
|
|
|
// immediate: true,
|
|
|
|
|
// deep: true,
|
|
|
|
|
// handler(n){
|
|
|
|
|
// this.getNetworkData(n);
|
|
|
|
|
// },
|
|
|
|
|
// },
|
2020-08-24 15:02:23 +08:00
|
|
|
projectInfo:{
|
|
|
|
|
immediate: true,
|
|
|
|
|
handler(n){
|
2020-09-15 15:37:01 +08:00
|
|
|
if(n.id){
|
|
|
|
|
this.getNetworkData(n);
|
|
|
|
|
this.total=this.projectInfo.alertStat[0]+this.projectInfo.alertStat[1]+this.projectInfo.alertStat[2];
|
|
|
|
|
if(!this.total){
|
|
|
|
|
this.total=0;
|
|
|
|
|
}
|
2020-08-27 15:45:47 +08:00
|
|
|
}
|
2020-08-24 15:02:23 +08:00
|
|
|
},
|
|
|
|
|
},
|
2020-08-26 14:51:45 +08:00
|
|
|
// alertData:{
|
|
|
|
|
// immediate: true,
|
|
|
|
|
// deep: true,
|
|
|
|
|
// handler(n){
|
|
|
|
|
// this.getNetworkData(n);
|
|
|
|
|
// },
|
|
|
|
|
// },
|
2020-08-20 17:09:22 +08:00
|
|
|
},
|
2020-08-19 11:44:26 +08:00
|
|
|
data () {
|
|
|
|
|
return {
|
2020-08-24 17:04:27 +08:00
|
|
|
firstLoad:false,
|
2020-08-19 11:44:26 +08:00
|
|
|
//其他
|
|
|
|
|
isError:false,
|
2020-08-20 11:31:51 +08:00
|
|
|
nodesArray:[],
|
2020-08-27 15:23:52 +08:00
|
|
|
nodesArrayOther:[],
|
2020-08-20 11:31:51 +08:00
|
|
|
edgesArray:[],
|
2020-08-27 15:23:52 +08:00
|
|
|
edgesArrayOther:[],
|
2020-08-19 17:32:26 +08:00
|
|
|
dragTitleShow:false,
|
2020-08-20 09:40:15 +08:00
|
|
|
dropdownMenuShow:false,
|
2020-08-20 11:31:51 +08:00
|
|
|
editVisNetwork:false,
|
2020-10-10 13:31:12 +08:00
|
|
|
topologyLoading:true,
|
2020-08-26 16:01:33 +08:00
|
|
|
total:1,
|
2020-09-15 15:37:01 +08:00
|
|
|
searchTime: bus.getTimezontDateRange(),
|
|
|
|
|
screenX:window.screen.width,
|
2020-08-19 11:44:26 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
methods:{
|
|
|
|
|
// 设置拓扑图数据
|
|
|
|
|
setTopologyData(nodesArr,edgesArr){
|
|
|
|
|
this.nodesArray=nodesArr;
|
|
|
|
|
this.edgesArray=edgesArr;
|
|
|
|
|
},
|
2020-08-20 17:09:22 +08:00
|
|
|
getNetworkData(n){
|
|
|
|
|
this.topologyLoading=true;
|
2020-08-27 15:23:52 +08:00
|
|
|
this.editVisNetwork=false;
|
2020-08-26 14:51:45 +08:00
|
|
|
this.$get('/project/topo',{projectId:n.id}).then(res=>{
|
2020-09-02 09:38:26 +08:00
|
|
|
if(res.data.topo&&res.data.topo.nodes&&res.data.topo.nodes.length>0){
|
2020-08-27 15:23:52 +08:00
|
|
|
this.nodesArray=[];
|
|
|
|
|
this.edgesArray=[];
|
2020-09-01 14:31:03 +08:00
|
|
|
this.nodesArrayOther=this.formatNodesArr(res.data.topo.nodes);
|
|
|
|
|
this.edgesArrayOther=this.formatEdgesArr(res.data.topo.lines);
|
|
|
|
|
}else{
|
|
|
|
|
this.nodesArray=[];
|
|
|
|
|
this.edgesArray=[];
|
|
|
|
|
setTimeout(()=>{
|
|
|
|
|
this.topologyLoading=false;
|
|
|
|
|
this.$refs['topology'].setData();
|
2020-10-10 13:31:12 +08:00
|
|
|
},100)
|
2020-09-01 14:31:03 +08:00
|
|
|
}
|
2020-10-21 13:38:18 +08:00
|
|
|
if(res.data.topo){
|
|
|
|
|
this.$refs['topology'].viewsCenter=res.data.topo.viewsCenter?res.data.topo.viewsCenter:{x:0,y:0};
|
|
|
|
|
this.$refs['topology'].zoom=res.data.topo.zoom?(res.data.topo.zoom*this.screenX/1920):1;
|
|
|
|
|
}
|
2020-09-04 18:13:28 +08:00
|
|
|
this.$refs['topology'].selNodeId='';
|
2020-09-01 14:31:03 +08:00
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
reload(){
|
|
|
|
|
this.topologyLoading=true;
|
|
|
|
|
this.editVisNetwork=false;
|
2020-09-30 18:05:34 +08:00
|
|
|
this.getNetworkData(this.projectInfo);
|
|
|
|
|
// this.$get('/project/topo',{projectId:this.projectInfo.id}).then(res=>{
|
|
|
|
|
// if(res.data.topo&&res.data.topo.nodes&&res.data.topo.nodes.length>0){
|
|
|
|
|
// this.nodesArray=[];
|
|
|
|
|
// this.edgesArray=[];
|
|
|
|
|
// this.nodesArrayOther=this.formatNodesArr(res.data.topo.nodes);
|
|
|
|
|
// this.edgesArrayOther=this.formatEdgesArr(res.data.topo.lines);
|
|
|
|
|
// }else{
|
|
|
|
|
// this.nodesArray=[];
|
|
|
|
|
// this.edgesArray=[];
|
|
|
|
|
// setTimeout(()=>{
|
|
|
|
|
// this.topologyLoading=false;
|
|
|
|
|
// this.$refs['topology'].setData();
|
|
|
|
|
// },500)
|
|
|
|
|
// }
|
|
|
|
|
// this.$refs['topology'].viewsCenter=res.data.topo.viewsCenter?res.data.topo.viewsCenter:{x:0,y:0};
|
|
|
|
|
// this.$refs['topology'].zoom=res.data.topo.zoom?(res.data.topo.zoom*this.screenX/1920):1;
|
|
|
|
|
// this.$refs['topology'].selNodeId='';
|
|
|
|
|
// })
|
2020-08-24 10:56:15 +08:00
|
|
|
},
|
2020-08-26 16:01:33 +08:00
|
|
|
formatNodesArr(arr){
|
|
|
|
|
let arr1=[];
|
2020-09-17 10:46:47 +08:00
|
|
|
if(!arr || arr.length===0){
|
2020-08-27 15:45:47 +08:00
|
|
|
this.topologyLoading=false;
|
|
|
|
|
return arr1
|
|
|
|
|
}
|
2020-11-17 09:05:43 +08:00
|
|
|
let promiseArr=[];
|
2020-08-27 15:23:52 +08:00
|
|
|
arr.forEach((item,index)=>{
|
2020-08-26 16:01:33 +08:00
|
|
|
item.shape='image';
|
|
|
|
|
item.id=item.moduleId;
|
2020-09-03 14:31:21 +08:00
|
|
|
if(this.allModuleInfo.module){
|
|
|
|
|
item.label=this.allModuleInfo.module.find(item1=>item1.id===item.id).name;
|
|
|
|
|
}
|
2020-09-30 18:05:34 +08:00
|
|
|
this.$get('/module/stat',{id:item.id}).then(res=>{
|
|
|
|
|
item.state=res.data;
|
|
|
|
|
// if(index===arr.length-1){
|
2020-08-27 15:23:52 +08:00
|
|
|
setTimeout(()=>{
|
|
|
|
|
this.nodesArray=[...this.nodesArrayOther];
|
|
|
|
|
this.edgesArray=[...this.edgesArrayOther];
|
|
|
|
|
setTimeout(()=>{
|
|
|
|
|
this.topologyLoading=false;
|
|
|
|
|
this.$refs['topology'].setData();
|
|
|
|
|
},500)
|
|
|
|
|
})
|
2020-11-17 09:05:43 +08:00
|
|
|
// }
|
|
|
|
|
});
|
|
|
|
|
promiseArr.push( this.dealImg(`/project/topo/icon/${item.iconId}`))
|
|
|
|
|
});
|
|
|
|
|
Promise.all(promiseArr).then(res2=>{
|
|
|
|
|
res2.forEach((item,index)=>{
|
|
|
|
|
arr[index].image=item;
|
|
|
|
|
});
|
|
|
|
|
setTimeout(()=>{
|
|
|
|
|
this.nodesArray=[...this.nodesArrayOther];
|
|
|
|
|
this.edgesArray=[...this.edgesArrayOther];
|
|
|
|
|
this.topologyLoading=false;
|
|
|
|
|
this.$refs['topology'].setData();
|
2020-08-27 15:23:52 +08:00
|
|
|
})
|
2020-08-26 16:01:33 +08:00
|
|
|
});
|
|
|
|
|
return arr
|
|
|
|
|
},
|
|
|
|
|
formatEdgesArr(arr){
|
|
|
|
|
let arr1=[];
|
|
|
|
|
if(!arr){return arr1}
|
2020-09-17 10:46:47 +08:00
|
|
|
arr.forEach((item)=>{
|
2020-08-26 16:01:33 +08:00
|
|
|
item.from=item.source;
|
|
|
|
|
item.to=item.target;
|
2020-09-14 14:23:54 +08:00
|
|
|
item.label='';
|
|
|
|
|
item.title='title';
|
2020-09-15 18:29:45 +08:00
|
|
|
item.expressions.forEach((item1,index)=>{
|
|
|
|
|
this.$get('/prom/api/v1/query?query=' + item1.metric).then(res=>{
|
2020-09-15 15:37:01 +08:00
|
|
|
// item.value=res.data.result[0].value;i
|
2020-09-15 18:29:45 +08:00
|
|
|
item1.value=res.data.result;
|
2020-09-15 15:37:01 +08:00
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
|
2020-09-10 09:18:37 +08:00
|
|
|
// item.dashes=(item.dashes?(new Array(100).fill(item.dashes[0])):item.dashes);
|
|
|
|
|
// if(index%2==0&&item.dashes){
|
|
|
|
|
// item.dataFlow='left';
|
|
|
|
|
// item.dashes[0]=0;
|
|
|
|
|
// item.dashes[1]=0;
|
|
|
|
|
// } else if(index%2==1&&item.dashes){
|
|
|
|
|
// item.dataFlow='right'
|
|
|
|
|
// }
|
2020-08-26 16:01:33 +08:00
|
|
|
});
|
|
|
|
|
return arr
|
|
|
|
|
},
|
2020-08-27 15:23:52 +08:00
|
|
|
dealImg(url) {
|
|
|
|
|
// 处理后端传过来的图片流乱码问题
|
|
|
|
|
if (url) {
|
2020-09-17 10:46:47 +08:00
|
|
|
return new Promise((resolve)=>{
|
2020-08-27 15:23:52 +08:00
|
|
|
this.$axios
|
|
|
|
|
.get(url, {
|
|
|
|
|
responseType: "arraybuffer"
|
|
|
|
|
})
|
|
|
|
|
.then(res => {
|
|
|
|
|
return ("data:image/jpeg;base64," +btoa(new Uint8Array(res.data).reduce((data, byte) => data + String.fromCharCode(byte), "")));
|
|
|
|
|
})
|
|
|
|
|
.then(data => {
|
|
|
|
|
resolve(data)
|
|
|
|
|
})
|
|
|
|
|
.catch(err => {
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
2020-09-08 14:15:48 +08:00
|
|
|
// Severity Label
|
|
|
|
|
returnSeverityLabel(key){
|
|
|
|
|
return this.$CONSTANTS.alertMessage.severityData.find(s => {return s.value == key}).label
|
|
|
|
|
},
|
2020-08-24 10:56:15 +08:00
|
|
|
editVisNetworkChange(flag){
|
|
|
|
|
this.editVisNetwork=flag;
|
2020-08-24 17:04:27 +08:00
|
|
|
if(flag){
|
2020-09-04 11:25:22 +08:00
|
|
|
this.$refs.topology.popDataShowUpdate('',true);
|
2020-08-24 17:04:27 +08:00
|
|
|
}
|
2020-09-03 09:51:50 +08:00
|
|
|
if(!flag){
|
|
|
|
|
// this.reload();
|
|
|
|
|
}
|
2020-09-15 15:37:01 +08:00
|
|
|
},
|
2020-09-17 10:46:47 +08:00
|
|
|
dateChange() {
|
2020-09-15 17:45:25 +08:00
|
|
|
if(this.editVisNetwork) {
|
2020-09-15 15:37:01 +08:00
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
this.reload();
|
|
|
|
|
},
|
2020-09-16 17:23:44 +08:00
|
|
|
topologyLoad(){
|
|
|
|
|
this.topologyLoading=true;
|
|
|
|
|
}
|
2020-08-19 11:44:26 +08:00
|
|
|
},
|
|
|
|
|
|
|
|
|
|
mounted(){
|
|
|
|
|
this.firstLoad = false;
|
2020-09-17 14:20:18 +08:00
|
|
|
},
|
|
|
|
|
beforeDestroy(){
|
|
|
|
|
this.$refs['pickTime'].selectInterval();
|
2020-08-19 11:44:26 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
<style lang="scss">
|
|
|
|
|
@import './chart.scss';
|
|
|
|
|
</style>
|
|
|
|
|
<style scoped>
|
2020-09-15 15:37:01 +08:00
|
|
|
.pickTime{
|
|
|
|
|
margin-top: 10px;
|
|
|
|
|
}
|
2020-08-25 15:12:29 +08:00
|
|
|
.facade-top /deep/.active-icon{
|
|
|
|
|
margin-top: 0;
|
|
|
|
|
}
|
2020-09-17 10:46:47 +08:00
|
|
|
/*.nz-icon-edit{*/
|
|
|
|
|
/*margin-right: 12px;*/
|
|
|
|
|
/*margin-top: 10px;*/
|
|
|
|
|
/*}*/
|
2020-09-28 11:00:38 +08:00
|
|
|
.vis-network{
|
|
|
|
|
z-index: 0;
|
2020-10-21 20:29:17 +08:00
|
|
|
}
|
2020-09-04 10:04:41 +08:00
|
|
|
.vis-network .nz-icon-refresh{
|
2020-09-10 09:41:39 +08:00
|
|
|
margin-right: 12px;
|
|
|
|
|
margin-top: 10px;
|
2020-09-04 10:04:41 +08:00
|
|
|
color: #ee9d3f;
|
|
|
|
|
}
|
2020-08-19 11:44:26 +08:00
|
|
|
.table-container{
|
|
|
|
|
height: calc(100% - 30px);
|
|
|
|
|
}
|
|
|
|
|
.nz-icon{
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
.resize-box .vis-network .text-right{
|
|
|
|
|
text-align: right;
|
|
|
|
|
}
|
|
|
|
|
.resize-box .vis-network .chartTitle .chart-title{
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
align-items: stretch;
|
|
|
|
|
}
|
|
|
|
|
.vis-network-content{
|
|
|
|
|
height: 100%;
|
|
|
|
|
}
|
2020-08-24 15:02:23 +08:00
|
|
|
.facade-top{
|
|
|
|
|
min-height: 138px;
|
|
|
|
|
display: flex;
|
|
|
|
|
margin: 12px 0;
|
|
|
|
|
height: calc(16% - 40px);
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
position: absolute;
|
2020-09-14 14:23:54 +08:00
|
|
|
top: 5px;
|
2020-08-24 15:02:23 +08:00
|
|
|
left: 15px;
|
|
|
|
|
z-index: 10;
|
|
|
|
|
}
|
|
|
|
|
.facade-top > div{
|
|
|
|
|
height: calc(100% - 40px);
|
|
|
|
|
width: 18%;
|
|
|
|
|
min-width: 315px;
|
|
|
|
|
background: #FFFFFF;
|
|
|
|
|
margin-right: 9px;
|
|
|
|
|
padding: 20px;
|
|
|
|
|
border: 1px solid #FFFFFF;
|
|
|
|
|
box-shadow: 1px 2px 4px 0 rgba(0,0,0,0.12), -1px 1px 9px -1px rgba(205,205,205,0.77);
|
|
|
|
|
}
|
|
|
|
|
.facade-top-title{
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
color: #333333;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
padding: 5px 0;
|
|
|
|
|
}
|
|
|
|
|
.facade-top-left{
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
justify-content: space-around;
|
|
|
|
|
}
|
|
|
|
|
.special.label{
|
|
|
|
|
margin-left: 30px;
|
|
|
|
|
}
|
|
|
|
|
.facade-top .facade-top-right{
|
2020-09-08 14:15:48 +08:00
|
|
|
width: 5%;
|
2020-09-08 15:19:45 +08:00
|
|
|
min-width: 100px;
|
2020-08-24 15:02:23 +08:00
|
|
|
}
|
|
|
|
|
.facade-top-right-content{
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-around;
|
|
|
|
|
justify-items: center;
|
2020-09-08 14:15:48 +08:00
|
|
|
flex-direction: column;
|
2020-08-24 15:02:23 +08:00
|
|
|
height: calc(100% - 30px);
|
2020-09-08 14:15:48 +08:00
|
|
|
align-items:flex-start;
|
|
|
|
|
}
|
|
|
|
|
.facade-top-right-content > div{
|
2020-10-12 13:46:31 +08:00
|
|
|
min-width: 84px;
|
2020-09-08 14:15:48 +08:00
|
|
|
height: 22px;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
color: #fff;
|
|
|
|
|
text-align: center;
|
2020-09-09 15:32:44 +08:00
|
|
|
margin-bottom: 5px;
|
2020-10-14 14:24:07 +08:00
|
|
|
line-height: 22px;
|
2020-09-08 14:15:48 +08:00
|
|
|
}
|
|
|
|
|
.facade-top-right-content > div > div:last-child{
|
|
|
|
|
text-align: center;
|
|
|
|
|
border-radius: 0 4px 4px 0;
|
|
|
|
|
flex: 1;
|
|
|
|
|
height: calc(100% - 2px);
|
|
|
|
|
}
|
2020-10-14 14:24:07 +08:00
|
|
|
.content-P1-title{
|
2020-09-08 14:15:48 +08:00
|
|
|
background: #F2866E;
|
|
|
|
|
border-radius: 4px 0 0 4px;
|
2020-09-14 14:27:54 +08:00
|
|
|
width: 54px;
|
2020-09-08 14:15:48 +08:00
|
|
|
height: 100%;
|
|
|
|
|
}
|
2020-10-14 14:24:07 +08:00
|
|
|
.content-P1-title + div{
|
2020-09-08 14:15:48 +08:00
|
|
|
border: 1px solid #F4907A;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: #F4907A;
|
|
|
|
|
}
|
|
|
|
|
|
2020-10-14 14:24:07 +08:00
|
|
|
.content-P2-title{
|
2020-09-08 14:15:48 +08:00
|
|
|
background: #F89984;
|
|
|
|
|
border-radius: 4px 0 0 4px;
|
|
|
|
|
width: 54px;
|
|
|
|
|
height: 100%;
|
|
|
|
|
}
|
2020-10-14 14:24:07 +08:00
|
|
|
.content-P2-title + div{
|
2020-09-08 14:15:48 +08:00
|
|
|
border: 1px solid #F9A28F;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: #F9A28F;
|
|
|
|
|
}
|
|
|
|
|
|
2020-10-14 14:24:07 +08:00
|
|
|
.content-P3-title{
|
2020-09-08 14:15:48 +08:00
|
|
|
background: #F7BA78;
|
|
|
|
|
border-radius: 4px 0 0 4px;
|
2020-09-14 14:27:54 +08:00
|
|
|
width: 54px;
|
2020-09-08 14:15:48 +08:00
|
|
|
height: 100%;
|
|
|
|
|
}
|
2020-10-14 14:24:07 +08:00
|
|
|
.content-P3-title + div{
|
2020-09-08 14:15:48 +08:00
|
|
|
border: 1px solid #F7BA78;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: #F7BA78;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2020-10-14 14:24:07 +08:00
|
|
|
.right-content-P1{
|
2020-09-08 14:15:48 +08:00
|
|
|
border: 1px solid ;
|
2020-08-24 15:02:23 +08:00
|
|
|
}
|
|
|
|
|
.align--center{
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
.label{
|
2020-09-14 14:23:54 +08:00
|
|
|
padding: 0 15px 0 0;
|
2020-08-24 15:02:23 +08:00
|
|
|
}
|
2020-09-15 15:37:01 +08:00
|
|
|
.edit-visnetwork{
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 5px;
|
|
|
|
|
right: 5px;
|
|
|
|
|
z-index: 1;
|
|
|
|
|
}
|
2020-08-19 11:44:26 +08:00
|
|
|
</style>
|