From 500ddf6571e656f33ef7fe10c570f6345344c989 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Thu, 01 Feb 2024 15:47:38 +0800
Subject: [PATCH] fix:断线监控
---
src/views/onlineRate/detailBox.vue | 118 +++++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 90 insertions(+), 28 deletions(-)
diff --git a/src/views/onlineRate/detailBox.vue b/src/views/onlineRate/detailBox.vue
index 608c90c..98394a2 100644
--- a/src/views/onlineRate/detailBox.vue
+++ b/src/views/onlineRate/detailBox.vue
@@ -35,6 +35,7 @@
value-format="yyyy-MM-dd HH:mm"
:default-date="[macDate.startTime, macDate.endTime]"
:picker-options="pickerOptions"
+ align="right"
@change="changeDay"
/>
</el-form-item>
@@ -43,7 +44,7 @@
<div>
<div class="tit">
<p style="font-size:16px">
- {{ macOnlineDetailData.code }}%
+ ���<span class="greenClor">{{ sum }}</span>{{ time }}��������� <span class="greenClor">{{ macOnlineDetailData.pieChart2 }}</span>{{ time }}������������<span :class=" onlineRate<90 ?'redClor':'greenClor'">{{ onlineRate.toFixed(2) }}%</span>
</p>
<div id="myPieChart" />
</div>
@@ -98,7 +99,11 @@
label="������������"
align="center"
label-class-name="itemSpan"
- />
+ >
+ <template slot-scope="scope">
+ <span>{{ scope.row.mun }}</span>{{ time }}
+ </template>
+ </el-table-column>
</el-table>
</div>
</div>
@@ -117,6 +122,7 @@
data () {
return {
title: '������',
+ sum: '',
formInline: {},
macOnlineDetailData: {},
time: '������',
@@ -132,6 +138,35 @@
// ������
pickerOptions: {
+ shortcuts: [{
+ text: '���1���',
+ onClick (picker) {
+ const end = dayjs().subtract(1, 'hour')
+ const start = dayjs().subtract(1, 'day')
+ picker.$emit('pick', [new Date(start), new Date(end)])
+ }
+ }, {
+ text: '���3���',
+ onClick (picker) {
+ const end = dayjs().subtract(1, 'hour')
+ const start = dayjs().subtract(3, 'day')
+ picker.$emit('pick', [new Date(start), new Date(end)])
+ }
+ }, {
+ text: '���5���',
+ onClick (picker) {
+ const end = dayjs().subtract(1, 'hour')
+ const start = dayjs().subtract(5, 'day')
+ picker.$emit('pick', [new Date(start), new Date(end)])
+ }
+ }, {
+ text: '���7���',
+ onClick (picker) {
+ const end = dayjs().subtract(1, 'hour')
+ const start = dayjs().subtract(7, 'day')
+ picker.$emit('pick', [new Date(start), new Date(end)])
+ }
+ }],
onPick: ({ maxDate, minDate }) => {
// ���������������������������������������������������
this.choiceDate = minDate.getTime()
@@ -161,13 +196,22 @@
}
}
},
+ computed: {
+ onlineRate () {
+ console.log('///', ((this.macOnlineDetailData.pieChart2) / this.sum))
+ return (this.macOnlineDetailData.pieChart2 / this.sum) * 100 || 0
+ }
+ },
watch: {
time (newValue, oldValue) {
if (newValue === '���') {
this.type = 'day'
+ this.lineType = 'day'
} else if (newValue === '������') {
this.type = 'hour'
+ this.lineType = 'hour'
} else if (newValue === '������') {
+ this.lineType = 'hour'
this.type = 'minute'
}
}
@@ -200,23 +244,34 @@
}
},
initPieChart (pieChartData) {
+ let that = this
+ let percent = null
let labelData = {
- show: false,
- }
- if (pieChartData[0] > 0) {
- labelData = {
- show: true,
- position: 'left',
- normal: {
- formatter: function (params) {
- console.log('params22', params)
- let onlineType = params.dataIndex === 0 ? '������' : '������'
- return `${onlineType}: ${params.value}`
- },
- fontSize: 14, // ������������������
- fontStyle: 'italic', // ������������������
+ show: true,
+ position: 'right',
+ alignTo: 'edge',
+ margin: 0,
+ normal: {
+ formatter: function (params) {
+ percent = params.percent
+ let onlineType = params.dataIndex === 0 ? '������' : '������'
+ return `${onlineType}{a|${params.value}}${that.time}:{b|${params.percent}%}`
},
- }
+ fontSize: 14, // ������������������
+ fontStyle: 'italic', // ������������������
+ rich: { // ���rich������������������������������������
+ a: {
+ fontSize: 14,
+ fontStyle: 'italic',
+ color: '#67c23a'
+ },
+ b: {
+ fontSize: 14,
+ fontStyle: 'italic',
+ color: percent !== 0 ? '#67c23a' : 'red'
+ },
+ }
+ },
}
let dom = document.getElementById('myPieChart')
let myChart = echarts.init(dom)
@@ -237,19 +292,21 @@
series: [
{
radius: 30,
- center: ['30%', '50%'],
+ center: ['50%', '50%'],
type: 'pie',
data: pieChartData,
label: labelData,
+ labelLayout: {
+ hideOverlap: false
+ }
},
],
}, true)
},
initChart (myChart, option, dom) {
myChart.setOption(option)
- if (this.lineType === 'hour') {
- myChart.on('click', (params) => {
- console.log(params)
+ myChart.on('click', (params) => {
+ if (this.lineType === 'hour') {
this.lineType = 'minute'
echarts.dispose(dom)
var myChart = echarts.init(dom)
@@ -258,8 +315,9 @@
let endTiem = dayjs(starTiem).add(1, 'hour')
this.getLineData(dayjs(starTiem).format('YYYY-MM-DD HH:mm:ss'), dayjs(endTiem).format('YYYY-MM-DD HH:mm:ss'), 'minute')
myChart.setOption(option, true)
- })
- }
+ }
+ console.log('this.lineType', this.lineType)
+ })
},
renderBack () {
this.lineType = 'hour'
@@ -278,13 +336,10 @@
},
getOption (xData, sData) {
let option = null
- let minTime = xData[0]
- let maxTime = xData[xData.length]
let interval = 3600 * 1000
if (this.type === 'minute') {
interval = 60 * 1000
}
- console.log(minTime, maxTime)
option = {
grid: {
left: '40px', // ���������������
@@ -308,7 +363,7 @@
formatter: function (params) {
console.log(params)
var value = params.data[0]
- let tip = params.value === 1 ? '������: ' + value : '������: ' + value
+ let tip = params.value[1] === 1 ? '������: ' + value : '������: ' + value
return tip
},
},
@@ -401,6 +456,7 @@
})
.then(res => {
this.macOnlineDetailData = res.data
+ this.sum = res.data.sum
this.tableData = res.data.tabulation
let pieChartData = [this.macOnlineDetailData.pieChart1, this.macOnlineDetailData.pieChart2]
this.initPieChart(pieChartData)
@@ -436,7 +492,7 @@
}
#myPieChart {
height: 120px;
- width: 400px!important;
+ width: 600px!important;
canvas {
width: 100%!important;
}
@@ -459,4 +515,10 @@
top: -40px;
}
}
+.redClor{
+ color: red;
+}
+.greenClor{
+ color:#67c23a;
+}
</style>
--
Gitblit v1.8.0