Commit 7dbf6501 authored by 纪泽龙's avatar 纪泽龙

右边滚动要跟报警稍微同步一下

parent ae3be04e
<template>
<div style="height: 100%">
<div>
<div class="item1">
<span class="dot">
<span class="dot-inner"></span>
</span>
<span style="letter-spacing :3px;color:#cddbe4">报警信息</span>
<div class="fong-div" style="width: 8px;height: 12px;background-color: #2c888899;float: right;margin-top: 10px;transform: skewX(-25deg)"></div>
<div class="fong-div" style="width: 8px;height: 12px;background-color: #24b1b1b3;float: right;margin-top: 10px;margin-right: 10px;transform: skewX(-25deg)"></div>
<div class="fong-div" style="width: 8px;height: 12px;background-color: #11e9e9b3;float: right;margin-top: 10px;margin-right: 10px;transform: skewX(-25deg)"></div>
<span style="letter-spacing: 3px; color: #cddbe4">报警信息</span>
<div
class="fong-div"
style="
width: 8px;
height: 12px;
background-color: #2c888899;
float: right;
margin-top: 10px;
transform: skewX(-25deg);
"
></div>
<div
class="fong-div"
style="
width: 8px;
height: 12px;
background-color: #24b1b1b3;
float: right;
margin-top: 10px;
margin-right: 10px;
transform: skewX(-25deg);
"
></div>
<div
class="fong-div"
style="
width: 8px;
height: 12px;
background-color: #11e9e9b3;
float: right;
margin-top: 10px;
margin-right: 10px;
transform: skewX(-25deg);
"
></div>
</div>
</div>
<div class="left">
<div
class="bottom right-bottom-data-left"
@mouseover="tableEnter"
@mouseout="timerAni"
@mouseover="mouseover"
@mouseout="mouseout"
>
<el-table
size="mini"
......@@ -59,7 +90,7 @@
</div>
</div>
<!-- <div style="width: 100%;height: 200px;background-color: #44d7dc;">
<!-- <div style="width: 100%;height: 200px;background-color: #44d7dc;">
<el-table
size="mini"
:data="tableData"
......@@ -85,18 +116,53 @@
</el-table>
</div> -->
<div>
<div class="item1" style="margin-top: 10px;">
<div class="item1" style="margin-top: 10px">
<span class="dot">
<span class="dot-inner"></span>
</span>
<span style="letter-spacing :3px;color:#cddbe4">资源统计</span>
<div class="fong-div" style="width: 8px;height: 12px;background-color: #2c888899;float: right;margin-top: 10px;transform: skewX(-25deg)"></div>
<div class="fong-div" style="width: 8px;height: 12px;background-color: #24b1b1b3;float: right;margin-top: 10px;margin-right: 10px;transform: skewX(-25deg)"></div>
<div class="fong-div" style="width: 8px;height: 12px;background-color: #11e9e9b3;float: right;margin-top: 10px;margin-right: 10px;transform: skewX(-25deg)"></div>
<span style="letter-spacing: 3px; color: #cddbe4">资源统计</span>
<div
class="fong-div"
style="
width: 8px;
height: 12px;
background-color: #2c888899;
float: right;
margin-top: 10px;
transform: skewX(-25deg);
"
></div>
<div
class="fong-div"
style="
width: 8px;
height: 12px;
background-color: #24b1b1b3;
float: right;
margin-top: 10px;
margin-right: 10px;
transform: skewX(-25deg);
"
></div>
<div
class="fong-div"
style="
width: 8px;
height: 12px;
background-color: #11e9e9b3;
float: right;
margin-top: 10px;
margin-right: 10px;
transform: skewX(-25deg);
"
></div>
</div>
</div>
<div class="echarts-one" style="margin-top: 10px;width: 430px;margin-left: 10px;">
<div id="myChartone" :style="{width: '420px', height: '240px'}"></div>
<div
class="echarts-one"
style="margin-top: 10px; width: 430px; margin-left: 10px"
>
<div id="myChartone" :style="{ width: '420px', height: '240px' }"></div>
</div>
<div>
......@@ -104,102 +170,157 @@
<span class="dot">
<span class="dot-inner"></span>
</span>
<span style="letter-spacing :3px;color:#cddbe4">用户安全监控设备</span>
<div class="fong-div" style="width: 8px;height: 12px;background-color: #2c888899;float: right;margin-top: 10px;transform: skewX(-25deg)"></div>
<div class="fong-div" style="width: 8px;height: 12px;background-color: #24b1b1b3;float: right;margin-top: 10px;margin-right: 10px;transform: skewX(-25deg)"></div>
<div class="fong-div" style="width: 8px;height: 12px;background-color: #11e9e9b3;float: right;margin-top: 10px;margin-right: 10px;transform: skewX(-25deg)"></div>
<span style="letter-spacing: 3px; color: #cddbe4"
>用户安全监控设备</span
>
<div
class="fong-div"
style="
width: 8px;
height: 12px;
background-color: #2c888899;
float: right;
margin-top: 10px;
transform: skewX(-25deg);
"
></div>
<div
class="fong-div"
style="
width: 8px;
height: 12px;
background-color: #24b1b1b3;
float: right;
margin-top: 10px;
margin-right: 10px;
transform: skewX(-25deg);
"
></div>
<div
class="fong-div"
style="
width: 8px;
height: 12px;
background-color: #11e9e9b3;
float: right;
margin-top: 10px;
margin-right: 10px;
transform: skewX(-25deg);
"
></div>
</div>
</div>
<div class="outuser">
<div class="outuserone">
<p>燃气用户数量</p>
<span class="outuserspan">{{diviceNum.userNum}}</span>
<span class="outuserspan">{{ diviceNum.userNum }}</span>
</div>
<div class="outusertwo">
<p>安全设备数量</p>
<span class="outuserspan">{{diviceNum.baoNum+diviceNum.changNum+diviceNum.liNum}}</span>
<span class="outuserspan">{{
diviceNum.baoNum + diviceNum.changNum + diviceNum.liNum
}}</span>
</div>
</div>
<div id="huan" style="width: 450px;height: 170px;"></div>
<div id="huan" style="width: 450px; height: 170px"></div>
<div class="inyuan">
<div style="letter-spacing:2px;">设备总数</div>
<span style="font-family: 'arialbd';letter-spacing:2px;color: #00FFFF;font-size: 20px;">{{diviceNum.baoNum+diviceNum.changNum+diviceNum.liNum}}</span>
<div style="letter-spacing: 2px">设备总数</div>
<span
style="
font-family: 'arialbd';
letter-spacing: 2px;
color: #00ffff;
font-size: 20px;
"
>{{ diviceNum.baoNum + diviceNum.changNum + diviceNum.liNum }}</span
>
</div>
<div class="usernum">
<div class="usernumin in1">
<span></span>
<span style="color: #fff;">在线数量 </span>
<span style="font-family: 'arialbd';letter-spacing:2px;"> : {{diviceNum.changNum}}</span>
<span style="color: #fff">在线数量 </span>
<span style="font-family: 'arialbd'; letter-spacing: 2px">
: {{ diviceNum.changNum }}</span
>
</div>
<div class="usernumin in2">
<span></span>
<span style="color: #fff;">离线数量 </span>
<span style="font-family: 'arialbd';letter-spacing:2px;"> : {{diviceNum.liNum}}</span>
<span style="color: #fff">离线数量 </span>
<span style="font-family: 'arialbd'; letter-spacing: 2px">
: {{ diviceNum.liNum }}</span
>
</div>
<div class="usernumin in3">
<span></span>
<span style="color: #fff;">报警数量 </span>
<span style="font-family: 'arialbd';letter-spacing:2px;"> : {{diviceNum.baoNum}}</span>
<span style="color: #fff">报警数量 </span>
<span style="font-family: 'arialbd'; letter-spacing: 2px">
: {{ diviceNum.baoNum }}</span
>
</div>
</div>
</div>
</template>
<script>
// 引入基本模板
import * as echarts from 'echarts';
import { alarmData,selectDeviceNum } from "@/api/detector/detectorInfo";
export default {
// 引入基本模板
import * as echarts from "echarts";
import { alarmData, selectDeviceNum } from "@/api/detector/detectorInfo";
// 当不轮播时候的刷新时间
import { alarmtime } from "@/utils/mapClass/config";
export default {
// components: {
// RightPic,
// },
data () {
data() {
return {
allNum:{},
diviceNum:{
allNum: {},
diviceNum: {
baoNum: 0,
changNum: 0,
liNum: 0,
userNum: 0
userNum: 0,
},
zeroNum:{
zeroNum: {
fajing: 0,
stationNum: 0,
tiaoya: 0,
videoNum: 0
videoNum: 0,
},
enterpriseIds:{
enterpriseId:""
enterpriseIds: {
enterpriseId: "",
},
timer: null,
// 与bigwindow的报警同步的定时器
alarmTimer: null,
// 滚动功能的容器大还是列表大
changeTimer: false,
repeatFinshed: false,
tableHeight: 230,
tableData: [],
scrollHeight: 0
scrollHeight: 0,
};
},
mounted(){
mounted() {
// this.$nextTick(()=>{
// this.getScrollHeight();
// })
this.getAlarm();
selectDeviceNum (this.enterpriseIds).then(response => {
selectDeviceNum(this.enterpriseIds).then((response) => {
this.diviceNum = response.data;
this.drawLine3();
});
},
methods: {
getAlarm() {
alarmData().then(response => {
this.tableData=response.data.pageData;
return alarmData().then((response) => {
this.tableData = response.data.pageData;
// console.log(response.data)
// this.user = response.data;
this.$nextTick(()=>{
this.$nextTick(() => {
this.getScrollHeight();
})
});
});
},
getScrollHeight() {
......@@ -211,107 +332,124 @@
.querySelector(".el-table__body-wrapper")
.querySelector(".el-table__body");
setTimeout(()=>{
setTimeout(() => {
// 列表容器高度
const { height: heightWrapper } = selectWrap.getBoundingClientRect();
// 列表高度
const { height: heightSelect } = select.getBoundingClientRect();
// 滚动条的高度 = 列表高度-列表容器高度
this.scrollHeight = heightSelect - heightWrapper;
},1)
// 如果列表高度大于列表容器高度,就让轮播到底重新调接口,否则就跟bigwindow同步调取接口
if (heightSelect > heightWrapper) {
this.timerAni();
console.log("滚动");
} else {
this.alarmTimerAni();
console.log("不滚动");
}
// 列表大的时候鼠标移入移出就会触发暂停,否则就return
this.changeTimer = heightSelect > heightWrapper;
}, 1);
},
timerAni() {
const selectWrap = this.$refs.table.$el.querySelector(
".el-table__body-wrapper"
);
this.timer = setInterval(() => {
// console.log(selectWrap.scrollTop)
clearInterval(this.timer);
this.timer = setInterval(async () => {
if (selectWrap.scrollTop == this.scrollHeight) {
selectWrap.scrollTop = 1;
}
clearInterval(this.timer);
await this.getAlarm();
selectWrap.scrollTop = 0;
} else {
selectWrap.scrollTop += 1;
}
}, 100);
},
// 与外界报警同步
alarmTimerAni() {
this.alarmTimer = setTimeout(() => {
this.getAlarm();
}, alarmtime);
},
tableEnter() {
console.log(123);
clearInterval(this.timer);
},
choice(val){
this.getNum(val)
// 列表大的时候鼠标移入移出就会触发暂停,否则就啥也不干
mouseover() {
this.changeTimer && this.tableEnter();
},
mouseout() {
this.changeTimer && this.timerAni();
},
getNum( val){
if(val!=null && val!=''){
choice(val) {
this.getNum(val);
},
getNum(val) {
if (val != null && val != "") {
this.enterpriseIds.enterpriseId = val.toString();
selectDeviceNum (this.enterpriseIds).then(response => {
selectDeviceNum(this.enterpriseIds).then((response) => {
console.log(response);
this.allNum=response.data;
this.allNum = response.data;
this.drawLine();
});
}else {
} else {
this.allNum = this.zeroNum;
this.drawLine();
}
},
drawLine(){
drawLine() {
// 基于准备好的dom,初始化echarts实例
let myChart1 = this.$echarts.init(document.getElementById('myChartone'))
let myChart1 = this.$echarts.init(document.getElementById("myChartone"));
// 绘制图表
myChart1.setOption({
tooltip: {
trigger: "item"
trigger: "item",
},
grid: {
top: "8%",
left: "8%",
right: "8%",
bottom: "13%",
containLabel: true
containLabel: true,
},
xAxis: {
data: ["阀井","调压箱","场站","监控"],
type: 'category',
data: ["阀井", "调压箱", "场站", "监控"],
type: "category",
// data: category,
splitLine: {show: false},
splitLine: { show: false },
axisLine: {
show: false,
lineStyle:{
color: '#bbb6b6'
}
lineStyle: {
color: "#bbb6b6",
},
},
axisTick: {
show: false
show: false,
},
offset: 10,
nameTextStyle: {
fontSize: 15
}
fontSize: 15,
},
},
yAxis: {
type: 'value',
type: "value",
axisLine: {
show: false,
lineStyle:{
color: '#688AB6'
}
lineStyle: {
color: "#688AB6",
},
},
axisTick: {
show: false
show: false,
},
splitLine: {
show: true,
lineStyle:{
type:'dashed',
color: '#464646'
}
}
lineStyle: {
type: "dashed",
color: "#464646",
},
},
},
series: [
{
......@@ -319,72 +457,83 @@
type: "bar",
showSymbol: false,
hoverAnimation: false,
data: [this.allNum.fajing,this.allNum.tiaoya,this.allNum.stationNum,this.allNum.videoNum],
data: [
this.allNum.fajing,
this.allNum.tiaoya,
this.allNum.stationNum,
this.allNum.videoNum,
],
barWidth: 18, //柱图宽度
// barCategoryGap:'60%',
itemStyle:{
        normal:{
label:{
itemStyle: {
normal: {
label: {
show: true, //开启显示
position: 'top', //在上方显示
textStyle: { //数值样式
color: '#688AB6',
fontSize: 12
}
},
barBorderRadius: [5,5,0,0],
          //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
          color: function (params){
            //我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
             var colorList = [['#00ffff','#00fbfb80','#112238'],['#198EF0','#198ef099','#112238']];
var index=params.dataIndex;
if(params.dataIndex >= colorList.length){
index=params.dataIndex-colorList.length;
position: "top", //在上方显示
textStyle: {
//数值样式
color: "#688AB6",
fontSize: 12,
},
},
barBorderRadius: [5, 5, 0, 0], //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
color: function (params) {
//我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
var colorList = [
["#00ffff", "#00fbfb80", "#112238"],
["#198EF0", "#198ef099", "#112238"],
];
var index = params.dataIndex;
if (params.dataIndex >= colorList.length) {
index = params.dataIndex - colorList.length;
}
            return new echarts.graphic.LinearGradient(0, 0, 0, 1,[
               {offset: 0, color: colorList[index][0]},
               {offset: 0.5, color: colorList[index][1]},
               {offset: 1, color: colorList[index][2]}
              ]);
          }
}
}
},{
name:'资源数量统计',
tooltip:{
show:true
},
type: 'bar',
barWidth:10,
},{
name:'b',
tooltip:{
show:false
},
},{
name:'d',
tooltip:{
show:false
return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: colorList[index][0] },
{ offset: 0.5, color: colorList[index][1] },
{ offset: 1, color: colorList[index][2] },
]);
},
}
]
},
},
},
{
name: "资源数量统计",
tooltip: {
show: true,
},
type: "bar",
barWidth: 10,
},
{
name: "b",
tooltip: {
show: false,
},
},
{
name: "d",
tooltip: {
show: false,
},
},
],
});
},
drawLine3(){
drawLine3() {
// 基于准备好的dom,初始化echarts实例
let myChart31 = echarts.init(document.getElementById('huan'))
let myChart31 = echarts.init(document.getElementById("huan"));
// let myChart32 = echarts.init(document.getElementById('main32'))
// 绘制图表
myChart31.setOption({
color: ['#FF4040', '#F0C41B', '#188DF0'],
color: ["#FF4040", "#F0C41B", "#188DF0"],
grid: {
left: 0,
// right: 0,
bottom: 0,
top:0,
containLabel: true
top: 0,
containLabel: true,
},
// grid: {
// bottom: 150,
......@@ -395,9 +544,9 @@
series: [
// 主要展示层的
{
radius: ['75%', '65%'],
center: ['50%', '50%'],
type: 'pie',
radius: ["75%", "65%"],
center: ["50%", "50%"],
type: "pie",
itemStyle: {
borderRadius: 20,
},
......@@ -407,52 +556,56 @@
textStyle: {
fontSize: 13,
},
position: 'outside'
position: "outside",
},
emphasis: {
show: false
}
show: false,
},
},
labelLine: {
normal: {
show: false,
length: 20,
length2: 35
length2: 35,
},
emphasis: {
show: true
}
show: true,
},
},
name: "民警训练总量",
data: [{"name": "报警数量","value": this.diviceNum.baoNum},
{"name": "离线数量","value": this.diviceNum.liNum},
{ "name": "在线数量","value": this.diviceNum.changNum}, ],
data: [
{ name: "报警数量", value: this.diviceNum.baoNum },
{ name: "离线数量", value: this.diviceNum.liNum },
{ name: "在线数量", value: this.diviceNum.changNum },
],
},
// 边框的设置
{
name: '外边框',
type: 'pie',
name: "外边框",
type: "pie",
clockWise: false, //顺时加载
hoverAnimation: false, //鼠标移入变大
center: ['50%', '50%'],
radius: ['80%', '80%'],
center: ["50%", "50%"],
radius: ["80%", "80%"],
label: {
normal: {
show: false
}
show: false,
},
},
data: [{
data: [
{
value: 9,
name: '',
name: "",
itemStyle: {
normal: {
borderWidth: 2,
borderColor: '#61bad3'
}
}
}]
borderColor: "#61bad3",
},
},
},
]
],
},
],
});
// myChart32.setOption({
// title: {
......@@ -491,13 +644,13 @@
// }
// ]
// });
}
}
}
},
},
};
</script>
<style scoped>
.titleTex{
.titleTex {
height: 30px;
width: 100%;
color: aqua;
......@@ -505,22 +658,22 @@
line-height: 30px;
margin-top: 10px;
}
.divall{
.divall {
height: 100%;
width: 100%;
}
.divfen{
display:flex;
justify-content:center;
align-items:center;
.divfen {
display: flex;
justify-content: center;
align-items: center;
}
.numdiv{
.numdiv {
background: #47aed5;
color: white;
width: 27px;
font-size: 30px;
}
.item1{
.item1 {
width: 93%;
height: 30px;
font-size: 18px;
......@@ -530,7 +683,12 @@
font-weight: 700;
font-style: italic;
margin-left: 10px;
background-image: linear-gradient(to left, #112238, rgb(49 151 195 / 70%) 50%, #112238);
background-image: linear-gradient(
to left,
#112238,
rgb(49 151 195 / 70%) 50%,
#112238
);
}
.dot {
display: inline-block;
......@@ -542,9 +700,9 @@
margin-right: 10px;
margin-left: 10px;
margin-bottom: 2px;
}
}
.dot-inner {
.dot-inner {
background: #44d7dc;
position: absolute;
top: 0;
......@@ -556,73 +714,73 @@
border-radius: 50%;
-webkit-animation: vabDot 1.2s ease-in-out infinite;
animation: vabDot 1.2s ease-in-out infinite;
}
@-webkit-keyframes vabDot {
}
@-webkit-keyframes vabDot {
0% {
opacity: .6;
transform: scale(.8)
opacity: 0.6;
transform: scale(0.8);
}
to {
opacity: 0;
transform: scale(2.4)
}
transform: scale(2.4);
}
}
@keyframes vabDot {
@keyframes vabDot {
0% {
opacity: .6;
transform: scale(.8)
opacity: 0.6;
transform: scale(0.8);
}
to {
opacity: 0;
transform: scale(2.4)
}
transform: scale(2.4);
}
.outuser{
}
.outuser {
width: 450px;
height: 60px;
}
.outuserone{
}
.outuserone {
width: 50%;
height: 100%;
text-align: center;
float: left;
color: #E8F2FF;
}
.outusertwo{
color: #e8f2ff;
}
.outusertwo {
width: 50%;
height: 100%;
text-align: center;
float: right;
color: #E8F2FF;
}
.outuserspan{
font-family: 'arialbd';
color: #e8f2ff;
}
.outuserspan {
font-family: "arialbd";
font-size: 28px;
color: #00FFFF;
letter-spacing:8px;
}
.usernum{
color: #00ffff;
letter-spacing: 8px;
}
.usernum {
width: 100%;
height: 20px;
display: flex;
justify-content: space-around;
}
.usernumin{
}
.usernumin {
font-size: 15px;
}
.in1{
color: #188DF0;
}
.in2{
color: #F0C41B;
}
.in3{
color: #FF4040;
}
.inyuan{
}
.in1 {
color: #188df0;
}
.in2 {
color: #f0c41b;
}
.in3 {
color: #ff4040;
}
.inyuan {
width: 106px;
height: 106px;
border-radius: 50%;
......@@ -636,15 +794,15 @@
text-align: center;
line-height: 25px;
padding: 28px 0px 0px 0px;
background-image: linear-gradient(to left, #112238, #003E8D, #112238);
}
.b_list{
background-image: linear-gradient(to left, #112238, #003e8d, #112238);
}
.b_list {
height: 100%;
overflow: hidden;
}
.left{
}
.left {
margin-top: 10px;
width: 440px;
margin-left: 20px;
}
}
</style>
/*
* @Author: your name
* @Date: 2022-01-26 10:47:44
* @LastEditTime: 2022-03-01 16:07:06
* @LastEditTime: 2022-03-02 11:28:29
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /test/hello-world/src/utils/config.js
......@@ -20,6 +20,9 @@ export const pipePressure = {
3: "次高压",
4: "高压",
};
// 这是报警轮询的时间
export const alarmtime = 10000;
export const svgUrl = {
2: require("@/assets/image/tiaoyaxiang1.svg"),
3: require("@/assets/image/famen1.svg"),
......
<!--
* @Author: your name
* @Date: 2022-01-11 13:44:17
* @LastEditTime: 2022-03-01 16:08:52
* @LastEditTime: 2022-03-02 11:47:13
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /test/hello-world/src/views/Home.vue
......@@ -144,6 +144,7 @@ import {
changzhan,
jiankong,
user,
alarmtime
} from "@/utils/mapClass/config.js";
import {
getPipe,
......@@ -321,7 +322,7 @@ export default {
this.alarmTimer = setInterval(() => {
this.userAlarm();
// console.log("查询报警");
}, 6000);
}, alarmtime);
});
}
this.currentTime();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment