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.
153 lines
3.4 KiB
153 lines
3.4 KiB
<template>
|
|
<div id="main3" :style="{height:height,width:width}" />
|
|
</template>
|
|
|
|
<script>
|
|
import * as echarts from 'echarts'
|
|
import resize from '@/utils/resizeMixins.js'
|
|
|
|
export default {
|
|
name: 'WaterPressureOutDoor',
|
|
mixins: [resize],
|
|
props: {
|
|
outDoorData: {
|
|
type: Number,
|
|
require: true,
|
|
default: function() {
|
|
return 0
|
|
}
|
|
},
|
|
width: {
|
|
type: String,
|
|
default: '100%'
|
|
},
|
|
height: {
|
|
type: String,
|
|
default: '100%'
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
chart: null,
|
|
timeRePie: null
|
|
}
|
|
},
|
|
watch: {
|
|
'outDoorData': {
|
|
handler(val) {
|
|
setTimeout(() => {
|
|
this.initChart()
|
|
}, 100)
|
|
},
|
|
immediate: true,
|
|
deep: true
|
|
}
|
|
},
|
|
mounted() {
|
|
this.initChart()
|
|
window.addEventListener('resize', this.__resizeHandler)
|
|
},
|
|
methods: {
|
|
resetPieChartData() {
|
|
clearInterval(this.timeRePie)
|
|
this.timeRePie = setInterval(() => {
|
|
if (!this.chart) {
|
|
return
|
|
}
|
|
this.chart.clear()
|
|
this.initChart()
|
|
}, 8000)
|
|
},
|
|
initChart() {
|
|
const chartDom = document.getElementById('main3')
|
|
this.chart = echarts.init(chartDom)
|
|
|
|
const option = {
|
|
series: [
|
|
{
|
|
type: 'gauge',
|
|
center: ['50%', '60%'],
|
|
startAngle: 200,
|
|
endAngle: -20,
|
|
min: 0,
|
|
max: 1.2,
|
|
axisLine: {
|
|
lineStyle: {
|
|
width: 5,
|
|
color: [
|
|
[0.08, '#f65164'],
|
|
[0.8, '#18b08f'],
|
|
[1, '#c4c859']
|
|
]
|
|
}
|
|
},
|
|
pointer: {
|
|
icon: 'path://M12.8,0.7l12,40.1H0.7L12.8,0.7z',
|
|
length: '30%',
|
|
width: 6,
|
|
offsetCenter: [0, '-60%'],
|
|
itemStyle: {
|
|
color: '#F2F2F2'
|
|
}
|
|
},
|
|
axisTick: {
|
|
distance: -10,
|
|
splitNumber: 1,
|
|
lineStyle: {
|
|
width: 1,
|
|
color: '#fff'
|
|
}
|
|
},
|
|
splitLine: {
|
|
distance: -10,
|
|
length: 2,
|
|
lineStyle: {
|
|
width: 1,
|
|
color: '#FAC858'
|
|
}
|
|
},
|
|
axisLabel: {
|
|
distance: -15,
|
|
color: '#fff',
|
|
fontSize: 8
|
|
},
|
|
anchor: {
|
|
show: false
|
|
},
|
|
title: {
|
|
show: true,
|
|
offsetCenter: [0, '50%'],
|
|
fontSize: 14,
|
|
color: '#fff'
|
|
},
|
|
detail: {
|
|
valueAnimation: true,
|
|
width: '60%',
|
|
lineHeight: 5,
|
|
borderRadius: 8,
|
|
offsetCenter: [0, '-15%'],
|
|
fontSize: 14,
|
|
fontWeight: 'bolder',
|
|
formatter: '{value} Mpa',
|
|
color: 'auto'
|
|
},
|
|
data: [
|
|
{
|
|
value: this.outDoorData,
|
|
name: '室外'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
|
|
if (option) {
|
|
this.chart.setOption(option)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
</style>
|