华农3D项目
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

<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>