You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
234 lines
4.8 KiB
234 lines
4.8 KiB
<template>
|
|
<div class="seal_test_container">
|
|
<div class="title_wrap">
|
|
<img class="icon" :src="SealPng" alt="" />
|
|
<div class="title">实时压力表</div>
|
|
</div>
|
|
<div class="echarts_box" id="seal_echarts"></div>
|
|
<div class="oper_box">
|
|
<img class="air_img" :src="StopAir" alt="" />
|
|
<img class="air_img" :src="StartAir" alt="" />
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import * as echarts from 'echarts'
|
|
import { ref, onMounted, onBeforeUnmount } from 'vue'
|
|
import SealPng from '@/assets/img/seal/seal.png'
|
|
import StartAir from '@/assets/img/seal/start.png'
|
|
import StopAir from '@/assets/img/seal/stop.png'
|
|
import DisStart from '@/assets/img/seal/dis_start.png'
|
|
import DisStop from '@/assets/img/seal/dis_stop.png'
|
|
import { useSealStore } from '@/store'
|
|
|
|
const sealStore = useSealStore()
|
|
|
|
const sealCharts = ref(null)
|
|
const sealOptions = ref({
|
|
series: [
|
|
{
|
|
type: 'gauge',
|
|
min: 0,
|
|
max: 800,
|
|
progress: {
|
|
show: true,
|
|
width: 18,
|
|
itemStyle: {
|
|
color: '#3442aa',
|
|
},
|
|
},
|
|
pointer: {
|
|
itemStyle: {
|
|
color: '#3442aa',
|
|
},
|
|
},
|
|
axisLine: {
|
|
lineStyle: {
|
|
width: 18,
|
|
},
|
|
},
|
|
axisTick: {
|
|
show: false,
|
|
},
|
|
splitLine: {
|
|
length: 15,
|
|
lineStyle: {
|
|
width: 2,
|
|
color: '#999',
|
|
},
|
|
},
|
|
axisLabel: {
|
|
distance: 25,
|
|
color: '#999',
|
|
fontSize: 20,
|
|
},
|
|
anchor: {
|
|
show: true,
|
|
showAbove: true,
|
|
size: 25,
|
|
itemStyle: {
|
|
borderWidth: 10,
|
|
borderColor: '#3442aa',
|
|
},
|
|
},
|
|
title: {
|
|
show: false,
|
|
},
|
|
detail: {
|
|
valueAnimation: true,
|
|
fontSize: 40,
|
|
color: '#3442aa',
|
|
formatter: '{value} KPa',
|
|
offsetCenter: [0, '70%'],
|
|
},
|
|
data: [
|
|
{
|
|
value: sealStore.currentAirPressure,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
})
|
|
|
|
const timer = ref(null)
|
|
onBeforeUnmount(() => {
|
|
timer.value = null
|
|
})
|
|
onMounted(() => {
|
|
sealCharts.value = echarts.init(document.getElementById('seal_echarts'))
|
|
sealCharts.value.setOption(sealOptions.value)
|
|
timer.value = setInterval(() => {
|
|
sealCharts.value.setOption({
|
|
series: [
|
|
{
|
|
type: 'gauge',
|
|
min: 0,
|
|
max: 800,
|
|
progress: {
|
|
show: true,
|
|
width: 18,
|
|
itemStyle: {
|
|
color: '#3442aa',
|
|
},
|
|
},
|
|
pointer: {
|
|
itemStyle: {
|
|
color: '#3442aa',
|
|
},
|
|
},
|
|
axisLine: {
|
|
lineStyle: {
|
|
width: 18,
|
|
},
|
|
},
|
|
axisTick: {
|
|
show: false,
|
|
},
|
|
splitLine: {
|
|
length: 15,
|
|
lineStyle: {
|
|
width: 2,
|
|
color: '#999',
|
|
},
|
|
},
|
|
axisLabel: {
|
|
distance: 25,
|
|
color: '#999',
|
|
fontSize: 20,
|
|
},
|
|
anchor: {
|
|
show: true,
|
|
showAbove: true,
|
|
size: 25,
|
|
itemStyle: {
|
|
borderWidth: 10,
|
|
borderColor: '#3442aa',
|
|
},
|
|
},
|
|
title: {
|
|
show: false,
|
|
},
|
|
detail: {
|
|
valueAnimation: true,
|
|
fontSize: 40,
|
|
color: '#3442aa',
|
|
formatter: '{value} KPa',
|
|
offsetCenter: [0, '70%'],
|
|
},
|
|
data: [
|
|
{
|
|
value: sealStore.currentAirPressure,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
})
|
|
}, 1000)
|
|
})
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.seal_test_container {
|
|
margin-bottom: 19px;
|
|
height: 580px;
|
|
box-sizing: border-box;
|
|
border-radius: 16px;
|
|
display: flex;
|
|
align-items: center;
|
|
margin-right: 30px;
|
|
width: 1220px;
|
|
height: 580px;
|
|
box-sizing: border-box;
|
|
border-radius: 16px;
|
|
background: #ffffff;
|
|
position: relative;
|
|
.title_wrap {
|
|
position: absolute;
|
|
left: 28px;
|
|
top: 28px;
|
|
width: 141px;
|
|
height: 31px;
|
|
box-sizing: border-box;
|
|
display: flex;
|
|
align-items: center;
|
|
.title {
|
|
font-family: 思源黑体;
|
|
font-size: 20px;
|
|
font-weight: bold;
|
|
line-height: normal;
|
|
letter-spacing: 0.02em;
|
|
font-feature-settings: 'kern' on;
|
|
color: #000000;
|
|
margin-left: 9px;
|
|
}
|
|
.icon {
|
|
width: 30px;
|
|
height: 30px;
|
|
}
|
|
}
|
|
.oper_box {
|
|
position: absolute;
|
|
left: 28px;
|
|
bottom: 28px;
|
|
width: 1164px;
|
|
box-sizing: border-box;
|
|
padding: 0 120px;
|
|
height: 110px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
.air_img {
|
|
width: 341px;
|
|
height: 110px;
|
|
}
|
|
}
|
|
.echarts_box {
|
|
height: 580px;
|
|
position: absolute;
|
|
left: 0;
|
|
top: -36px;
|
|
width: 1220px;
|
|
}
|
|
}
|
|
</style>
|