From 8527e27c33e1006186a365fbf0eb9074ff952b22 Mon Sep 17 00:00:00 2001
From: lohir <3399054449@qq.com>
Date: 星期三, 23 十月 2024 11:23:53 +0800
Subject: [PATCH] 完成运维考核-工单白名单-新增、删除
---
src/views/home/data-chart/index.vue | 114 +++++++++++++++++++++++++++------------------------------
1 files changed, 54 insertions(+), 60 deletions(-)
diff --git a/src/views/home/data-chart/index.vue b/src/views/home/data-chart/index.vue
index 8055cf9..7dc8aec 100644
--- a/src/views/home/data-chart/index.vue
+++ b/src/views/home/data-chart/index.vue
@@ -5,14 +5,14 @@
<div class="title-container">
<h1>杩愮淮鐩戞帶鎶ヨ〃</h1>
<div class="select-container">
- <el-select v-model="company" placeholder="璇烽�夋嫨杩愮淮鍏徃" @change="companyChange">
- <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+ <el-select v-model="params.unitId" placeholder="璇烽�夋嫨杩愮淮鍏徃" @change="showData">
+ <el-option v-for="item in options" :key="item.label" :label="item.label" :value="item.value">
</el-option>
</el-select>
</div>
<div class="date-container">
- <el-date-picker v-model="dateRange" type="daterange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡">
+ <el-date-picker type="monthrange" v-model="params.dateRange" range-separator="鑷�" start-placeholder="寮�濮嬫湀浠�"
+ end-placeholder="缁撴潫鏈堜唤" @change="showData">
</el-date-picker>
</div>
</div>
@@ -26,58 +26,31 @@
<script>
import * as echarts from 'echarts';
+import { ywUnitList, monitor } from "@/api/platform/home";
let lineChart = null;
+let observer = null;
export default {
name: 'DataChart',
data() {
return {
- dateRange: '',
- company: '',
- options: [
- { label: 'XX杩愮淮鍏徃1', value: 'XX杩愮淮鍏徃1' },
- { label: 'XX杩愮淮鍏徃2', value: 'XX杩愮淮鍏徃2' },
- { label: 'XX杩愮淮鍏徃3', value: 'XX杩愮淮鍏徃3' },
- { label: 'XX杩愮淮鍏徃4', value: 'XX杩愮淮鍏徃4' },
- ],
- dataList: [
- {
- name: 'XX杩愮淮鍏徃1',
- state: { '1鏈�': 1000, '2鏈�': 2131, '3鏈�': 1233, '4鏈�': 2132, '5鏈�': 3211 },
- state2: { '1鏈�': 123, '2鏈�': 213, '3鏈�': 1412, '4鏈�': 23, '5鏈�': 123 }
- },
- {
- name: 'XX杩愮淮鍏徃2',
- state: { '1鏈�': 213, '2鏈�': 2131, '3鏈�': 1233, '4鏈�': 2132, '5鏈�': 3211 },
- state2: { '1鏈�': 123, '2鏈�': 123, '3鏈�': 1412, '4鏈�': 23, '5鏈�': 123 }
- },
- {
- name: 'XX杩愮淮鍏徃3',
- state: { '1鏈�': 1000, '2鏈�': 2131, '3鏈�': 1233, '4鏈�': 2132, '5鏈�': 3211,'6鏈�': 1321 },
- state2: { '1鏈�': 123, '2鏈�': 213, '3鏈�': 123, '4鏈�': 23, '5鏈�': 123 }
- },
- {
- name: 'XX杩愮淮鍏徃4',
- state: { '1鏈�': 1000, '2鏈�': 2131, '3鏈�': 1233, '4鏈�': 2132, '5鏈�': 3211 },
- state2: { '1鏈�': 123, '2鏈�': 613, '3鏈�': 1412, '4鏈�': 2336, '5鏈�': 123 }
- },
- {
- name: 'XX杩愮淮鍏徃5',
- state: { '1鏈�': 1000, '2鏈�': 433, '3鏈�': 1233, '4鏈�': 2132, '5鏈�': 8886 },
- state2: { '1鏈�': 123, '2鏈�': 213, '3鏈�': 1412, '4鏈�': 23, '5鏈�': 123 }
- },
- ],
+ params: {
+ dateRange: '',
+ unitId: ''
+ },
+ options: [],
+ dataList: [],
}
},
methods: {
initChart() {
const option = {
legend: {
- right: '2%',
- top: '5%',
+ right: 'right',
+ top: 'top',
+ orient: "vertical",
icon: 'rect',
data: [
{
-
name: '姝e父鏁�',
itemStyle: {
color: 'rgba(62, 144, 247, 1)'
@@ -127,36 +100,58 @@
},
- companyChange() {
- this.acitveData = this.dataList.find((item) => {
- return item.name === this.company;
- });
- if (this.acitveData) {
+ showData() {
+ monitor(this.params).then(res => {
+ this.acitveData = res.data;
+ if (Object.keys(this.acitveData).length === 0) {
+ this.acitveData = {
+ "name": "",
+ "state": {},
+ "state2": {}
+ }
+ }
+ lineChart = echarts.init(this.$refs.chartContent);
this.initChart();
- }
+ this.observe();
+ })
},
- // 杩囨护
- filterData() {
-
+ // 鐩戝惉鍙樺寲
+ observe() {
+ if (!observer) {
+ observer = new ResizeObserver(entries => {
+ this.handleResize();
+ })
+ }
+ observer.observe(this.$refs.chartContent);
},
// 绐楀彛鍙樻崲
handleResize() {
if (lineChart) {
- lineChart.resize()
+ lineChart.resize();
}
}
},
mounted() {
- this.acitveData = this.dataList[0];
- this.company = this.acitveData.name;
- lineChart = echarts.init(this.$refs.chartContent);
- this.initChart();
- window.addEventListener('resize', this.handleResize)
+ ywUnitList().then(res => {
+ this.options = res.data.data.map(item => {
+ return {
+ label: item.value,
+ value: item.id
+ }
+ })
+ if (this.params.unitId === '') {
+ this.params.unitId = this.options[0].value;
+ }
+ this.showData();
+ })
},
beforeDestroy() {
- window.removeEventListener('resize', this.handleResize)
+ if (lineChart) {
+ lineChart.dispose();
+ observer.unobserve(this.$refs.chartContent);
+ }
},
}
</script>
@@ -184,7 +179,6 @@
align-items: center;
z-index: 2;
-
.more-button {
cursor: pointer;
font-size: 16px;
@@ -207,4 +201,4 @@
margin: 0 20px;
width: 180px;
}
-</style>
\ No newline at end of file
+</style>
--
Gitblit v1.8.0