提交代码

This commit is contained in:
guanj
2025-12-23 11:15:33 +08:00
commit 4d68725c02
110 changed files with 202156 additions and 0 deletions

View File

@@ -0,0 +1,335 @@
<template>
<div class="box">
<Timeinterval ref="Timeinterval" :interval="3" v-show="false"></Timeinterval>
<div class="boxTop">
<img class="img" src="../images/d045d87176109fc1dfb3b09a583fea5.png" alt="" srcset="" />
<span>谐波畸变率排名</span>
<!-- <div class="total">
总计:<span>{{ total }}</span>
</div> -->
</div>
<div class="boxBot" ref="Echartspm">
<div id="echartpm" style="width: 100%; height: 100%" v-loading="isLoading"></div>
</div>
</div>
</template>
<script>
import { getUserScale } from "@/api/center/DropEvent.js";
import { getTHDTopTenData } from "@/api/homePage/index";
import Timeinterval from "@/views/Timeinterval/index.vue";
export default {
components: { Timeinterval },
props: {},
data() {
return {
zoom: undefined, //图表焦点校验
h: undefined,
isLoading: false,
total: 0,
myChart: null,
time: null,
};
},
created() { },
mounted() {
this.zoom = 1 / document.body.style.zoom;
window.addEventListener("resize", () => {
this.zoom = 1 / document.body.style.zoom;
});
this.$nextTick(() => {
this.province();
setInterval(() => {
clearInterval(this.time);
this.province();
}, 60000 * 5);
});
},
methods: {
//echarts图
async province() {
let name = [];
let vthd = [];
let transformerSubstation = [];
await getTHDTopTenData({
id: JSON.parse(window.localStorage.getItem("adminInfo")).deptId,
startTime: this.$refs.Timeinterval.timeValue[0],
endTime: this.$refs.Timeinterval.timeValue[1],
type: 3,
}).then((res) => {
res.data.forEach((item) => {
if (item.vthd) {
name.push(item.name);
transformerSubstation.push(item.subStationName)
vthd.push(item.vthd);
}
});
});
this.isLoading = true;
// const data = await getUserScale();
let _this = this;
let echarts = require("echarts");
let domID1 = document.getElementById("echartpm");
setTimeout(() => {
(domID1.style.width = this.$refs.Echartspm.offsetWidth + "px"),
(domID1.style.height = this.$refs.Echartspm.offsetHeight + "px");
}, 0);
if (_this.myChart != null) {
_this.myChart.dispose();
}
_this.myChart = echarts.init(domID1);
this.isLoading = false;
let option = {
tooltip: {
trigger: "axis",
backgroundColor: "rgba(8,36,68,.7)",
color: "#00ffff",
textStyle: {
color: "#00ffff",
},
axisPointer: {
// 坐标轴指示器,坐标轴触发有效
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
},
formatter: function (params) {
var tips = "";
let index = name.indexOf(params[0].name)
tips += '监测点' + ""+ params[0].name + "</br/>";
tips += '变电站' + "" + transformerSubstation[index] + "<br/>";
tips += params[0].seriesName + "" + params[0].value + "%<br/>";
return tips;
},
},
grid: {
top: "40px", // 等价于 y: '16%'
left: "50px",
right: "55px",
bottom: "50px",
},
legend: {
top: "4%",
left: "center",
itemWidth: 13,
itemHeight: 13,
itemStyle: {
color: "#00ffff",
},
icon: "rect",
padding: 0,
textStyle: {
color: "#03E9FF",
fontSize: 12,
padding: [2, 0, 0, 0],
},
},
xAxis: {
type: "category",
data: name,
name: "监测点",
nameTextStyle: {
color: "#07FCF0",
// top:'5%',
fontSize: 12,
},
axisLine: {
lineStyle: {
color: "#00ffff",
},
},
axisTick: {
show: false,
alignWithLabel: true,
lineStyle: {
color: "#00ffff",
},
},
axisLabel: {
color: "#00ffff",
// interval: 0,
rotate: 45,
formatter: function (name) {
//超出部分隐藏显示
return name.length > 6 ? name.slice(0, 3) + "..." : name;
},
interval: 0,
},
},
yAxis: [
{
axisLine: {
show: true,
lineStyle: {
color: "#00ffff",
},
},
axisLabel: {
show: true,
textStyle: {
color: "#00ffff",
},
},
splitLine: {
//分割线配置
lineStyle: {
type: "dashed",
color: "#00ffff",
},
},
},
{
name: "单位:%",
nameTextStyle: {
color: "#00ffff",
fontSize: 12,
},
position: "right",
//right:'15%',
axisLine: {
show: false,
},
splitLine: {
show: false,
},
},
],
series: [
{
name: "谐波畸变率",
type: "bar",
barWidth: "20",
label: {
show: true,
position: "top",
color: "#fff",
},
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: "#80ff09",
},
{
offset: 1,
color: "#05fffa",
},
]),
},
},
data: vthd,
},
],
};
// // _this.myChart.resize();
// let _this = this;
// _this.$erd.listenTo(_this.$refs.fg, (element) => {
// _this.$nextTick(() => {
// _this.myChart.resize();
// });
// });
// window.onresize = function () {
// _this.myChart.resize();
// };
option && _this.myChart.setOption(option, true);
//window.echartsArr.push(_this.myChart);
setTimeout(function () {
_this.myChart.resize();
let app = {
currentIndex: -1,
};
_this.time = setInterval(function () {
var dataLen = option.series[0].data.length;
// 取消之前高亮的图形
_this.myChart.dispatchAction({
type: "downplay",
seriesIndex: 0,
dataIndex: app.currentIndex,
});
app.currentIndex = (app.currentIndex + 1) % dataLen;
// 高亮当前图形
_this.myChart.dispatchAction({
type: "highlight",
seriesIndex: 0,
dataIndex: app.currentIndex,
});
// 显示 tooltip
_this.myChart.dispatchAction({
type: "showTip",
seriesIndex: 0,
dataIndex: app.currentIndex,
});
}, 2000);
}, 0);
},
},
beforeDestroy() {
for (let i = 1; i < 10000; i++) {
clearInterval(i);
}
},
};
</script>
<style lang="scss" scoped>
// @import url("../css/home.less");
@font-face {
font-family: sszh;
src: url("../fonts/sszh.ttf");
/* IE9+ */
}
.box {
width: 100%;
height: 100%;
.boxTop {
position: relative;
display: flex;
align-items: center;
height: 8%;
font-family: "\5FAE\8F6F\96C5\9ED1";
font-size: 0.85rem;
line-height: 8%;
letter-spacing: 1px;
color: #07d8fd;
cursor: pointer;
background: linear-gradient(225deg, transparent 10px, #29707f 0) top right;
.img {
height: 100%;
padding: 0 1.5%;
cursor: pointer;
}
.total {
position: absolute;
top: 50%;
left: 50%;
font-size: 0.85rem;
color: rgb(0, 255, 0);
transform: translate(-50%, -50%);
span {
font-family: electricFont;
font-size: 1.3rem;
color: #07d8fd;
}
}
}
.boxBot {
height: 90%;
// background-color: rgb(41, 16, 16);
}
}
</style>