修改测试bug

This commit is contained in:
GGJ
2024-12-06 16:11:33 +08:00
parent 5db2b1428c
commit 366f561aa5
18 changed files with 541 additions and 456 deletions

View File

@@ -1,11 +1,11 @@
<template>
<div v-loading="loading" style="position: relative">
<div id="boxr">
<div id="rmsp" :style="`height:${vh};overflow: hidden;`">
<div class="bx" id="rms"></div>
</div>
</div>
<!-- <el-button
<div v-loading="loading" style="position: relative">
<div id="boxr">
<div id="rmsp" :style="`height:${vh};overflow: hidden;`">
<div class="bx" id="rms"></div>
</div>
</div>
<!-- <el-button
style="position: absolute; right: 10px; top: 0px; z-index: 20000"
type="primary"
link
@@ -15,7 +15,7 @@
>
下载
</el-button> -->
</div>
</div>
</template>
<script lang="js">
import html2canvas from "html2canvas";
@@ -47,7 +47,7 @@ export default {
type: [Object, Array],
},
height: {
type: [String,Number],
type: [String, Number],
default: false,
},
@@ -57,7 +57,6 @@ export default {
zoom: "",
loading: true,
tabvalue: this.value,
valA: 0,
valB: 0,
isOpen: false,
@@ -82,6 +81,7 @@ export default {
titles: "",
vh: null,
vw: null,
echartlist: null
};
},
watch: {
@@ -97,13 +97,13 @@ export default {
},
created() {
if (this.flag == 1) {
this.vh = mainHeight(165).height
}else if( this.height != false){
this.vh = this.height
} else {
this.vh = mainHeight(165,2).height
}
this.vw = '100%'
this.vh = mainHeight(165).height
} else if (this.height != false) {
this.vh = this.height
} else {
this.vh = mainHeight(165, 2).height
}
this.vw = '100%'
},
mounted() {
// this.$wave = $("#wave").eq(0);
@@ -115,13 +115,27 @@ export default {
this.query();
},
methods: {
backbxlb() {
if (this.echartlist.length > 0) {
this.waveDatas = []
this.echartlist.forEach(item => {
item.dispose(); // 销毁echarts实例
})
}
},
download() {
// 转换成canvas
html2canvas(document.getElementById("boxr"), {
scale: 2,
}).then(function (canvas) {
// 创建a标签实现下载
var creatIMg = document.createElement("a");
let creatIMg = document.createElement("a");
creatIMg.download = "rms波形.png"; // 设置下载的文件名,
creatIMg.href = canvas.toDataURL(); // 下载url
creatIMg.click();
@@ -195,7 +209,7 @@ export default {
"% 持续时间:" +
this.boxoList.duration +
"s";
} else if(this.boxoList.systemType == "ZL"){
} else if (this.boxoList.systemType == "ZL") {
this.titles =
// "变电站名称:" +
// this.boxoList.equipmentName +
@@ -204,11 +218,11 @@ export default {
" 发生时刻:" +
this.boxoList.startTime +
" 暂降(骤升)幅值:" +
this.boxoList.evtParamVVaDepth +
this.boxoList.evtParamVVaDepth +
" 持续时间:" +
this.boxoList.evtParamTm +
"s";
}else {
} else {
this.titles =
"变电站名称:" +
this.boxoList.subName +
@@ -234,24 +248,24 @@ export default {
if (this.iphasic === 0) {
this.iphasic = 1;
}
var picCounts = (this.wp.waveTitle.length - 1) / this.iphasic;
let picCounts = (this.wp.waveTitle.length - 1) / this.iphasic;
this.waveDatas = [];
//循环筛选需求的数据
for (var i = 0; i < picCounts; i++) {
for (let i = 0; i < picCounts; i++) {
this.fliteWaveData(this.wp, i)
this.waveDatas.push({
instantF :this.instantF,
instantS :this.instantS,
RMSF :this.RMSF,
RMSS :this.RMSS,
RMSFMinDetail :this.RMSFMinDetail,
RMSSMinDetail :this.RMSSMinDetail,
shunshiF :this.shunshiF,
shunshiS :this.shunshiS,
RMSFWave :this.RMSFWave,
RMSSWave :this.RMSSWave,
title :this.title,
unit :this.unit
instantF: this.instantF,
instantS: this.instantS,
RMSF: this.RMSF,
RMSS: this.RMSS,
RMSFMinDetail: this.RMSFMinDetail,
RMSSMinDetail: this.RMSSMinDetail,
shunshiF: this.shunshiF,
shunshiS: this.shunshiS,
RMSFWave: this.RMSFWave,
RMSSWave: this.RMSSWave,
title: this.title,
unit: this.unit
});
}
@@ -276,31 +290,31 @@ export default {
},
//获取横向一个波形的全部数据包括瞬时波形的一次、二次值RMS波形的一次、二次值如果是电压的话还需要计算出对应的最大最小值
fliteWaveData(wp, step) {
var shunData = wp.listWaveData;
var rmsData = wp.listRmsData;
let shunData = wp.listWaveData;
let rmsData = wp.listRmsData;
// console.log(
// rmsData
// );
var pt = Number(wp.pt) / 1000;
var ct = Number(wp.ct);
var titleList = wp.waveTitle;
let pt = Number(wp.pt) / 1000;
let ct = Number(wp.ct);
let titleList = wp.waveTitle;
//首先判断当前绘制的是电压还是电流
var xishu = pt; //默认电压二次值转一次值乘以pt
let xishu = pt; //默认电压二次值转一次值乘以pt
//三相名称
var aTitle = "",
let aTitle = "",
bTitle = "",
cTitle = "",
unit = "电压";
//RMS最小值横、纵坐标、相别名称
var rmsvFirstX = 0,
let rmsvFirstX = 0,
rmsvFirstY = 0,
rmsvSecondX = 0,
rmsvSecondY = 0,
firstZhou = "a",
secondeZhou = "a";
//每个波形对应的最大最小值
var ifmax, ifmin, ismax, ismin, rfmax, rfmin, rsmax, rsmin;
var shunshiFA = [],
let ifmax, ifmin, ismax, ismin, rfmax, rfmin, rsmax, rsmin;
let shunshiFA = [],
shunshiFB = [],
shunshiFC = [],
shunshiSA = [],
@@ -318,7 +332,7 @@ export default {
xishu = ct;
unit = "电流";
}
for (var i = 1; i <= this.iphasic; i++) {
for (let i = 1; i <= this.iphasic; i++) {
switch (i) {
case 1:
aTitle = titleList[this.iphasic * step + i].substring(1);
@@ -349,43 +363,49 @@ export default {
rmsvSecondX = rmsData[0][0];
}
//瞬时值--同时还需要获取出瞬时值的一次、二次的最大最小值
for (var shun = 0; shun < shunData.length; shun++) {
for (let shun = 0; shun < shunData.length; shun++) {
if (shunData[shun][this.iphasic * step + 1] === undefined) {
break;
}
let shunFirstA = []
let shunFirstB = []
let shunFirstC = []
let shunSecondA = []
let shunSecondB = []
let shunSecondC = []
//根据波形数据相的数量来筛选数据
switch (this.iphasic) {
case 1:
var shunFirstA = shunData[shun][this.iphasic * step + 1] * xishu;
shunFirstA = shunData[shun][this.iphasic * step + 1] * xishu;
shunshiFA.push([shunData[shun][0], shunFirstA]);
ifmax = ifmax > shunFirstA ? ifmax : shunFirstA;
ifmin = ifmin < shunFirstA ? ifmin : shunFirstA;
var shunSecondA = shunData[shun][this.iphasic * step + 1];
shunSecondA = shunData[shun][this.iphasic * step + 1];
shunshiSA.push([shunData[shun][0], shunSecondA]);
ismax = ismax > shunSecondA ? ismax : shunSecondA;
ismin = ismin < shunSecondA ? ismin : shunSecondA;
break;
case 2:
var shunFirstA = shunData[shun][this.iphasic * step + 1] * xishu;
var shunFirstB = shunData[shun][this.iphasic * step + 2] * xishu;
shunFirstA = shunData[shun][this.iphasic * step + 1] * xishu;
shunFirstB = shunData[shun][this.iphasic * step + 2] * xishu;
shunshiFA.push([shunData[shun][0], shunFirstA]);
shunshiFB.push([shunData[shun][0], shunFirstB]);
ifmax = this.getMaxTwo(ifmax, shunFirstA, shunFirstB);
ifmin = this.getMinOpen(ifmin, shunFirstA, shunFirstB);
var shunSecondA = shunData[shun][this.iphasic * step + 1];
var shunSecondB = shunData[shun][this.iphasic * step + 2];
shunSecondA = shunData[shun][this.iphasic * step + 1];
shunSecondB = shunData[shun][this.iphasic * step + 2];
shunshiSA.push([shunData[shun][0], shunSecondA]);
shunshiSB.push([shunData[shun][0], shunSecondB]);
ismax = this.getMaxTwo(ismax, shunSecondA, shunSecondB);
ismin = this.getMinOpen(ismin, shunSecondA, shunSecondB);
break;
case 3:
var shunFirstA = shunData[shun][this.iphasic * step + 1] * xishu;
shunFirstA = shunData[shun][this.iphasic * step + 1] * xishu;
var shunFirstB = shunData[shun][this.iphasic * step + 2] * xishu;
var shunFirstC = shunData[shun][this.iphasic * step + 3] * xishu;
shunFirstB = shunData[shun][this.iphasic * step + 2] * xishu;
shunFirstC = shunData[shun][this.iphasic * step + 3] * xishu;
shunshiFA.push([shunData[shun][0], shunFirstA]);
shunshiFB.push([shunData[shun][0], shunFirstB]);
shunshiFC.push([shunData[shun][0], shunFirstC]);
@@ -397,9 +417,9 @@ export default {
ifmin = this.getMin(ifmin, shunFirstA, shunFirstB, shunFirstC);
}
var shunSecondA = shunData[shun][this.iphasic * step + 1];
var shunSecondB = shunData[shun][this.iphasic * step + 2];
var shunSecondC = shunData[shun][this.iphasic * step + 3];
shunSecondA = shunData[shun][this.iphasic * step + 1];
shunSecondB = shunData[shun][this.iphasic * step + 2];
shunSecondC = shunData[shun][this.iphasic * step + 3];
shunshiSA.push([shunData[shun][0], shunSecondA]);
shunshiSB.push([shunData[shun][0], shunSecondB]);
shunshiSC.push([shunData[shun][0], shunSecondC]);
@@ -420,14 +440,20 @@ export default {
}
//RMS值--同时还需要获取出RMS值的一次、二次的最大最小值
for (var rms = 0; rms < rmsData.length; rms++) {
for (let rms = 0; rms < rmsData.length; rms++) {
if (rmsData[rms][this.iphasic * step + 1] === undefined) {
break;
}
let rmsFirstA = []
let rmsFirstB = []
let rmsFirstC = []
let rmsSecondA = []
let rmsSecondB = []
let rmsSecondC = []
//根据波形数据相的数量来筛选数据
switch (this.iphasic) {
case 1:
var rmsFirstA = rmsData[rms][this.iphasic * step + 1] * xishu;
rmsFirstA = rmsData[rms][this.iphasic * step + 1] * xishu;
rmsFA.push([rmsData[rms][0], rmsFirstA]);
rfmax = rfmax > rmsFirstA ? rfmax : rmsFirstA;
rfmin = rfmin < rmsFirstA ? rfmin : rmsFirstA;
@@ -437,7 +463,7 @@ export default {
rmsvFirstX = rmsData[rms][0];
}
var rmsSecondA = rmsData[rms][this.iphasic * step + 1];
rmsSecondA = rmsData[rms][this.iphasic * step + 1];
rmsSA.push([rmsData[rms][0], rmsSecondA]);
rsmax = rsmax > rmsSecondA ? rsmax : rmsSecondA;
rsmin = rsmin < rmsSecondA ? rsmin : rmsSecondA;
@@ -448,8 +474,8 @@ export default {
}
break;
case 2:
var rmsFirstA = rmsData[rms][this.iphasic * step + 1] * xishu;
var rmsFirstB = rmsData[rms][this.iphasic * step + 2] * xishu;
rmsFirstA = rmsData[rms][this.iphasic * step + 1] * xishu;
rmsFirstB = rmsData[rms][this.iphasic * step + 2] * xishu;
rmsFA.push([rmsData[rms][0], rmsFirstA]);
rsmFB.push([rmsData[rms][0], rmsFirstB]);
rfmax = this.getMaxTwo(rfmax, rmsFirstA, rmsFirstB);
@@ -464,8 +490,8 @@ export default {
rmsvFirstX = rmsData[rms][0];
}
var rmsSecondA = rmsData[rms][this.iphasic * step + 1];
var rmsSecondB = rmsData[rms][this.iphasic * step + 2];
rmsSecondA = rmsData[rms][this.iphasic * step + 1];
rmsSecondB = rmsData[rms][this.iphasic * step + 2];
rmsSA.push([rmsData[rms][0], rmsSecondA]);
rsmSB.push([rmsData[rms][0], rmsSecondB]);
rsmax = this.getMaxTwo(rsmax, rmsSecondA, rmsSecondB);
@@ -481,9 +507,9 @@ export default {
}
break;
case 3:
var rmsFirstA = rmsData[rms][this.iphasic * step + 1] * xishu;
var rmsFirstB = rmsData[rms][this.iphasic * step + 2] * xishu;
var rmsFirstC = rmsData[rms][this.iphasic * step + 3] * xishu;
rmsFirstA = rmsData[rms][this.iphasic * step + 1] * xishu;
rmsFirstB = rmsData[rms][this.iphasic * step + 2] * xishu;
rmsFirstC = rmsData[rms][this.iphasic * step + 3] * xishu;
rmsFA.push([rmsData[rms][0], rmsFirstA]);
rsmFB.push([rmsData[rms][0], rmsFirstB]);
rmsFC.push([rmsData[rms][0], rmsFirstC]);
@@ -505,9 +531,9 @@ export default {
rmsvFirstX = rmsData[rms][0];
}
var rmsSecondA = rmsData[rms][this.iphasic * step + 1];
var rmsSecondB = rmsData[rms][this.iphasic * step + 2];
var rmsSecondC = rmsData[rms][this.iphasic * step + 3];
rmsSecondA = rmsData[rms][this.iphasic * step + 1];
rmsSecondB = rmsData[rms][this.iphasic * step + 2];
rmsSecondC = rmsData[rms][this.iphasic * step + 3];
rmsSA.push([rmsData[rms][0], rmsSecondA]);
rsmSB.push([rmsData[rms][0], rmsSecondB]);
rmsSC.push([rmsData[rms][0], rmsSecondC]);
@@ -533,21 +559,21 @@ export default {
}
}
//瞬时一次值最大最小值
var instantFAn = {};
var instantSAn = {};
//var color;
let instantFAn = {};
let instantSAn = {};
//let color;
var instantF = {};
var instantS = {};
var RMSF = {};
var RMSS = {};
var RMSFMinDetail = {};
var RMSSMinDetail = {};
var shunshiF = {};
var shunshiS = {};
var RMSFWave = {};
var RMSSWave = {};
var title = {};
let instantF = {};
let instantS = {};
let RMSF = {};
let RMSS = {};
let RMSFMinDetail = {};
let RMSSMinDetail = {};
let shunshiF = {};
let shunshiS = {};
let RMSFWave = {};
let RMSSWave = {};
let title = {};
//三相名称
title.aTitle = aTitle;
@@ -613,7 +639,7 @@ export default {
RMSSMinDetail.rmsvSecondX = rmsvSecondX;
RMSSMinDetail.rmsvSecondY = rmsvSecondY;
RMSSMinDetail.secondeZhou = secondeZhou;
return this.waveData(
return this.waveData(
instantF,
instantS,
RMSF,
@@ -632,33 +658,34 @@ export default {
initWave(waveDatas, time, type, severity, isOpen) {
//清除之前增加的div
// $("#wave ~ .bx").remove();
this.echartlist = []
$("#rms ~ .bx").remove();
//设置暂降触发点的位置 一次值与二次值Y轴不同不是计算出来的
// var height = $(window).height() - 90;
var picHeight;
var show = true;
// let height = $(window).height() - 90;
let picHeight;
let show = true;
if (isOpen) {
show = false;
}
//var v = $("#interval").val();
var isvisible = false;
var cu = [],
rmscu = [],
rmscm = [],
title,
unit,
max,
min;
var a = "",
//let v = $("#interval").val();
let isvisible = false;
let cu = null,
rmscu = null,
rmscm = null,
title =null,
unit =null,
max =null,
min=null;
let a = null,
b = "",
c = "";
var adata = [],
bdata = [],
cdata = [];
var radata = [],
rbdata = [],
rcdata = [];
var rmsvX = 0,
let adata = null,
bdata = null,
cdata = null;
let radata = null,
rbdata = null,
rcdata = null;
let rmsvX = 0,
rmsvY = 0,
zhou = 0;
// if (null == waveDatas || waveDatas.length === 1) {
@@ -675,7 +702,7 @@ export default {
// this.rmsHeight = picHeight
// $wave.css("height", picHeight);
// $rms.css("height", picHeight);
var colors = [];
let colors = [];
if (null == waveDatas) {
cu = [];
rmscu = [];
@@ -801,7 +828,7 @@ export default {
break;
}
if (waveDatas[0].unit === "电压") {
var xdata = this.wp.listRmsData[0][0];
let xdata = this.wp.listRmsData[0][0];
if (this.value === 1) {
this.fz = [
this.wp.listRmsMinData[0][0],
@@ -823,11 +850,10 @@ export default {
unit = "A";
}
//把剩余的DIV先拼接好
for (var step = 1; step < waveDatas.length; step++) {
var rmsId = "rms" + step;
var newDivRms = $(
` <div style="height:${
this.vh
for (let step = 1; step < waveDatas.length; step++) {
let rmsId = "rms" + step;
let newDivRms = $(
` <div style="height:${this.vh
};overflow: hidden;"><div class='bx' id='${rmsId}' ></div></div>`
);
newDivRms.insertAfter($("#rmsp"));
@@ -855,27 +881,27 @@ export default {
// 绘制RMS波形图
let _this = this;
var myChartes = echarts.init(document.getElementById("rms"));
let myChartes = echarts.init(document.getElementById("rms"));
// console.log("==========", radata);
let echartsColor = {WordColor:"#000",thread:"#000000",FigureColor:["#07CCCA ","#00BFF5","#FFBF00","#77DA63","#D5FF6B","#Ff6600","#FF9100","#5B6E96","#66FFCC","#B3B3B3","#FF00FF","#CC00FF","#FF9999"]}
let echartsColor = { WordColor: "#000", thread: "#000000", FigureColor: ["#07CCCA ", "#00BFF5", "#FFBF00", "#77DA63", "#D5FF6B", "#Ff6600", "#FF9100", "#5B6E96", "#66FFCC", "#B3B3B3", "#FF00FF", "#CC00FF", "#FF9999"] }
setTimeout(() => {
document.getElementById("rms").style.width ='100%';
document.getElementById("rms").style.height =_this.vh;
}, 0);
var option = {
document.getElementById("rms").style.width = '100%';
document.getElementById("rms").style.height = _this.vh;
}, 0);
let option = {
tooltip: {
top: "10px",
trigger: "axis",
borderColor: "grey",
formatter: function (params) {
var tips = "";
let tips = "";
tips += "时刻:" + params[0].data[0] + "</br/>";
for (var i = 0; i < params.length; i++) {
for (let i = 0; i < params.length; i++) {
if (params[i].seriesName != "暂降触发点") {
tips +=
params[i].seriesName + ":" + (params[i].value[1]-0).toFixed(2) + "<br/>";
params[i].seriesName + ":" + (params[i].value[1] - 0).toFixed(2) + "<br/>";
}
}
return tips;
@@ -899,7 +925,7 @@ export default {
},
title: {
left: "center",
text: "电网侧-电压 "+title,
text: "电网侧-电压 " + title,
subtitle: {
text: "电压",
align: "left",
@@ -1137,40 +1163,41 @@ export default {
],
};
myChartes.setOption(option)
// window.echartsArr.push(myChartes);
// window.echartsArr.push(myChartes);
setTimeout(() => {
myChartes.resize();
this.loading = false;
}, 500);
this.echartlist.push(myChartes)
//第一个波形图数据绘制完毕后,绘制后续的波形图
if (waveDatas !== null && waveDatas.length > 1) {
var waveDatasTemp = waveDatas.slice(1);
let waveDatasTemp = waveDatas.slice(1);
waveDatasTemp.reverse();
for (var step = 0; step < waveDatasTemp.length; step++) {
var waveDataTemp = waveDatasTemp[step];
for (let step = 0; step < waveDatasTemp.length; step++) {
let waveDataTemp = waveDatasTemp[step];
this.drawPics(waveDataTemp, picHeight, step, show, myChartes,rmscm,rmscu,title);
this.drawPics(waveDataTemp, picHeight, step, show, myChartes, rmscm, rmscu, title);
}
}
},
//绘制剩余横向的波形图
drawPics(waveDataTemp, picHeight, step, show, myChartes1,rmscm,rmscu,title) {
drawPics(waveDataTemp, picHeight, step, show, myChartes1, rmscm, rmscu, title) {
step = step + 1;
//新建瞬时DIV和RMS波形DIV
// var waveId = 'wave' + step;
var rmsId = "rms" + step;
// var v = $("#interval").val();
var a = "",
// let waveId = 'wave' + step;
let rmsId = "rms" + step;
// let v = $("#interval").val();
let a = "",
b = "",
c = "";
var max, min, unit;
var adata = [],
bdata = [],
cdata = [];
var radata = [],
rbdata = [],
rcdata = [];
var colors = [];
let max, min, unit;
let adata =null,
bdata =null,
cdata =null;
let radata =null,
rbdata =null,
rcdata =null;
let colors =[];
switch (this.iphasic) {
case 1:
a = waveDataTemp.title.aTitle;
@@ -1226,58 +1253,59 @@ export default {
//绘制rms波形
let _this = this;
var myChartes = echarts.init(document.getElementById(rmsId));
let myChartes = echarts.init(document.getElementById(rmsId));
//debugger
if(this.boxoList.systemType == "ZL"){
let str =[]
str = rmsId.split('s')
let str1 = Number(str[1])
var titlename =''
this.wp.channelNames.forEach((element,i) => {
if(i==4 || i==7 || i==10){
if(str1==1 && i==4){
let s =[]
let s1 =''
s=element.split('A')
if(s[0]=='LI'){
s1 ='电网侧-电流'
}else{
s1= s[0]+'侧'+s[1]
}
let titlename = ''
if (this.boxoList.systemType == "ZL") {
let str = []
str = rmsId.split('s')
let str1 = Number(str[1])
this.wp.channelNames.forEach((element, i) => {
if (i == 4 || i == 7 || i == 10) {
if (str1 == 1 && i == 4) {
let s = []
let s1 = ''
s = element.split('A')
if (s[0] == 'LI') {
s1 = '电网侧-电流'
} else {
s1 = s[0] + '侧' + s[1]
}
titlename = s1+' '+title
}
if(str1==2 && i==7){
let s =[]
let s1 =''
s=element.split('A')
if(s[0]=='SU'){
s1 ='负载侧-电压'
}else{
s1= s[0]+'侧'+s[1]
titlename = s1 + ' ' + title
}
if (str1 == 2 && i == 7) {
let s = []
let s1 = ''
s = element.split('A')
if (s[0] == 'SU') {
s1 = '负载侧-电压'
} else {
s1 = s[0] + '侧' + s[1]
}
titlename = s1+' '+title
}
if(str1==3 && i==10){
let s =[]
let s1 =''
s=element.split('A')
if(s[0]=='SI'){
s1 ='负载侧-电流'
}else{
s1= s[0]+'侧'+s[1]
titlename = s1 + ' ' + title
}
if (str1 == 3 && i == 10) {
let s = []
let s1 = ''
s = element.split('A')
titlename = s1+' '+title
if (s[0] == 'SI') {
s1 = '负载侧-电流'
} else {
s1 = s[0] + '侧' + s[1]
}
titlename = s1 + ' ' + title
}
}
}
});
}
let echartsColor = {WordColor:"#000",thread:"#000000",FigureColor:["#07CCCA ","#00BFF5","#FFBF00","#77DA63","#D5FF6B","#Ff6600","#FF9100","#5B6E96","#66FFCC","#B3B3B3","#FF00FF","#CC00FF","#FF9999"]}
var option = {
});
}
let echartsColor = { WordColor: "#000", thread: "#000000", FigureColor: ["#07CCCA ", "#00BFF5", "#FFBF00", "#77DA63", "#D5FF6B", "#Ff6600", "#FF9100", "#5B6E96", "#66FFCC", "#B3B3B3", "#FF00FF", "#CC00FF", "#FF9999"] }
let option = {
tooltip: {
trigger: "axis",
borderColor: "grey",
@@ -1289,13 +1317,13 @@ export default {
},
formatter: function (params) {
// console.log(params)
var tips = "";
let tips = "";
tips += "时刻:" + params[0].data[0] + "</br/>";
for (var i = 0; i < params.length; i++) {
for (let i = 0; i < params.length; i++) {
if (params[i].seriesName != "暂降触发点") {
tips +=
params[i].seriesName + ":" + (params[i].value[1]-0).toFixed(2) + "<br/>";
params[i].seriesName + ":" + (params[i].value[1] - 0).toFixed(2) + "<br/>";
}
}
return tips;
@@ -1510,11 +1538,12 @@ export default {
],
};
myChartes.setOption(option)
// window.echartsArr.push(myChartes);
// window.echartsArr.push(myChartes);
setTimeout(() => {
myChartes.resize();
this.loading = false;
}, 500);
this.echartlist.push(myChartes)
echarts.connect([myChartes1, myChartes]);
},
//根据多个值的比较返回其中最大值

View File

@@ -5,14 +5,8 @@
<div class="bx" id="wave"></div>
</div>
</div>
<el-button
style="position: absolute; right: 10px; top: 0px; z-index: 20000"
type="primary"
link
icon="el-icon-Download"
title="生成图片"
@click="download"
>
<el-button style="position: absolute; right: 10px; top: 0px; z-index: 20000" type="primary" link
icon="el-icon-Download" title="生成图片" @click="download">
下载
</el-button>
</div>
@@ -23,6 +17,8 @@ import $ from 'jquery'
import * as echarts from 'echarts'
import { mainHeight } from '@/utils/layout'
import url from '@/assets/img/point.png'
import { t } from 'vxe-table'
import { set } from '@vueuse/core'
export default {
props: {
value: {
@@ -72,15 +68,16 @@ export default {
titles: '',
vh: null,
vw: null,
zoom: ''
zoom: '',
echartlist: null
}
},
created() {
if (this.flag == 1) {
this.vh = mainHeight(165).height
} else {
this.vh = mainHeight(165,2).height
} else {
this.vh = mainHeight(165, 2).height
}
this.vw = '100%'
},
@@ -96,7 +93,7 @@ export default {
}
},
mounted() {
// console.log(`123123`,this.boxoList,this.wp);
// console.log(`123123`,this.boxoList,this.wp);
this.zoom = 1 / document.body.style.zoom
window.addEventListener('resize', () => {
this.zoom = 1 / document.body.style.zoom
@@ -107,13 +104,27 @@ export default {
})
},
methods: {
download() {
backbxlb() {
if (this.echartlist.length>0) {
console.log(123111);
this.waveDatas = []
this.echartlist.forEach(item => {
item.dispose(); // 销毁echarts实例
})
}
},
download() {
// 转换成canvas
html2canvas(document.getElementById('boxsj'), {
scale: 2
}).then(function (canvas) {
// 创建a标签实现下载
var creatIMg = document.createElement('a')
let creatIMg = document.createElement('a')
creatIMg.download = '瞬间波形.png' // 设置下载的文件名,
creatIMg.href = canvas.toDataURL() // 下载url
creatIMg.click()
@@ -190,18 +201,18 @@ export default {
if (this.iphasic === 0) {
this.iphasic = 1
}
var picCounts = (this.wp.waveTitle.length - 1) / this.iphasic
let picCounts = (this.wp.waveTitle.length - 1) / this.iphasic
this.waveDatas = []
//循环筛选需求的数据
for (var i = 0; i < picCounts; i++) {
for (let i = 0; i < picCounts; i++) {
this.fliteWaveData(this.wp, i)
this.waveDatas.push({
instantF :this.instantF,
instantS :this.instantS,
shunshiF :this.shunshiF,
shunshiS :this.shunshiS,
title :this.title,
unit :this.unit,
instantF: this.instantF,
instantS: this.instantS,
shunshiF: this.shunshiF,
shunshiS: this.shunshiS,
title: this.title,
unit: this.unit,
})
@@ -224,21 +235,21 @@ export default {
//获取横向一个波形的全部数据,包括瞬时波形的一次、二次值,如果是电压的话,还需要计算出对应的最大最小值
fliteWaveData(wp, step) {
var shunData = wp.listWaveData
var pt = Number(wp.pt) / 1000
var ct = Number(wp.ct)
var titleList = wp.waveTitle
let shunData = wp.listWaveData
let pt = Number(wp.pt) / 1000
let ct = Number(wp.ct)
let titleList = wp.waveTitle
//首先判断当前绘制的是电压还是电流
var xishu = pt //默认电压二次值转一次值乘以pt
let xishu = pt //默认电压二次值转一次值乘以pt
//三相名称
var aTitle = '',
let aTitle = '',
bTitle = '',
cTitle = '',
unit = '电压'
//每个波形对应的最大最小值
var ifmax, ifmin, ismax, ismin
let ifmax, ifmin, ismax, ismin
var shunshiFA = [],
let shunshiFA = [],
shunshiFB = [],
shunshiFC = [],
shunshiSA = [],
@@ -250,7 +261,7 @@ export default {
xishu = ct
unit = '电流'
}
for (var i = 1; i <= this.iphasic; i++) {
for (let i = 1; i <= this.iphasic; i++) {
switch (i) {
case 1:
aTitle = titleList[this.iphasic * step + i].substring(1)
@@ -271,42 +282,50 @@ export default {
}
//瞬时值--同时还需要获取出瞬时值的一次、二次的最大最小值
for (var shun = 0; shun < shunData.length; shun++) {
for (let shun = 0; shun < shunData.length; shun++) {
if (shunData[shun][this.iphasic * step + 1] === undefined) {
break
}
let shunFirstA = []
let shunFirstB = []
let shunFirstC = []
let shunSecondA = []
let shunSecondB = []
let shunSecondC = []
//根据波形数据相的数量来筛选数据
switch (this.iphasic) {
case 1:
var shunFirstA = shunData[shun][this.iphasic * step + 1] * xishu
shunFirstA = shunData[shun][this.iphasic * step + 1] * xishu
shunshiFA.push([shunData[shun][0], shunFirstA])
ifmax = ifmax > shunFirstA ? ifmax : shunFirstA
ifmin = ifmin < shunFirstA ? ifmin : shunFirstA
var shunSecondA = shunData[shun][this.iphasic * step + 1]
shunSecondA = shunData[shun][this.iphasic * step + 1]
shunshiSA.push([shunData[shun][0], shunSecondA])
ismax = ismax > shunSecondA ? ismax : shunSecondA
ismin = ismin < shunSecondA ? ismin : shunSecondA
break
case 2:
var shunFirstA = shunData[shun][this.iphasic * step + 1] * xishu
var shunFirstB = shunData[shun][this.iphasic * step + 2] * xishu
shunFirstA = shunData[shun][this.iphasic * step + 1] * xishu
shunFirstB = shunData[shun][this.iphasic * step + 2] * xishu
shunshiFA.push([shunData[shun][0], shunFirstA])
shunshiFB.push([shunData[shun][0], shunFirstB])
ifmax = this.getMaxTwo(ifmax, shunFirstA, shunFirstB)
ifmin = this.getMinOpen(ifmin, shunFirstA, shunFirstB)
var shunSecondA = shunData[shun][this.iphasic * step + 1]
var shunSecondB = shunData[shun][this.iphasic * step + 2]
shunSecondA = shunData[shun][this.iphasic * step + 1]
shunSecondB = shunData[shun][this.iphasic * step + 2]
shunshiSA.push([shunData[shun][0], shunSecondA])
shunshiSB.push([shunData[shun][0], shunSecondB])
ismax = this.getMaxTwo(ismax, shunSecondA, shunSecondB)
ismin = this.getMinOpen(ismin, shunSecondA, shunSecondB)
break
case 3:
var shunFirstA = shunData[shun][this.iphasic * step + 1] * xishu
var shunFirstB = shunData[shun][this.iphasic * step + 2] * xishu
var shunFirstC = shunData[shun][this.iphasic * step + 3] * xishu
shunFirstA = shunData[shun][this.iphasic * step + 1] * xishu
shunFirstB = shunData[shun][this.iphasic * step + 2] * xishu
shunFirstC = shunData[shun][this.iphasic * step + 3] * xishu
shunshiFA.push([shunData[shun][0], shunFirstA])
shunshiFB.push([shunData[shun][0], shunFirstB])
shunshiFC.push([shunData[shun][0], shunFirstC])
@@ -318,9 +337,9 @@ export default {
ifmin = this.getMin(ifmin, shunFirstA, shunFirstB, shunFirstC)
}
var shunSecondA = shunData[shun][this.iphasic * step + 1]
var shunSecondB = shunData[shun][this.iphasic * step + 2]
var shunSecondC = shunData[shun][this.iphasic * step + 3]
let shunSecondA = shunData[shun][this.iphasic * step + 1]
let shunSecondB = shunData[shun][this.iphasic * step + 2]
let shunSecondC = shunData[shun][this.iphasic * step + 3]
shunshiSA.push([shunData[shun][0], shunSecondA])
shunshiSB.push([shunData[shun][0], shunSecondB])
shunshiSC.push([shunData[shun][0], shunSecondC])
@@ -336,15 +355,15 @@ export default {
}
}
//瞬时一次值最大最小值
var instantFAn = {}
var instantSAn = {}
//var color;
let instantFAn = {}
let instantSAn = {}
//let color;
var instantF = {}
var instantS = {}
var shunshiF = {}
var shunshiS = {}
var title = {}
let instantF = {}
let instantS = {}
let shunshiF = {}
let shunshiS = {}
let title = {}
//三相名称
title.aTitle = aTitle
@@ -383,38 +402,38 @@ export default {
}
return this.waveData(instantF, instantS, shunshiF, shunshiS, title, unit)
return this.waveData(instantF, instantS, shunshiF, shunshiS, title, unit)
},
//开始画图
initWave(waveDatas, time, type, severity, isOpen) {
this.echartlist=[]
//清除之前增加的div
// $("#wave ~ .bx1").remove();
$('div.bx1').remove()
//设置暂降触发点的位置 一次值与二次值Y轴不同不是计算出来的
// var height = $(window).height() - 90;
var picHeight
var show = true
// let height = $(window).height() - 90;
let picHeight
let show = true
if (isOpen) {
show = false
}
//var v = $("#interval").val();
var isvisible = false
var cu = [],
title,
unit,
max,
min
var a = '',
b = '',
c = ''
var adata = [],
bdata = [],
cdata = []
//let v = $("#interval").val();
let isvisible = false
let cu = null,
title = null,
unit = null,
max = null,
min = null
let a = null,
b = null,
c = null
let adata = null,
bdata = null,
cdata = null
picHeight = this.vh
// this.$wave.css('height', picHeight)
// this.$wave.css('width', this.vw)
var colors = []
let colors = []
if (null == waveDatas) {
cu = []
title = '该事件暂无波形图'
@@ -499,9 +518,9 @@ export default {
unit = 'A'
}
//把剩余的DIV先拼接好
for (var step = 1; step < waveDatas.length; step++) {
var waveId = 'wave' + step
var newDivShunshi = $(` <div style="height:${this.vh};overflow: hidden;">
for (let step = 1; step < waveDatas.length; step++) {
let waveId = 'wave' + step
let newDivShunshi = $(` <div style="height:${this.vh};overflow: hidden;">
<div class='bx1' id='${waveId}'>
</div>
</div>`)
@@ -531,13 +550,13 @@ export default {
let wave = document.getElementById('wave')
let _this = this
var myChartes = echarts.init(wave)
let echartsColor = {WordColor:"#000",thread:"#000000",FigureColor:["#07CCCA ","#00BFF5","#FFBF00","#77DA63","#D5FF6B","#Ff6600","#FF9100","#5B6E96","#66FFCC","#B3B3B3","#FF00FF","#CC00FF","#FF9999"]}
let myChartes = echarts.init(wave)
let echartsColor = { WordColor: "#000", thread: "#000000", FigureColor: ["#07CCCA ", "#00BFF5", "#FFBF00", "#77DA63", "#D5FF6B", "#Ff6600", "#FF9100", "#5B6E96", "#66FFCC", "#B3B3B3", "#FF00FF", "#CC00FF", "#FF9999"] }
setTimeout(() => {
wave.style.width ='100%';
wave.style.height =_this.vh;
wave.style.width = '100%';
wave.style.height = _this.vh;
}, 0);
var option = {
let option = {
tooltip: {
top: '10px',
trigger: 'axis',
@@ -550,10 +569,10 @@ export default {
},
formatter: function (params) {
// console.log(params)
var tips = ''
let tips = ''
tips += '时刻:' + params[0].data[0] + '</br/>'
for (var i = 0; i < params.length; i++) {
for (let i = 0; i < params.length; i++) {
if (params[i].seriesName != '暂降触发点') {
tips += params[i].seriesName + ':' + (params[i].value[1] - 0).toFixed(2) + '<br/>'
}
@@ -776,13 +795,14 @@ export default {
myChartes.resize()
this.loading = false
}, 400)
this.echartlist.push(myChartes)
//第一个波形图数据绘制完毕后,绘制后续的波形图
if (waveDatas !== null && waveDatas.length > 1) {
let waveDatasTemp = waveDatas.slice(1)
waveDatasTemp.reverse()
for (var step = 0; step < waveDatasTemp.length; step++) {
var waveDataTemp = waveDatasTemp[step]
for (let step = 0; step < waveDatasTemp.length; step++) {
let waveDataTemp = waveDatasTemp[step]
this.drawPics(waveDataTemp, picHeight, step, show, myChartes, title)
}
}
@@ -792,15 +812,15 @@ export default {
let _this = this
step = step + 1
//新建瞬时DIV
var waveId = 'wave' + step
var a = '',
b = '',
c = ''
var max, min, unit
var adata = [],
bdata = [],
cdata = []
var colors = []
let waveId = 'wave' + step
let a = null,
b = null,
c = null
let max, min, unit
let adata = null,
bdata = null,
cdata = null
let colors = []
switch (this.iphasic) {
case 1:
a = waveDataTemp.title.aTitle
@@ -847,13 +867,14 @@ export default {
} else {
unit = 'A'
}
let titlename = ''
// const echarts = require('echarts')
let waveIds = document.getElementById(waveId)
if (this.boxoList.systemType == 'ZL') {
let str = []
str = waveId.split('e')
let str1 = Number(str[1])
var titlename = ''
this.wp.channelNames.forEach((element, i) => {
if (i == 4 || i == 7 || i == 10) {
if (str1 == 1 && i == 4) {
@@ -894,18 +915,18 @@ export default {
}
})
}
var myChartes = echarts.init(waveIds)
let echartsColor = {WordColor:"#000",thread:"#000000",FigureColor:["#07CCCA ","#00BFF5","#FFBF00","#77DA63","#D5FF6B","#Ff6600","#FF9100","#5B6E96","#66FFCC","#B3B3B3","#FF00FF","#CC00FF","#FF9999"]}
var option = {
let myChartes = echarts.init(waveIds)
let echartsColor = { WordColor: "#000", thread: "#000000", FigureColor: ["#07CCCA ", "#00BFF5", "#FFBF00", "#77DA63", "#D5FF6B", "#Ff6600", "#FF9100", "#5B6E96", "#66FFCC", "#B3B3B3", "#FF00FF", "#CC00FF", "#FF9999"] }
let option = {
tooltip: {
trigger: 'axis',
borderColor: 'grey',
formatter: function (params) {
// console.log(params)
var tips = ''
let tips = ''
tips += '时刻:' + params[0].data[0] + '</br/>'
for (var i = 0; i < params.length; i++) {
for (let i = 0; i < params.length; i++) {
if (params[i].seriesName != '暂降触发点') {
tips += params[i].seriesName + ':' + (params[i].value[1] - 0).toFixed(2) + '<br/>'
}
@@ -1119,6 +1140,7 @@ export default {
myChartes.resize()
this.loading = false
}, 400)
this.echartlist.push(myChartes)
echarts.connect([myChartes1, myChartes])
},
//根据多个值的比较返回其中最大值

View File

@@ -2,92 +2,67 @@
<div v-if="view2">
<el-row>
<el-col :span="12">
<span v-if="view2" style="font-size: 14px; font-weight: ; line-height: 30px">值类型选择:</span>
<el-select
v-if="view2"
style="min-width: 200px; width: 200px"
@change="changeView"
v-model="value"
placeholder="请选择值类型"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
<span style="font-size: 14px; line-height: 30px">值类型选择:</span>
<el-select style="min-width: 200px; width: 200px" @change="changeView" v-model="value"
placeholder="请选择值类型">
<el-option v-for="item in options" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-select>
<el-button v-if="view2 && senior" class="ml10" type="primary" @click="AdvancedAnalytics">高级分析</el-button>
<el-button v-if="view2 && senior" class="ml10" type="primary"
@click="AdvancedAnalytics">高级分析</el-button>
</el-col>
<el-col :span="12">
<el-button
v-if="view2"
@click="backbxlb"
class="el-icon-refresh-right"
icon="el-icon-CloseBold"
style="float: right"
>
<el-button @click="backbxlb" class="el-icon-refresh-right" icon="el-icon-CloseBold"
style="float: right">
返回
</el-button>
</el-col>
</el-row>
<el-tabs v-if="view2" class="default-main" v-model="bxactiveName" @tab-click="bxhandleClick">
<el-tab-pane
label="瞬时波形"
name="ssbx"
class="boxbx pt10 pb10"
:style="'height:' + bxecharts + ';overflow-y: scroll;'"
>
<shushiboxi
v-if="bxactiveName == 'ssbx' && showBoxi"
:value="value"
:boxoList="props.boxoList"
:wp="props.wp"
></shushiboxi>
</el-tab-pane>
<el-tab-pane
label="RMS波形"
class="boxbx pt10 pb10"
name="rmsbx"
:style="'height:' + bxecharts + ';overflow-y: scroll;'"
>
<rmsboxi
v-if="bxactiveName == 'rmsbx' && showBoxi"
:value="value"
:boxoList="props.boxoList"
:wp="props.wp"
></rmsboxi>
</el-tab-pane>
</el-tabs>
<div v-loading="loading" style="height: calc(100vh - 190px)">
<el-tabs v-if="view4" class="default-main" v-model="bxactiveName" @tab-click="bxhandleClick">
<el-tab-pane label="瞬时波形" name="ssbx" class="boxbx pt10 pb10"
:style="'height:' + bxecharts + ';overflow-y: scroll;'">
<shushiboxi ref="shushiboxiRef" v-if="bxactiveName == 'ssbx' && showBoxi" :value="value"
:boxoList="boxoList" :wp="wp">
</shushiboxi>
</el-tab-pane>
<el-tab-pane label="RMS波形" class="boxbx pt10 pb10" name="rmsbx"
:style="'height:' + bxecharts + ';overflow-y: scroll;'">
<rmsboxi ref="rmsboxiRef" v-if="bxactiveName == 'rmsbx' && showBoxi" :value="value"
:boxoList="boxoList" :wp="wp">
</rmsboxi>
</el-tab-pane>
</el-tabs>
<el-empty v-else description="暂无数据" style="height: calc(100vh - 190px)" />
</div>
</div>
<div v-if="view3" class="pd10">
<span style="font-weight: 500; font-size: 22px">高级分析</span>
<el-button icon="el-icon-Back" @click="gaoBack" style="float: right">返回</el-button>
<el-button icon="el-icon-Back" @click="gaoBack" style="float: right">返回</el-button>
<analytics :flag="true" :GJList="GJList" :boxoList="boxoList"></analytics>
</div>
</template>
<script setup lang="ts">
import shushiboxi from '@/components/echarts/shushiboxi.vue'
import rmsboxi from '@/components/echarts/rmsboxi.vue'
import analytics from '@/components/echarts/analytics.vue'
import analytics from '@/components/echarts/analytics.vue'
import { ref, reactive } from 'vue'
import { analysis } from '@/api/advance-boot/analyse'
import { mainHeight } from '@/utils/layout'
import { getMonitorEventAnalyseWave, downloadWaveFile } from '@/api/event-boot/transient'
const emit = defineEmits(['backbxlb'])
interface Props {
boxoList: any
wp: any,
senior?:boolean
// boxoList: any
// wp: any,
senior?: boolean
}
const props = withDefaults(defineProps<Props>(), {
senior:false
senior: false
})
const loading = ref(true)
const bxactiveName = ref('ssbx')
const rmsboxiRef = ref()
const value = ref(1)
const options = ref([
{
@@ -99,27 +74,62 @@ const options = ref([
label: '二次值'
}
])
const shushiboxiRef = ref()
const bxecharts = mainHeight(95).height as any
const view2 = ref(true)
const boxoList = ref(null)
const wp = ref(null)
const showBoxi = ref(true)
const view3 = ref(false)
const view4 = ref(false)
const GJList = ref([])
const open = async (row: any) => {
loading.value = true
await getMonitorEventAnalyseWave({ id: row.eventId, systemType: 0 })
.then(res => {
row.loading = false
if (res != undefined) {
boxoList.value = row
wp.value = res.data
loading.value = false
view4.value = true
}
})
.catch(() => {
loading.value = false
})
}
const bxhandleClick = (tab: any) => {
loading.value = true
if (tab.name == 'ssbx') {
if (rmsboxiRef.value) rmsboxiRef.value.backbxlb()
bxactiveName.value = 'ssbx'
} else if (tab.name == 'rmsbx') {
if (shushiboxiRef.value) shushiboxiRef.value.backbxlb()
bxactiveName.value = 'rmsbx'
}
setTimeout(() => {
loading.value = false
},0)
// console.log(tab, event);
}
const backbxlb = () => {
boxoList.value = null
wp.value = null
if (shushiboxiRef.value) shushiboxiRef.value.backbxlb()
if (rmsboxiRef.value) rmsboxiRef.value.backbxlb()
console.log("🚀 ~ backbxlb ~ rmsboxiRef.value:", rmsboxiRef.value)
emit('backbxlb')
}
// 高级分析
const AdvancedAnalytics = () => {
analysis({
eventIndex: props.boxoList.eventId
eventIndex: boxoList.value.eventId
}).then(res => {
GJList.value = res.data
view3.value = true
@@ -136,5 +146,6 @@ const gaoBack = () => {
view2.value = true
view3.value = false
}
defineExpose({ open })
</script>
<style lang="scss" scoped></style>

View File

@@ -41,8 +41,8 @@
<Table ref="tableRef" />
</div>
<div :style="{ height: pageHeight.height }" style="padding: 10px; overflow: hidden" v-if="view2">
<waveForm senior :boxoList="boxoList" :wp="wp" @backbxlb="backbxlb" />
<div :style="{ height: pageHeight.height }" style="padding: 10px; overflow: hidden" v-if="!view">
<waveForm ref="waveFormRef" senior :boxoList="boxoList" :wp="wp" @backbxlb="backbxlb" />
</div>
</div>
</template>
@@ -67,7 +67,7 @@ const interfereoption = dictData.getBasicData('Interference_Source')
const eventList = dictData.getBasicData('Event_Statis')
const view = ref(true)
const view2 = ref(false)
const waveFormRef = ref()
const tableStore = new TableStore({
url: '/event-boot/transient/getTransientValue',
method: 'POST',
@@ -129,20 +129,24 @@ const tableStore = new TableStore({
icon: 'el-icon-Plus',
render: 'basicButton',
click: async row => {
row.loading = true
boxoList.value = row
await getMonitorEventAnalyseWave({ id: row.eventId, systemType: 0 })
.then(res => {
row.loading = false
if (res != undefined) {
wp.value = res.data
view.value = false
view2.value = true
}
})
.catch(() => {
row.loading = false
})
view.value = false
setTimeout(() => {
waveFormRef.value.open(row)
},100)
// row.loading = true
// boxoList.value = row
// await getMonitorEventAnalyseWave({ id: row.eventId, systemType: 0 })
// .then(res => {
// row.loading = false
// if (res != undefined) {
// wp.value = res.data
// view.value = false
// view2.value = true
// }
// })
// .catch(() => {
// row.loading = false
// })
}
},
{
@@ -150,7 +154,7 @@ const tableStore = new TableStore({
title: '暂无波形',
type: '',
disabled: row => {
return row.fileFlag == 1
return row.fileFlag != 0
},
icon: 'el-icon-Plus',
render: 'basicButton'

View File

@@ -46,10 +46,7 @@ const dealStateList = ref([
label: '未解决',
value: '0'
},
{
label: '全部',
value: '1'
}
])
const tableStore = new TableStore({
url: '/supervision-boot/SupervisionUserComplaint/list',

View File

@@ -62,10 +62,10 @@
</el-form-item> -->
</template>
<template #operation>
<el-button icon="el-icon-Plus" :disabled="flag != '2'" type="primary" @click="launch('发起预警单')">
<el-button icon="el-icon-Plus" :disabled="flag > 2" type="primary" @click="launch('发起预警单')">
发起预警单
</el-button>
<el-button icon="el-icon-Plus" :disabled="flag != '2'" type="primary" @click="launch('发起告警单')">
<el-button icon="el-icon-Plus" :disabled="flag > 2" type="primary" @click="launch('发起告警单')">
发起告警单
</el-button>
</template>

View File

@@ -47,10 +47,7 @@ const dealStateList = ref([
label: '未解决',
value: '0'
},
{
label: '全部',
value: '1'
}
])
const tableStore = new TableStore({
url: '/supervision-boot/surveyTest/pageProblemSurvey',

View File

@@ -48,10 +48,7 @@ const dealStateList = ref([
label: '未解决',
value: '0'
},
{
label: '全部',
value: '1'
}
])
const tableStore = new TableStore({
url: '/supervision-boot/lineRunTestProblem/pageProblem',

View File

@@ -11,7 +11,7 @@
</el-form-item>
<el-form-item label="筛选">
<el-input v-model="tableStore.table.params.searchValue" placeholder="请输入关键字"
clearable></el-input>
clearable maxlength="32" show-word-limit></el-input>
</el-form-item>
</template>
<template #operation>

View File

@@ -10,7 +10,7 @@
</el-select>
</el-form-item>
<el-form-item label="筛选">
<el-input v-model="tableStore.table.params.searchValue" placeholder="请输入关键字" clearable></el-input>
<el-input v-model="tableStore.table.params.searchValue" placeholder="请输入关键字" clearable maxlength="32" show-word-limit></el-input>
</el-form-item>
</template>
<template #operation>

View File

@@ -10,7 +10,7 @@
<el-form-item label="是否解决">
<el-select v-model="tableStore.table.params.dealState" clearable placeholder="请选择是否解决">
<el-option label="未解决" value="0"></el-option>
<el-option label="全部" value="1"></el-option>
<!-- <el-option label="全部" value="1"></el-option> -->
</el-select>
</el-form-item>
</template>

View File

@@ -116,26 +116,28 @@
<el-input v-model.trim="form.latitude" :disabled="form.customSubstationFlag == 0" type="text"
placeholder="请输入纬度" />
</el-form-item>
<el-form-item for="-" label="终端编码:" prop="monitoringTerminalCode">
<el-input v-model.trim="form.monitoringTerminalCode" autocomplete="off" placeholder="请输入终端编码"
@input="encode" />
</el-form-item>
<el-form-item for="-" label="终端名称:" prop="monitoringTerminalName">
<el-input v-model.trim="form.monitoringTerminalName" autocomplete="off" placeholder="请输入终端名称" />
</el-form-item>
<el-form-item for="-" label="终端型号:" prop="terminalType">
<el-select v-model="form.terminalType" filterable clearable style="width: 100%" placeholder="请选择终端型号">
<el-option v-for="item in terminalTypeList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" label="终端名称:" prop="monitoringTerminalName">
<el-input v-model.trim="form.monitoringTerminalName" autocomplete="off" placeholder="请输入终端名称" />
</el-form-item>
<el-form-item for="-" label="通讯类型:">
<el-select v-model="form.frontType" clearable style="width: 100%" placeholder="请选择通讯类型">
<el-option v-for="item in frontTypeList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" label="终端编码:" prop="monitoringTerminalCode">
<el-input v-model.trim="form.monitoringTerminalCode" autocomplete="off" placeholder="请输入终端编码"
@change="encode" />
</el-form-item>
<el-form-item v-if="false" for="-" label="通讯状态:" prop="communicationStatus">
<el-select v-model="form.communicationStatus" clearable style="width: 100%" placeholder="请选择通讯状态"
:disabled="true">

View File

@@ -46,10 +46,7 @@ const dealStateList = ref([
label: '未解决',
value: '0'
},
{
label: '全部',
value: '1'
}
])
const tableStore = new TableStore({
url: '/supervision-boot/SupervisionUserComplaint/list',

View File

@@ -47,10 +47,7 @@ const dealStateList = ref([
label: '未解决',
value: '0'
},
{
label: '全部',
value: '1'
}
])
const tableStore = new TableStore({
url: '/supervision-boot/surveyTest/pageProblemSurvey',

View File

@@ -48,10 +48,7 @@ const dealStateList = ref([
label: '未解决',
value: '0'
},
{
label: '全部',
value: '1'
}
])
const tableStore = new TableStore({
url: '/supervision-boot/lineRunTestProblem/pageProblem',

View File

@@ -79,7 +79,7 @@
<Table ref="tableRef" />
</div>
<div :style="{ height: pageHeight.height }" style="padding: 10px; overflow: hidden" v-if="!view">
<waveForm senior :boxoList="boxoList" :wp="wp" @backbxlb="backbxlb" />
<waveForm ref="waveFormRef" senior :boxoList="boxoList" :wp="wp" @backbxlb="backbxlb" />
</div>
<addForm ref="addFormRef" @onSubmit="tableStore.index()" />
</div>
@@ -103,8 +103,7 @@ defineOptions({
})
const dictData = useDictData()
const adminInfo = useAdminInfo()
const waveFormRef=ref()
const pageHeight = mainHeight(20)
const view = ref(true)
const addFormRef = ref()
@@ -216,19 +215,23 @@ const tableStore = new TableStore({
icon: 'el-icon-Plus',
render: 'basicButton',
click: async row => {
row.loading = true
boxoList.value = row
await getMonitorEventAnalyseWave({ id: row.eventId, systemType: 0 })
.then(res => {
row.loading = false
if (res != undefined) {
wp.value = res.data
view.value = false
}
})
.catch(() => {
row.loading = false
})
// row.loading = true
view.value = false
setTimeout(() => {
waveFormRef.value.open(row)
},100)
// boxoList.value = row
// await getMonitorEventAnalyseWave({ id: row.eventId, systemType: 0 })
// .then(res => {
// row.loading = false
// if (res != undefined) {
// wp.value = res.data
// view.value = false
// }
// })
// .catch(() => {
// row.loading = false
// })
}
},
{

View File

@@ -31,8 +31,8 @@
</vxe-table>
</el-dialog>
</div>
<div :style="{ height: pageHeight.height }" style="padding: 10px; overflow: hidden" v-if="view2">
<waveForm senior :boxoList="boxoList" :wp="wp" @backbxlb="backbxlb" />
<div :style="{ height: pageHeight.height }" style="padding: 10px; overflow: hidden" v-if="!view">
<waveForm ref="waveFormRef" senior :boxoList="boxoList" :wp="wp" @backbxlb="backbxlb" />
</div>
</div>
</template>
@@ -59,7 +59,7 @@ const loading = ref(false)
const view = ref(true)
const view2 = ref(false)
const TableHeaderRef = ref()
const waveFormRef = ref()
const tableStore = new TableStore({
url: '/advance-boot/process/querySagEventsPage',
method: 'POST',
@@ -126,20 +126,24 @@ const tableStore = new TableStore({
icon: 'el-icon-Plus',
render: 'basicButton',
click: async row => {
row.loading = true
boxoList.value = row
await getMonitorEventAnalyseWave({ id: row.eventId, systemType: 0 })
.then(res => {
row.loading = false
if (res != undefined) {
wp.value = res.data
view.value = false
view2.value = true
}
})
.catch(() => {
row.loading = false
})
view.value = false
setTimeout(() => {
waveFormRef.value.open(row)
},100)
// row.loading = true
// boxoList.value = row
// await getMonitorEventAnalyseWave({ id: row.eventId, systemType: 0 })
// .then(res => {
// row.loading = false
// if (res != undefined) {
// wp.value = res.data
// view.value = false
// view2.value = true
// }
// })
// .catch(() => {
// row.loading = false
// })
}
},
{
@@ -147,7 +151,7 @@ const tableStore = new TableStore({
title: '暂无波形',
type: '',
disabled: row => {
return row.fileFlag == 1
return row.fileFlag != 0
},
icon: 'el-icon-Plus',
render: 'basicButton'

View File

@@ -1,13 +1,19 @@
<template>
<div>
<!-- 表头 -->
<TableHeader date-picker>
<template v-slot:operation>
<el-button :icon='Download' type='primary' @click='download'>波形下载</el-button>
</template>
</TableHeader>
<!-- 表格 -->
<Table ref='tableRef' :checkboxConfig='checkboxConfig' />
<div v-show="view">
<!-- 表头 -->
<TableHeader date-picker>
<template v-slot:operation>
<el-button :icon='Download' type='primary' @click='download'>波形下载</el-button>
</template>
</TableHeader>
<!-- 表格 -->
<Table ref='tableRef' :checkboxConfig='checkboxConfig' />
</div>
<div :style="{ height: pageHeight.height }" style="padding: 10px; overflow: hidden" v-if="!view">
<waveForm ref="waveFormRef" senior @backbxlb="backbxlb" />
</div>
</div>
</template>
<script setup lang='ts'>
@@ -21,9 +27,13 @@ import { mainHeight } from '@/utils/layout'
import { useMonitoringPoint } from '@/stores/monitoringPoint'
import { useDictData } from '@/stores/dictData'
import { checkUser } from '@/api/user-boot/user'
import waveForm from '@/components/echarts/waveForm.vue'
import { VxeTablePropTypes } from 'vxe-table'
import { downloadWaveFile, getMonitorEventAnalyseWave } from '@/api/event-boot/transient'
const view = ref(true)
const waveFormRef = ref()
const view2 = ref(false)
const pageHeight = mainHeight(20)
const dictData = useDictData()
const eventTypeOptions = dictData.getBasicData('Event_Statis')
const monitoringPoint = useMonitoringPoint()
@@ -53,7 +63,7 @@ const tableStore = new TableStore({
buttons: [
{
name: 'edit',
title: '波形查看',
title: '波形分析',
type: 'primary',
icon: 'el-icon-Lock',
render: 'basicButton',
@@ -61,15 +71,29 @@ const tableStore = new TableStore({
return row.fileFlag === 0
},
click: row => {
getMonitorEventAnalyseWave({
id: row.eventId,
systemType: 0,
type: 0
}).then(res => {
console.log(res)
ElMessage.error('暂无可下载的波形文件!')
})
// getMonitorEventAnalyseWave({
// id: row.eventId,
// systemType: 0,
// type: 0
// }).then(res => {
// console.log(res)
// ElMessage.error('暂无可下载的波形文件!')
// })
view.value = false
setTimeout(() => {
waveFormRef.value.open(row)
}, 100)
}
},
{
name: 'edit',
title: '暂无波形',
type: '',
disabled: row => {
return row.fileFlag != 0
},
icon: 'el-icon-Plus',
render: 'basicButton'
}
]
}
@@ -96,6 +120,10 @@ const checkboxConfig = reactive<VxeTablePropTypes.CheckboxConfig<any>>({
return row.fileFlag === 1
}
})
const backbxlb = () => {
view.value = true
view2.value = false
}
const download = () => {
if (!tableStore.table.selection.length) {
ElMessage.warning('请选择数据')