...
|
...
|
@@ -26,44 +26,40 @@ |
|
|
v-for="(itemChild, idx) in header"
|
|
|
:key="idx"
|
|
|
:style="[bodyTableStyle, bodyTable(index),tableFiledWidth(idx),tableRowHeight()]"
|
|
|
@mouseenter="pressingTimes(index,idx)"
|
|
|
>
|
|
|
<span @click="clickListName(item[itemChild.key])" :style="colorStyle(item[itemChild.key].kpiValue)"
|
|
|
:class="['listName',{'listName-link':item[itemChild.key] && (item[itemChild.key].kpiIdent==1 || item[itemChild.key].isWarning==1)}]">
|
|
|
{{ item[itemChild.key].kpiValue}} </span>
|
|
|
<div class="basic-img" v-if="item[itemChild.key] && (item[itemChild.key].kpiIdent==1 || item[itemChild.key].isWarning==1)">
|
|
|
<!-- <div class="basic-img" v-if="item[itemChild.key] && (item[itemChild.key].kpiIdent==1 || item[itemChild.key].isWarning==1)">
|
|
|
<el-popover ref="popoverMenu" placement="right" trigger="click" :auto-close="200">
|
|
|
<template #reference>
|
|
|
<img class="info-img" src="@/assets/images/healthStatus/icon_row_menu.png" alt="" @click.stop="pressingTimes(index,idx)">
|
|
|
</template>
|
|
|
</template>-->
|
|
|
<!-- <div class="info-ul" v-if="pressingVisible==index+'-'+idx">-->
|
|
|
<div class="info-ul" style="width:140px;" >
|
|
|
<div class="basic-pressing-times" @click="pressingDialog(itemMenu,item[itemChild.key].kpiValue,'')" v-for="itemMenu in detailMenubox">
|
|
|
<customMenuBox v-if="pressingVisible==index+'-'+idx && item[itemChild.key] && (item[itemChild.key].kpiIdent==1 || item[itemChild.key].isWarning==1)"
|
|
|
:detailMenubox="calcDetailMenubox"
|
|
|
:tableDataValue="item[itemChild.key].kpiValue" :flg="''" :trendSrc="trendSrc"
|
|
|
:heightStyle="heightStyle" :marginStyle="marginStyle" :tableName="tableStyle.tableName"
|
|
|
|
|
|
></customMenuBox>
|
|
|
<!-- <div class="info-ul" style="width:140px;" >
|
|
|
<div class="basic-pressing-times" @click="pressingDialog(itemMenu,item[itemChild.key].kpiValue,'')" v-for="itemMenu in calcDetailMenubox">
|
|
|
<i class="el-icon-link icon-div"></i>{{itemMenu.name}}
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-popover>
|
|
|
</div>
|
|
|
</div>-->
|
|
|
<!-- </el-popover>
|
|
|
</div>-->
|
|
|
</div>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</superslide>
|
|
|
<!-- <el-dialog :visible.sync="tableVisible" :title="tableStyle.tableName" width="80%" center>-->
|
|
|
|
|
|
<!-- <el-popover
|
|
|
ref="popoverRef"
|
|
|
v-model:visible="tableVisible"
|
|
|
placement="left"
|
|
|
trigger="click"
|
|
|
:title="tableStyle.tableName"
|
|
|
virtual-triggering
|
|
|
persistent
|
|
|
<!-- 更多弹框-->
|
|
|
<customDialog :dialogVisible="tableVisible" :heightStyle="heightStyle" :marginStyle="marginStyle" :title-name="tableStyle.tableName"
|
|
|
@hideDialog="hideDialogTable" @okFunc="okFuncTable"
|
|
|
>
|
|
|
|
|
|
</el-popover>-->
|
|
|
<div class="dialog-div" v-if="tableVisible" :style="heightStyle">
|
|
|
<div class="dialog-div-content" :style="marginStyle" >
|
|
|
<div class="dialog-div-title title-flex-between"><span>{{tableStyle.tableName}}</span> <span class="dialog-close" @click="tableVisible = false">X</span></div>
|
|
|
<template v-slot>
|
|
|
<div v-if="hackReset" class="txtScroll-top" >
|
|
|
<!--表头-->
|
|
|
<div class="title" :style="borderStyle">
|
...
|
...
|
@@ -83,34 +79,59 @@ |
|
|
v-for="(itemChild, idx) in headerAll"
|
|
|
:key="idx"
|
|
|
:style="[bodyTableStyle, bodyTable(index),tableFiledWidth(idx),tableRowHeight()]"
|
|
|
@mouseenter="pressingTimes(index,idx)"
|
|
|
>
|
|
|
<span @click="clickListName(item[itemChild.key])" :style="colorStyle(item[itemChild.key].kpiValue)"
|
|
|
:class="['listName',{'listName-link':item[itemChild.key] && (item[itemChild.key].kpiIdent==1 || item[itemChild.key].isWarning==1)}]">
|
|
|
{{ item[itemChild.key]?item[itemChild.key].kpiValue:'' }}</span>
|
|
|
<div class="basic-img" v-if="item[itemChild.key] && (item[itemChild.key].kpiIdent==1 || item[itemChild.key].isWarning==1)">
|
|
|
<customMenuBox v-if="pressingVisible==index+'-'+idx && item[itemChild.key] && (item[itemChild.key].kpiIdent==1 || item[itemChild.key].isWarning==1)"
|
|
|
:detailMenubox="calcDetailMenubox"
|
|
|
:tableDataValue="item[itemChild.key].kpiValue" :flg="''" :trendSrc="trendSrc"
|
|
|
:heightStyle="heightStyle" :marginStyle="marginStyle" :tableName="tableStyle.tableName"
|
|
|
|
|
|
></customMenuBox>
|
|
|
<!-- <div class="basic-img" v-if="item[itemChild.key] && (item[itemChild.key].kpiIdent==1 || item[itemChild.key].isWarning==1)">
|
|
|
<el-popover ref="popoverMenu" placement="right" trigger="click" :auto-close="200">
|
|
|
<template #reference>
|
|
|
<img class="info-img" src="@/assets/images/healthStatus/icon_row_menu.png" alt="" @click.stop="pressingTimes(index,idx)">
|
|
|
</template>
|
|
|
<!-- <div class="info-ul" v-if="pressingVisible==index+'-'+idx">-->
|
|
|
|
|
|
<div class="info-ul" style="width:140px;" >
|
|
|
<div class="basic-pressing-times" @click="pressingDialog(itemMenu,item[itemChild.key].kpiValue,'dialog')" v-for="itemMenu in detailMenubox">
|
|
|
<div class="basic-pressing-times" @click="pressingDialog(itemMenu,item[itemChild.key].kpiValue,'dialog')" v-for="itemMenu in calcDetailMenubox">
|
|
|
<i class="el-icon-link icon-div"></i>{{itemMenu.name}}
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-popover>
|
|
|
|
|
|
</div>
|
|
|
</div>-->
|
|
|
</div>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
</customDialog>
|
|
|
<!-- 直接点击表格数据展示 性能趋势弹框-->
|
|
|
<customDialog :dialogVisible="trendVisible" :heightStyle="heightStyle" :marginStyle="marginStyle" :widthStyle="widthStyle" :title-name="tableStyle.tableName"
|
|
|
:showFooter="true" :showCancelBtn="true" :showOkBtn="true" @hideDialog="hideDialog" @okFunc="okFunc"
|
|
|
>
|
|
|
<template v-slot>
|
|
|
<div class="txtScroll-top">
|
|
|
性能趋势{{pressingValue}}
|
|
|
<iframe :src="trendSrc" class="layadmin-iframe" style="height: 99.5%!important;width: 100%;"/>
|
|
|
</div>
|
|
|
</template>
|
|
|
</customDialog>
|
|
|
<!-- <div class="dialog-div" v-if="tableVisible" :style="heightStyle">
|
|
|
<div class="dialog-div-content" :style="marginStyle" >
|
|
|
<div class="dialog-div-title title-flex-between"><span>{{tableStyle.tableName}}</span> <span class="dialog-close" @click="tableVisible = false">X</span></div>
|
|
|
|
|
|
</div>
|
|
|
<div class="dialog-div" v-if="dialogVisible" :style="heightStyle">
|
|
|
<div class="dialog-div-content" :style="marginStyle+widthStyle" >
|
|
|
<div class="dialog-div-title title-flex-between"><span>{{tableStyle.tableName}}</span> <span class="dialog-close" @click="dialogVisible = false">X</span></div>
|
|
|
</div>-->
|
|
|
<!-- <customDialog :dialogVisible="dialogVisible" :heightStyle="heightStyle" :marginStyle="marginStyle" :widthStyle="widthStyle" :title-name="tableStyle.tableName"
|
|
|
:showFooter="true" :showCancelBtn="true" :showOkBtn="true" @hideDialog="hideDialog" @okFunc="okFunc"
|
|
|
>
|
|
|
<template v-slot>
|
|
|
<div v-if="dialogName=='alarm_setting'" class="txtScroll-top">
|
|
|
告警设置{{pressingValue}}
|
|
|
</div>
|
...
|
...
|
@@ -130,38 +151,30 @@ |
|
|
<div v-if="dialogName=='include_capacity_forecast'" class="txtScroll-top">
|
|
|
纳入容量预测{{pressingValue}}
|
|
|
</div>
|
|
|
<div class="dialog-footer" v-if="dialogName!='table' && dialogName!='performance_trends'">
|
|
|
<el-button @click="dialogVisible = false">取消</el-button>
|
|
|
<el-button type="primary" @click="dialogVisible = false"
|
|
|
>确定</el-button
|
|
|
>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<!-- <template #footer>
|
|
|
<span class="dialog-footer">
|
|
|
<el-button @click="tableVisible = false">取消</el-button>
|
|
|
<el-button type="primary" @click="tableVisible = false"
|
|
|
>确定</el-button
|
|
|
>
|
|
|
</span>
|
|
|
</template>
|
|
|
</el-dialog>-->
|
|
|
</customDialog>-->
|
|
|
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
import vue from "vue";
|
|
|
import VueSuperSlide from "vue-superslide";
|
|
|
import {getDetailTableData,getDetailTableDataNoPage} from "@/api/platform";
|
|
|
import customDialog from "../../designerComponents/customDialog";
|
|
|
import customMenuBox from "../../designerComponents/customMenuBox";//下探组件
|
|
|
|
|
|
vue.use(VueSuperSlide);
|
|
|
export default {
|
|
|
props: {
|
|
|
value: Object,
|
|
|
ispreview: Boolean
|
|
|
},
|
|
|
components:{
|
|
|
customDialog,customMenuBox
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
trendVisible:false,//性能趋势弹框
|
|
|
headerAll:[],
|
|
|
listAll:[],
|
|
|
tableVisible:false,//更多表格弹框
|
...
|
...
|
@@ -185,32 +198,38 @@ export default { |
|
|
optionsData: {},
|
|
|
pressingVisible:'',
|
|
|
isHover:false,
|
|
|
detailMenubox:[
|
|
|
/*detailMenubox:[
|
|
|
{
|
|
|
name:'告警设置',
|
|
|
type:'alarm_setting'
|
|
|
type:'alarm_setting',
|
|
|
isDisplay:true
|
|
|
},
|
|
|
{
|
|
|
name:'过滤单指标',
|
|
|
type:'filter_sheet_indicator'
|
|
|
type:'filter_sheet_indicator',
|
|
|
isDisplay:true
|
|
|
},
|
|
|
{
|
|
|
name:'过滤多指标',
|
|
|
type:'filter_multiple_indicators'
|
|
|
type:'filter_multiple_indicators',
|
|
|
isDisplay:true
|
|
|
},
|
|
|
{
|
|
|
name:'性能趋势',
|
|
|
type:'performance_trends'
|
|
|
type:'performance_trends',
|
|
|
isDisplay:true
|
|
|
},
|
|
|
{
|
|
|
name:'压制次数',
|
|
|
type:'pressing_times'
|
|
|
type:'pressing_times',
|
|
|
isDisplay:true
|
|
|
},
|
|
|
{
|
|
|
name:'纳入容量预测',
|
|
|
type:'include_capacity_forecast'
|
|
|
type:'include_capacity_forecast',
|
|
|
isDisplay:true
|
|
|
}
|
|
|
],
|
|
|
],*/
|
|
|
dialogName:'',//表格名称
|
|
|
pressingValue:'',//表格下探值
|
|
|
trendSrc:'',//性能走势图地址
|
...
|
...
|
@@ -275,6 +294,48 @@ export default { |
|
|
return{
|
|
|
tableName:tableStyleSetup.tableName
|
|
|
}
|
|
|
},
|
|
|
//表格下探列表
|
|
|
calcDetailMenubox(){
|
|
|
const menubox = this.optionsSetUp;
|
|
|
let detailMenuBox=[];
|
|
|
if(menubox.alarm_setting){
|
|
|
detailMenuBox.push({
|
|
|
name:'告警设置',
|
|
|
type:'alarm_setting'
|
|
|
})
|
|
|
}
|
|
|
if(menubox.filter_sheet_indicator){
|
|
|
detailMenuBox.push({
|
|
|
name:'过滤单指标',
|
|
|
type:'filter_sheet_indicator'
|
|
|
})
|
|
|
}
|
|
|
if(menubox.filter_multiple_indicators){
|
|
|
detailMenuBox.push({
|
|
|
name:'过滤多指标',
|
|
|
type:'filter_multiple_indicators'
|
|
|
})
|
|
|
}
|
|
|
if(menubox.performance_trends){
|
|
|
detailMenuBox.push({
|
|
|
name:'性能趋势',
|
|
|
type:'performance_trends'
|
|
|
})
|
|
|
}
|
|
|
if(menubox.pressing_times){
|
|
|
detailMenuBox.push({
|
|
|
name:'压制次数',
|
|
|
type:'pressing_times'
|
|
|
})
|
|
|
}
|
|
|
if(menubox.include_capacity_forecast){
|
|
|
detailMenuBox.push({
|
|
|
name:'纳入容量预测',
|
|
|
type:'include_capacity_forecast'
|
|
|
})
|
|
|
}
|
|
|
return detailMenuBox;
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
...
|
...
|
@@ -476,11 +537,16 @@ export default { |
|
|
},
|
|
|
//点击表格内容名称事件
|
|
|
clickListName(obj){
|
|
|
if(obj.kpiIdent==1 || obj.isWarning==1){
|
|
|
let trendsParams=obj;
|
|
|
// this.trendSrc='http://127.0.0.1:8088/vue3/index.html#/vue3/pieDetailLine?resId=08586dba3a5b4a01ad88e8878eed6d53&kpiId=KPI7054BC34&flag=cpu&ident=1&trend=1&name=CPU%E4%BD%BF%E7%94%A8%E7%8E%87x&access_token=6e14ca48-4d05-42cf-b232-97981035824f'
|
|
|
this.trendSrc='https://192.168.0.69:8088/#/user/login/redirect=%2F';
|
|
|
this.widthStyle='';
|
|
|
this.setDialog('performance_trends')
|
|
|
// this.setDialog('performance_trends')
|
|
|
this.pressingValue=obj.kpiValue;
|
|
|
this.trendVisible=true;
|
|
|
}
|
|
|
|
|
|
},
|
|
|
//End LSQ 2022/1/20 10:23 TODO
|
|
|
handlerHead() {
|
...
|
...
|
@@ -594,6 +660,21 @@ export default { |
|
|
},
|
|
|
closePressingDialog(){
|
|
|
this.pressingVisible=false;
|
|
|
},
|
|
|
//弹框关闭确定
|
|
|
hideDialog(){
|
|
|
this.trendVisible=false;
|
|
|
},
|
|
|
okFunc(){
|
|
|
this.trendVisible=false;
|
|
|
},
|
|
|
//更多弹框关闭确定
|
|
|
hideDialogTable(){
|
|
|
this.tableVisible=false;
|
|
|
},
|
|
|
okFuncTable(){
|
|
|
this.tableVisible=false;
|
|
|
|
|
|
}
|
|
|
}
|
|
|
};
|
...
|
...
|
@@ -664,8 +745,8 @@ export default { |
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.basic-img{
|
|
|
/*display: flex;*/
|
|
|
/*.basic-img{
|
|
|
!*display: flex;*!
|
|
|
display: none;
|
|
|
cursor: pointer;
|
|
|
.info-img{
|
...
|
...
|
@@ -679,9 +760,9 @@ export default { |
|
|
|
|
|
}
|
|
|
.info-ul{
|
|
|
/*position: absolute;*/
|
|
|
!*position: absolute;*!
|
|
|
border:1px solid #d2d2d2;
|
|
|
/*padding: 16px 20px;*/
|
|
|
!*padding: 16px 20px;*!
|
|
|
padding-bottom: 5px;
|
|
|
z-index: 999999;
|
|
|
background: #ffffff;
|
...
|
...
|
@@ -710,13 +791,13 @@ export default { |
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}*/
|
|
|
.listName-link{
|
|
|
cursor: pointer;
|
|
|
color:#0d82e9;
|
|
|
text-decoration: underline;
|
|
|
}
|
|
|
.dialog-div{
|
|
|
/*.dialog-div{
|
|
|
background: rgba(0, 0, 0, 0.35);
|
|
|
position: fixed;
|
|
|
top: 0;
|
...
|
...
|
@@ -726,10 +807,10 @@ export default { |
|
|
z-index: 1;
|
|
|
}
|
|
|
.dialog-div-content{
|
|
|
/* display: flex;
|
|
|
!* display: flex;
|
|
|
align-items: center;
|
|
|
margin: 30px auto 0;
|
|
|
flex-flow: column;*/
|
|
|
flex-flow: column;*!
|
|
|
width:80%;
|
|
|
min-height: 700px;
|
|
|
max-height: 800px;
|
...
|
...
|
@@ -772,5 +853,5 @@ export default { |
|
|
bottom: 0;
|
|
|
text-align: right;
|
|
|
}
|
|
|
}
|
|
|
}*/
|
|
|
</style> |
...
|
...
|
|