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.
120 lines
3.4 KiB
120 lines
3.4 KiB
<template>
|
|
<div class="h-[32.31vh] mt-[2.77vh] pt-[4vh] bgLeftBottomBox" v-loading="isLoading">
|
|
<div class="h-[20vh]" ref="echartsContainer"></div>
|
|
<section class="w-[37.96vh] h-[5.18vh] leading-[5.18vh] text-center border border-[#2D126F] mx-auto">
|
|
<span class="text-[1.85vh] youshe">平均接台时间</span>
|
|
</section>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import * as echarts from 'echarts';
|
|
import { GetMonitorAverageReceptionTime } from '@/api/room';
|
|
import dayjs from 'dayjs';
|
|
let chart = null;
|
|
export default {
|
|
data() {
|
|
return {
|
|
chartOptions: {
|
|
series: [
|
|
{
|
|
type: 'gauge',
|
|
radius: '100%',
|
|
max: 120,
|
|
axisLabel: {
|
|
show: false,
|
|
},
|
|
axisLine: {
|
|
lineStyle: {
|
|
width: 20,
|
|
color: [[1, 'rgba(126, 130, 137, 0.3)']],
|
|
},
|
|
},
|
|
progress: {
|
|
show: true,
|
|
width: 20,
|
|
itemStyle: {
|
|
color: {
|
|
type: 'linear',
|
|
x: 0,
|
|
y: 0,
|
|
x2: 0,
|
|
y2: 1,
|
|
colorStops: [
|
|
{ offset: 0, color: '#03c2fd' },
|
|
{ offset: 0.5, color: '#1ed3e5' },
|
|
{ offset: 1, color: '#2fded6' },
|
|
],
|
|
},
|
|
},
|
|
},
|
|
pointer: {
|
|
icon: 'rect',
|
|
width: 3,
|
|
offsetCenter: ['0%', '-40%'],
|
|
itemStyle: {
|
|
color: 'rgba(139, 230, 253, 1)',
|
|
},
|
|
},
|
|
data: [
|
|
{
|
|
name: 'itemA',
|
|
value: 45,
|
|
title: { show: false },
|
|
detail: {
|
|
offsetCenter: [0, '4%'],
|
|
formatter: function (value) {
|
|
return '{a|' + value + '}{b|min}';
|
|
},
|
|
rich: {
|
|
a: {
|
|
fontSize: 32,
|
|
color: '#4AC9FF',
|
|
fontFamily: 'DIN-Bold,Microsoft YaHei',
|
|
},
|
|
b: {
|
|
fontSize: 16,
|
|
color: '#4AC9FF',
|
|
fontFamily: 'DIN-Bold,Microsoft YaHei',
|
|
verticalAlign: 'bottom',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
isLoading: true,
|
|
};
|
|
},
|
|
methods: {
|
|
onGetPageData() {
|
|
let nowDay = dayjs().format('YYYY-MM-DD');
|
|
if (this.$store.getters.isMock) {
|
|
nowDay = '2024-06-06';
|
|
}
|
|
GetMonitorAverageReceptionTime(nowDay).then(res => {
|
|
// this.chartOptions['series'][0]['data'][0]['value'] = res['data']['averageReceptionTime'] > 999 ? 999 : res['data']['averageReceptionTime'];
|
|
this.chartOptions['series'][0]['data'][0]['value'] = res['data']['averageReceptionTime'];
|
|
chart.setOption(this.chartOptions);
|
|
this.isLoading = false;
|
|
});
|
|
},
|
|
},
|
|
mounted() {
|
|
chart = echarts.init(this.$refs.echartsContainer);
|
|
this.onGetPageData();
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style>
|
|
.bgLeftBottomBox {
|
|
background-image: url('@/assets/svg/Room/LeftBottom/Box.svg');
|
|
background-size: contain;
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
}
|
|
</style>
|