<template>
<div id="staff-bar1" class="container"/>
</template>
<script>
import { multiScoreSecurity} from '@/api/pop';
import * as echarts from 'echarts';
export default {
name: 'StaffBar1',
data() {
return {
isShow: true,
myChart: null,
height: '0',
width: '0',
chartSettings: {
labelMap: { date: '时间' },
metrics: [],
dimension: ['date']
},
extend: {
color: ['#0071ff88', '#00afff88', '#00fdc088'],
legend: {
textStyle: {
color: '#cce9ff',
fontWeight: 'bold'
},
lineStyle: {
width: 10
},
data: ['安保到岗评分']
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
backgroundColor: '#cce9ff'
}
}
},
grid: {
left: '1%',
right: '2%',
bottom: '1%',
top: '15%',
containLabel: true
},
xAxis: {
type: 'category',
axisLine: {
lineStyle: {
color: '#cce9ff'
}
},
axisLabel: {
color: '#cce9ff'
}
},
yAxis: {
position: 'left',
type: 'value',
axisLine: {
lineStyle: {
color: '#cce9ff'
}
},
axisLabel: {
color: '#cce9ff'
}
},
series: [
{
name: '安保到岗评分',
type: 'bar',
barMaxWidth: 30,
label: {
show: true,
position: 'insideTop'
},
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 1, color: 'rgba(255,190,68,0.4)' },
// { offset: 0.3, color: 'rgba(0,253,232,0.8)' },
{ offset: 0, color: '#82b4dc' }
])
}
}
]
},
chartData: {
columns: [],
rows: []
}
}
},
mounted() {
this.myChart = echarts.init(document.getElementById('staff-bar1'))
this.height = document.getElementById('staff-bar1').clientHeight - 10 + 'px'
this.width = document.getElementById('staff-bar1').clientWidth - 10 + 'px'
const that = this
window.addEventListener('resize', function() {
that.reload()
})
this.fetchData()
},
methods: {
async reload() {
this.isShow = false
await this.$nextTick()
this.height = document.getElementById('staff-bar1').clientHeight - 10 + 'px'
this.width = document.getElementById('staff-bar1').clientWidth - 10 + 'px'
this.isShow = true
},
// 获取数据
fetchData() {
// this.chartData.columns = ['date', 'score']
// this.chartSettings.metrics = ['score']
// this.chartSettings.labelMap = { 'date': '时间', 'score': '安保到岗评分' }
multiScoreSecurity().then(response => {
if (response.code === 200) {
// this.chartData.rows = response.data
this.extend.series[0].data = response.data.map(item => item.score)
this.extend.xAxis.data = response.data.map(item => item.date)
this.myChart.setOption(this.extend, true)
}
})
}
}
}
</script>
<style lang="scss" scoped>
.container{
position:relative;
width: 100%;
height:100%;
}
</style>