feat:添加预览功能
This commit is contained in:
@@ -951,6 +951,7 @@ const cn = {
|
|||||||
selTwoNode:'请选择两个模块',
|
selTwoNode:'请选择两个模块',
|
||||||
save:'保存',
|
save:'保存',
|
||||||
cancel:'取消',
|
cancel:'取消',
|
||||||
|
exit:'退出',
|
||||||
preview:'预览',
|
preview:'预览',
|
||||||
addLine:'添加连线',
|
addLine:'添加连线',
|
||||||
editLine:'编辑连线',
|
editLine:'编辑连线',
|
||||||
|
|||||||
@@ -957,6 +957,7 @@ const en = {
|
|||||||
selTwoNode:'Please select two module',
|
selTwoNode:'Please select two module',
|
||||||
save:'save',
|
save:'save',
|
||||||
cancel:'cancel',
|
cancel:'cancel',
|
||||||
|
exit:'exit',
|
||||||
preview:'preview',
|
preview:'preview',
|
||||||
addLine:'Add line',
|
addLine:'Add line',
|
||||||
editLine:'Edit line',
|
editLine:'Edit line',
|
||||||
|
|||||||
@@ -190,7 +190,7 @@
|
|||||||
<span v-else>base</span>
|
<span v-else>base</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col class="thresholds-cell" :span="4" style="display: flex">
|
<el-col class="thresholds-cell" :span="4" style="display: flex">
|
||||||
<span> > </span>
|
<span v-if="item.level!==0"> > </span>
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-if="item.level!==0"
|
v-if="item.level!==0"
|
||||||
v-model="item.value"
|
v-model="item.value"
|
||||||
@@ -1379,9 +1379,15 @@
|
|||||||
created(){
|
created(){
|
||||||
let dataOption=getTopology(this.index).data;
|
let dataOption=getTopology(this.index).data;
|
||||||
console.log(dataOption);
|
console.log(dataOption);
|
||||||
|
if(!dataOption.data){
|
||||||
|
dataOption.data={}
|
||||||
|
}
|
||||||
Object.keys(this.topologyData.data).forEach((key)=>{
|
Object.keys(this.topologyData.data).forEach((key)=>{
|
||||||
console.log()
|
if(key === 'projectInfo' || key === 'alertInfo'){
|
||||||
|
this.topologyData.data[key]=(JSON.stringify(dataOption.data[key])?dataOption.data[key]:this.topologyData.data[key]);
|
||||||
|
} else {
|
||||||
this.topologyData.data[key]=(JSON.stringify(dataOption[key])?dataOption[key]:this.topologyData.data[key]);
|
this.topologyData.data[key]=(JSON.stringify(dataOption[key])?dataOption[key]:this.topologyData.data[key]);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
mounted(){
|
mounted(){
|
||||||
@@ -1587,7 +1593,11 @@
|
|||||||
this.topologyData.data[key]=val;
|
this.topologyData.data[key]=val;
|
||||||
}
|
}
|
||||||
Object.keys(this.topologyData.data).forEach((key1)=>{
|
Object.keys(this.topologyData.data).forEach((key1)=>{
|
||||||
|
if(key1 === 'projectInfo' || key1 === 'alertInfo'){
|
||||||
|
getTopology(this.index).data.data[key1]=this.topologyData.data[key1];
|
||||||
|
} else {
|
||||||
getTopology(this.index).data[key1]=this.topologyData.data[key1];
|
getTopology(this.index).data[key1]=this.topologyData.data[key1];
|
||||||
|
}
|
||||||
});
|
});
|
||||||
// console.log(dataOption[key]);
|
// console.log(dataOption[key]);
|
||||||
getTopology(this.index).render();
|
getTopology(this.index).render();
|
||||||
|
|||||||
@@ -132,22 +132,12 @@
|
|||||||
getProjectData(n){
|
getProjectData(n){
|
||||||
//获取projectInfo
|
//获取projectInfo
|
||||||
this.projectInfo.loading=true;
|
this.projectInfo.loading=true;
|
||||||
this.$refs['visNetwork'].topologyLoading=true;
|
|
||||||
this.$get('project/info', {id:n.id}).then(response => {
|
this.$get('project/info', {id:n.id}).then(response => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
this.projectInfo.loading=false;
|
this.projectInfo.loading=false;
|
||||||
this.projectInfo={...this.projectInfo,...response.data.basic,moduleMum:response.data.module.length};
|
this.projectInfo={...this.projectInfo,...response.data.basic,moduleMum:response.data.module.length};
|
||||||
this.allModuleInfo=response.data;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//获取所有asset
|
|
||||||
this.alertData.loading=true;
|
|
||||||
setTimeout(()=>{
|
|
||||||
this.$nextTick(()=>{
|
|
||||||
this.alertData.loading=false;
|
|
||||||
})
|
|
||||||
},300)
|
|
||||||
},
|
},
|
||||||
focusInput() {
|
focusInput() {
|
||||||
let classVal=document.getElementById('queryPanel').parentElement.getAttribute("class");
|
let classVal=document.getElementById('queryPanel').parentElement.getAttribute("class");
|
||||||
|
|||||||
@@ -4,8 +4,66 @@
|
|||||||
</style>
|
</style>
|
||||||
<template>
|
<template>
|
||||||
<div class="project-box" v-loading="topologyLoading">
|
<div class="project-box" v-loading="topologyLoading">
|
||||||
<div class="project-title" v-if="showTopTools&&!fromOverView">
|
<!--project主要信息-->
|
||||||
<div v-show="editTopologyFlag" class="edit-topologyLine">
|
<div class="facade-top" v-if="!editTopologyFlag">
|
||||||
|
<div class="facade-top-left" v-loading="projectInfo.loading" v-if="projectInfoShow&&!fromPrev">
|
||||||
|
<div class="facade-top-title">
|
||||||
|
Project information
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<!--<span><span class="label">Id :</span>{{projectInfo.id}}</span>-->
|
||||||
|
<span><span class="label">Name :</span>{{projectInfo.name}}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span><span class="label">Description :</span>{{projectInfo.remark?projectInfo.remark:'--'}}</span>
|
||||||
|
</div>
|
||||||
|
<!--<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>-->
|
||||||
|
<div>
|
||||||
|
<span><span class="label">Module Num :</span>{{projectInfo.moduleMum}}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="facade-top-right" v-loading="projectInfo.loading" v-if="projectAlertShow&&!fromPrev" style="padding: 20px 20px 0 20px;height: calc(100% - 20px);">
|
||||||
|
<div class="facade-top-title">
|
||||||
|
<span class="label" style="padding-left: 0;">Alert :</span>
|
||||||
|
{{projectInfo.total}}
|
||||||
|
</div>
|
||||||
|
<div class="facade-top-right-content">
|
||||||
|
<div>
|
||||||
|
<div class="content-P1-title">
|
||||||
|
{{returnSeverityLabel('P1')}}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
{{projectInfo.alertStat[0] || 0}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="content-P2-title">
|
||||||
|
{{returnSeverityLabel('P2')}}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
{{projectInfo.alertStat[1] || 0}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="margin-bottom: 20px;">
|
||||||
|
<div class="content-P3-title">
|
||||||
|
{{returnSeverityLabel('P3')}}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
{{projectInfo.alertStat[2] || 0}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="project-title" v-if="showTopTools&&!fromOverView" :style="{'background':editTopologyFlag?'#F6F6F6':'#ffffff','border-bottom':editTopologyFlag? '1px solid #F6F6F6':'' }">
|
||||||
|
<div v-show="editTopologyFlag" class="edit-topologyLine" style="padding-left: 20px">
|
||||||
<!--工具栏-->
|
<!--工具栏-->
|
||||||
<span class="project-topology-tool">
|
<span class="project-topology-tool">
|
||||||
<el-dropdown trigger="click" size="small" placement="bottom-start">
|
<el-dropdown trigger="click" size="small" placement="bottom-start">
|
||||||
@@ -101,17 +159,18 @@
|
|||||||
</span>
|
</span>
|
||||||
<span class="float-right">
|
<span class="float-right">
|
||||||
<button @click="previewTopology" class="nz-btn nz-btn-size-normal-new nz-btn-style-light-new"
|
<button @click="previewTopology" class="nz-btn nz-btn-size-normal-new nz-btn-style-light-new"
|
||||||
v-has="'project_topo_save'" :disabled="prevent_opt.save"
|
style="margin-right: 20px"
|
||||||
:class="{'nz-btn-disabled':prevent_opt.save}">
|
>
|
||||||
{{$t('project.topology.preview')}}
|
{{$t('project.topology.preview')}}
|
||||||
</button>
|
</button>
|
||||||
<button @click="saveTopology" class="nz-btn nz-btn-size-normal-new nz-btn-style-normal-new"
|
<button @click="saveTopology" class="nz-btn nz-btn-size-normal-new nz-btn-style-normal-new"
|
||||||
v-has="'project_topo_save'" :disabled="prevent_opt.save"
|
v-has="'project_topo_save'" :disabled="prevent_opt.save"
|
||||||
:class="{'nz-btn-disabled':prevent_opt.save}">
|
:class="{'nz-btn-disabled':prevent_opt.save}"
|
||||||
|
style="margin-right: 20px">
|
||||||
{{$t('project.topology.save')}}
|
{{$t('project.topology.save')}}
|
||||||
</button>
|
</button>
|
||||||
<button @click="cancelTopology" class="nz-btn nz-btn-size-normal-new nz-btn-style-normal-new">
|
<button @click="cancelTopology" class="nz-btn nz-btn-size-normal-new nz-btn-style-normal-new" style="margin-right: 20px">
|
||||||
{{$t('project.topology.cancel')}}
|
{{$t('project.topology.exit')}}
|
||||||
</button>
|
</button>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -216,6 +275,22 @@
|
|||||||
@close="popDataShowUpdate('',true)">alert
|
@close="popDataShowUpdate('',true)">alert
|
||||||
</alertTable>
|
</alertTable>
|
||||||
</transition>
|
</transition>
|
||||||
|
<!--preview-->
|
||||||
|
<el-dialog
|
||||||
|
:visible.sync="previewShow"
|
||||||
|
width=""
|
||||||
|
>
|
||||||
|
<div style="width: calc(50vw - 40px);height: 50vh">
|
||||||
|
<topologyL5
|
||||||
|
v-if="previewShow"
|
||||||
|
:obj="obj"
|
||||||
|
:topoPrevDataS="topoPrevData"
|
||||||
|
:fromOverView="true"
|
||||||
|
:fromPrev="true"
|
||||||
|
:topologyIndexF="1">
|
||||||
|
</topologyL5>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -255,6 +330,7 @@
|
|||||||
import topoTooltip from "./L5/topoTooltip";
|
import topoTooltip from "./L5/topoTooltip";
|
||||||
import {getMetricTypeValue} from '../js/tools'
|
import {getMetricTypeValue} from '../js/tools'
|
||||||
import bus from "../../../libs/bus";
|
import bus from "../../../libs/bus";
|
||||||
|
import topologyL5 from './topologyL5'
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
|
|
||||||
const canvasOptions={
|
const canvasOptions={
|
||||||
@@ -265,8 +341,10 @@
|
|||||||
};
|
};
|
||||||
let canvas;
|
let canvas;
|
||||||
export default {
|
export default {
|
||||||
|
name:'topologyL5',
|
||||||
data(){
|
data(){
|
||||||
return {
|
return {
|
||||||
|
topoPrevData:{},//预览数据
|
||||||
imgInit:false,//判断图片是否加载完成
|
imgInit:false,//判断图片是否加载完成
|
||||||
toolGroup:'基本形状',
|
toolGroup:'基本形状',
|
||||||
editFlag:true,
|
editFlag:true,
|
||||||
@@ -351,6 +429,18 @@
|
|||||||
],
|
],
|
||||||
lineName:'curve',
|
lineName:'curve',
|
||||||
cachesIndex:0,
|
cachesIndex:0,
|
||||||
|
projectInfo:{
|
||||||
|
title:'',
|
||||||
|
id:'',
|
||||||
|
remark:'',
|
||||||
|
alertStat:[1,2,3],
|
||||||
|
moduleMum:6,
|
||||||
|
loading:true,
|
||||||
|
total:0,
|
||||||
|
},
|
||||||
|
projectInfoShow:false,
|
||||||
|
projectAlertShow:false,
|
||||||
|
previewShow:false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components:{
|
components:{
|
||||||
@@ -366,6 +456,7 @@
|
|||||||
endpointTable,
|
endpointTable,
|
||||||
ExpressionInfo,
|
ExpressionInfo,
|
||||||
topoTooltip,
|
topoTooltip,
|
||||||
|
topologyL5,
|
||||||
},
|
},
|
||||||
computed:{},
|
computed:{},
|
||||||
props:{
|
props:{
|
||||||
@@ -381,7 +472,14 @@
|
|||||||
fromOverView:{
|
fromOverView:{
|
||||||
type:Boolean,
|
type:Boolean,
|
||||||
default:false,
|
default:false,
|
||||||
}
|
},
|
||||||
|
fromPrev:{
|
||||||
|
type:Boolean,
|
||||||
|
default:false,
|
||||||
|
},
|
||||||
|
topoPrevDataS:{
|
||||||
|
|
||||||
|
},
|
||||||
},
|
},
|
||||||
watch:{
|
watch:{
|
||||||
topologyIndexF:{
|
topologyIndexF:{
|
||||||
@@ -398,6 +496,11 @@
|
|||||||
if(n){
|
if(n){
|
||||||
this.editTopologyFlag=false;
|
this.editTopologyFlag=false;
|
||||||
this.topologyLoading=true;
|
this.topologyLoading=true;
|
||||||
|
this.projectInfoShow=false;
|
||||||
|
this.projectAlertShow=false;
|
||||||
|
if(n.id){
|
||||||
|
this.getProjectData(n);
|
||||||
|
}
|
||||||
if(!this.timer){
|
if(!this.timer){
|
||||||
this.timer=setTimeout(()=>{
|
this.timer=setTimeout(()=>{
|
||||||
this.topologyLoading=true;
|
this.topologyLoading=true;
|
||||||
@@ -485,6 +588,7 @@
|
|||||||
x:this.$refs['topology-canvas'+this.topologyIndexF].offsetWidth,
|
x:this.$refs['topology-canvas'+this.topologyIndexF].offsetWidth,
|
||||||
y:this.$refs['topology-canvas'+this.topologyIndexF].offsetHeight,
|
y:this.$refs['topology-canvas'+this.topologyIndexF].offsetHeight,
|
||||||
}
|
}
|
||||||
|
|
||||||
getTopology(this.topologyIndex).centerView(50);
|
getTopology(this.topologyIndex).centerView(50);
|
||||||
getTopology(this.topologyIndex).data.pens.forEach(item=>{
|
getTopology(this.topologyIndex).data.pens.forEach(item=>{
|
||||||
if(flag){
|
if(flag){
|
||||||
@@ -495,6 +599,9 @@
|
|||||||
flag=true
|
flag=true
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
// if(this.fromPrev){
|
||||||
|
// getTopology(this.topologyIndex).scaleTo(data.scale/2)
|
||||||
|
// }
|
||||||
// getTopology(this.topologyIndex).fitView();
|
// getTopology(this.topologyIndex).fitView();
|
||||||
this.getNodesArr();
|
this.getNodesArr();
|
||||||
}
|
}
|
||||||
@@ -566,6 +673,9 @@
|
|||||||
//获取topology数据
|
//获取topology数据
|
||||||
getTopologyData(){
|
getTopologyData(){
|
||||||
return new Promise(resolve=>{
|
return new Promise(resolve=>{
|
||||||
|
if(this.fromPrev){
|
||||||
|
resolve(this.topoPrevDataS)
|
||||||
|
}
|
||||||
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(!res.data.topo || !data.pens){
|
if(!res.data.topo || !data.pens){
|
||||||
@@ -576,6 +686,8 @@
|
|||||||
lineWidth:1,
|
lineWidth:1,
|
||||||
ruleColor:"#4e4e4e"
|
ruleColor:"#4e4e4e"
|
||||||
};
|
};
|
||||||
|
this.projectInfoShow=true;
|
||||||
|
this.projectAlertShow=true;
|
||||||
this.saveData={...data};
|
this.saveData={...data};
|
||||||
resolve(data);
|
resolve(data);
|
||||||
}else{
|
}else{
|
||||||
@@ -589,7 +701,17 @@
|
|||||||
if(item.type===0&&item.data.imageId){
|
if(item.type===0&&item.data.imageId){
|
||||||
item.image=this.iconArray.find(item1=>item1.id==item.data.imageId).image
|
item.image=this.iconArray.find(item1=>item1.id==item.data.imageId).image
|
||||||
}
|
}
|
||||||
}))
|
}));
|
||||||
|
if(!data.data){
|
||||||
|
this.projectInfoShow=true;
|
||||||
|
this.projectAlertShow=true;
|
||||||
|
} else if(!JSON.stringify(data.data.projectInfo)){
|
||||||
|
this.projectInfoShow=true;
|
||||||
|
this.projectAlertShow=true;
|
||||||
|
} else{
|
||||||
|
this.projectInfoShow=data.data.projectInfo;
|
||||||
|
this.projectAlertShow=data.data.alertInfo;
|
||||||
|
}
|
||||||
this.saveData={...data};
|
this.saveData={...data};
|
||||||
resolve(data);
|
resolve(data);
|
||||||
},100)
|
},100)
|
||||||
@@ -720,6 +842,25 @@
|
|||||||
return expression;
|
return expression;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
//获取project Info
|
||||||
|
getProjectData(n){
|
||||||
|
//获取projectInfo
|
||||||
|
this.projectInfo.loading=true;
|
||||||
|
this.$get('project/info', {id:n.id}).then(response => {
|
||||||
|
if (response.code === 200) {
|
||||||
|
this.projectInfo.loading=false;
|
||||||
|
this.projectInfo={...this.projectInfo,...response.data.basic,moduleMum:response.data.module.length};
|
||||||
|
this.projectInfo.total=this.projectInfo.alertStat[0]+this.projectInfo.alertStat[1]+this.projectInfo.alertStat[2];
|
||||||
|
if(!this.projectInfo.total){
|
||||||
|
this.projectInfo.total=0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// Severity Label
|
||||||
|
returnSeverityLabel(key){
|
||||||
|
return this.$CONSTANTS.alertMessage.severityData.find(s => {return s.value == key}).label
|
||||||
|
},
|
||||||
//获取module
|
//获取module
|
||||||
getModule(){
|
getModule(){
|
||||||
this.projectInfo.loading=true;
|
this.projectInfo.loading=true;
|
||||||
@@ -1416,7 +1557,8 @@
|
|||||||
},
|
},
|
||||||
//预览
|
//预览
|
||||||
previewTopology(){
|
previewTopology(){
|
||||||
|
this.topoPrevData=getTopology(this.topologyIndex).data;
|
||||||
|
this.previewShow=true;
|
||||||
},
|
},
|
||||||
/*tools 方法*/
|
/*tools 方法*/
|
||||||
|
|
||||||
@@ -1753,6 +1895,117 @@
|
|||||||
right: 0;
|
right: 0;
|
||||||
top: 50px;
|
top: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.facade-top{
|
||||||
|
min-height: 138px;
|
||||||
|
display: flex;
|
||||||
|
margin: 12px 0;
|
||||||
|
height: calc(16% - 40px);
|
||||||
|
font-size: 12px;
|
||||||
|
position: absolute;
|
||||||
|
top: 5px;
|
||||||
|
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{
|
||||||
|
width: auto;
|
||||||
|
min-width: 100px;
|
||||||
|
}
|
||||||
|
.facade-top-right-content{
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
justify-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
height: calc(100% - 30px);
|
||||||
|
align-items:flex-start;
|
||||||
|
}
|
||||||
|
.facade-top-right-content > div{
|
||||||
|
min-width: 84px;
|
||||||
|
height: 22px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
line-height: 22px;
|
||||||
|
}
|
||||||
|
.facade-top-right-content > div > div:last-child{
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 0 4px 4px 0;
|
||||||
|
flex: 1;
|
||||||
|
height: calc(100% - 2px);
|
||||||
|
padding: 0 8px;
|
||||||
|
min-width: 40px;
|
||||||
|
}
|
||||||
|
.content-P1-title{
|
||||||
|
background: #F2866E;
|
||||||
|
border-radius: 4px 0 0 4px;
|
||||||
|
width: 40px;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.content-P1-title + div{
|
||||||
|
border: 1px solid #F4907A;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #F4907A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-P2-title{
|
||||||
|
background: #F89984;
|
||||||
|
border-radius: 4px 0 0 4px;
|
||||||
|
width: 40px;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.content-P2-title + div{
|
||||||
|
border: 1px solid #F9A28F;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #F9A28F;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-P3-title{
|
||||||
|
background: #F7BA78;
|
||||||
|
border-radius: 4px 0 0 4px;
|
||||||
|
width: 40px;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.content-P3-title + div{
|
||||||
|
border: 1px solid #F7BA78;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #F7BA78;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.right-content-P1{
|
||||||
|
border: 1px solid ;
|
||||||
|
}
|
||||||
|
.align--center{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.project-topology-tool {
|
.project-topology-tool {
|
||||||
@@ -1776,12 +2029,15 @@
|
|||||||
|
|
||||||
.project-box {
|
.project-box {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: calc(100% - 20px);
|
||||||
|
margin-top: 10px;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
border: 1px solid #eeeeee;
|
||||||
|
border-radius: 2px;
|
||||||
.project-title {
|
.project-title {
|
||||||
height: 50px;
|
height: 34px;
|
||||||
padding-top: 15px;
|
padding-top: 8px;
|
||||||
|
padding-bottom: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.drag-header {
|
.drag-header {
|
||||||
|
|||||||
Reference in New Issue
Block a user