From 81380b5b765cdbfcbf7153378b79a41aab78b735 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期五, 02 八月 2024 16:48:27 +0800
Subject: [PATCH] feat:首页统计图
---
src/views/home/data-chart/index.vue | 86 +++++++++------------
src/views/system/check/result/index.vue | 2
src/views/home/work-order/index.vue | 102 +++++++++---------------
src/api/platform/home.js | 27 ++++++
4 files changed, 103 insertions(+), 114 deletions(-)
diff --git a/src/api/platform/home.js b/src/api/platform/home.js
new file mode 100644
index 0000000..92c3128
--- /dev/null
+++ b/src/api/platform/home.js
@@ -0,0 +1,27 @@
+import request from '@/utils/request'
+
+// 杩愮淮鍏徃涓嬫媺
+export function ywUnitList() {
+ return request({
+ url: '/home/ywUnitList',
+ method: 'get'
+ })
+}
+
+// 杩愮淮鐩戞帶鎶ヨ〃
+export function monitor(data) {
+ return request({
+ url: '/home/monitor',
+ method: 'get',
+ params: data
+ })
+}
+
+// 杩愮淮宸ュ崟鎶ヨ〃
+export function workOrder(data) {
+ return request({
+ url: '/home/workOrder',
+ method: 'get',
+ params: data
+ })
+}
\ No newline at end of file
diff --git a/src/views/home/data-chart/index.vue b/src/views/home/data-chart/index.vue
index 0f0d2b4..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,47 +26,19 @@
<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: {
@@ -128,13 +100,20 @@
},
- 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();
+ })
},
// 鐩戝惉鍙樺寲
@@ -155,11 +134,18 @@
},
mounted() {
- this.acitveData = this.dataList[0];
- this.company = this.acitveData.name;
- lineChart = echarts.init(this.$refs.chartContent);
- this.initChart();
- this.observe();
+ 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() {
if (lineChart) {
diff --git a/src/views/home/work-order/index.vue b/src/views/home/work-order/index.vue
index a261037..dd29ecf 100644
--- a/src/views/home/work-order/index.vue
+++ b/src/views/home/work-order/index.vue
@@ -5,13 +5,13 @@
<div class="title-container">
<h1>杩愮淮宸ュ崟鎶ヨ〃</h1>
<div class="select-container">
- <el-select v-model="company" placeholder="璇烽�夋嫨杩愮淮鍏徃" @change="companyChange">
+ <el-select v-model="params.unitId" placeholder="璇烽�夋嫨杩愮淮鍏徃" @change="showData">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</div>
<div class="date-container">
- <el-select v-model="dateRange" placeholder="璇烽�夋嫨鏃堕棿鑼冨洿">
+ <el-select v-model="params.dateType" placeholder="璇烽�夋嫨鏃堕棿鑼冨洿" @change="showData">
<el-option v-for="item in options2" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
@@ -27,64 +27,24 @@
<script>
import * as echarts from 'echarts';
+import { ywUnitList, workOrder } from "@/api/platform/home";
let lineChart = null;
let observer = null;
export default {
name: 'DataChart',
data() {
return {
- dateRange: '',
- company: '',
- options: [
- { label: '鍏ㄩ儴', value: '鍏ㄩ儴' },
- { label: 'XX杩愮淮鍏徃1', value: 'XX杩愮淮鍏徃1' },
- { label: 'XX杩愮淮鍏徃2', value: 'XX杩愮淮鍏徃2' },
- { label: 'XX杩愮淮鍏徃3', value: 'XX杩愮淮鍏徃3' },
- { label: 'XX杩愮淮鍏徃4', value: 'XX杩愮淮鍏徃4' },
- ],
+ params: {
+ dateType: '',
+ unitId: ''
+ },
+ options: [],
options2: [
- { label: '鏃ュ伐鍗曟暟', value: '鏃ュ伐鍗曟暟' },
- { label: '鍛ㄥ伐鍗曟暟', value: '鍛ㄥ伐鍗曟暟' },
- { label: '鏈堝伐鍗曟暟', value: '鏈堝伐鍗曟暟' },
+ { label: '鏃ュ伐鍗曟暟', value: 'day' },
+ { label: '鍛ㄥ伐鍗曟暟', value: 'week' },
+ { label: '鏈堝伐鍗曟暟', value: 'month' },
],
- dataList: [
- {
- name: '鍏ㄩ儴',
- complete: { '1鏈�': 10310, '2鏈�': 23200, '3鏈�': 16430, '4鏈�': 24000, '5鏈�': 31700 },
- waiting: { '1鏈�': 1500, '2鏈�': 2310, '3鏈�': 14530, '4鏈�': 231, '5鏈�': 1235 },
- pending: { '1鏈�': 2530, '2鏈�': 2450, '3鏈�': 4000, '4鏈�': 4300, '5鏈�': 3210 }
- },
- {
- name: 'XX杩愮淮鍏徃1',
- complete: { '1鏈�': 1000, '2鏈�': 2131, '3鏈�': 1233, '4鏈�': 2132, '5鏈�': 3211 },
- waiting: { '1鏈�': 123, '2鏈�': 213, '3鏈�': 1412, '4鏈�': 23, '5鏈�': 123 },
- pending: { '1鏈�': 200, '2鏈�': 235, '3鏈�': 300, '4鏈�': 400, '5鏈�': 500 }
- },
- {
- name: 'XX杩愮淮鍏徃2',
- complete: { '1鏈�': 213, '2鏈�': 2131, '3鏈�': 1233, '4鏈�': 2132, '5鏈�': 3211 },
- waiting: { '1鏈�': 123, '2鏈�': 123, '3鏈�': 1412, '4鏈�': 23, '5鏈�': 123 },
- pending: { '1鏈�': 135, '2鏈�': 422, '3鏈�': 425, '4鏈�': 323, '5鏈�': 400 }
- },
- {
- name: 'XX杩愮淮鍏徃3',
- complete: { '1鏈�': 1000, '2鏈�': 2131, '3鏈�': 1233, '4鏈�': 2132, '5鏈�': 3211 },
- waiting: { '1鏈�': 123, '2鏈�': 213, '3鏈�': 123, '4鏈�': 23, '5鏈�': 123 },
- pending: { '1鏈�': 534, '2鏈�': 435, '3鏈�': 422, '4鏈�': 121, '5鏈�': 313 }
- },
- {
- name: 'XX杩愮淮鍏徃4',
- complete: { '1鏈�': 1000, '2鏈�': 2131, '3鏈�': 1233, '4鏈�': 2132, '5鏈�': 3211 },
- waiting: { '1鏈�': 123, '2鏈�': 613, '3鏈�': 1412, '4鏈�': 2336, '5鏈�': 123 },
- pending: { '1鏈�': 123, '2鏈�': 321, '3鏈�': 131, '4鏈�': 321, '5鏈�': 421 }
- },
- {
- name: 'XX杩愮淮鍏徃5',
- complete: { '1鏈�': 1000, '2鏈�': 433, '3鏈�': 1233, '4鏈�': 2132, '5鏈�': 8886 },
- waiting: { '1鏈�': 123, '2鏈�': 213, '3鏈�': 1412, '4鏈�': 23, '5鏈�': 123 },
- pending: { '1鏈�': 333, '2鏈�': 245, '3鏈�': 233, '4鏈�': 222, '5鏈�': 111 }
- },
- ],
+ dataList: [],
}
},
methods: {
@@ -160,13 +120,21 @@
},
- companyChange() {
- this.acitveData = this.dataList.find((item) => {
- return item.name === this.company;
- });
- if (this.acitveData) {
+ showData() {
+ workOrder(this.params).then(res => {
+ this.acitveData = res.data;
+ if (Object.keys(this.acitveData).length === 0) {
+ this.acitveData = {
+ name: '',
+ complete: {},
+ waiting: {},
+ pending: {}
+ }
+ }
+ lineChart = echarts.init(this.$refs.chartContent);
this.initChart();
- }
+ this.observe();
+ })
},
// 鐩戝惉鍙樺寲
@@ -187,11 +155,19 @@
},
mounted() {
- this.acitveData = this.dataList[0];
- this.company = this.acitveData.name;
- lineChart = echarts.init(this.$refs.chartContent);
- this.initChart();
- this.observe();
+ 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.params.dateType = this.options2[0].value;
+ this.showData();
+ })
},
beforeDestroy() {
if (lineChart) {
diff --git a/src/views/system/check/result/index.vue b/src/views/system/check/result/index.vue
index 3b5dfac..b052177 100644
--- a/src/views/system/check/result/index.vue
+++ b/src/views/system/check/result/index.vue
@@ -4,8 +4,8 @@
<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect"
style="margin-bottom: 10px">
<el-menu-item index="0">鐪佸巺鏈堝害</el-menu-item>
- <el-menu-item index="1">甯傚眬鏈堝害</el-menu-item>
<el-menu-item index="2">鐪佸巺瀛e害</el-menu-item>
+ <el-menu-item index="1">甯傚眬鏈堝害</el-menu-item>
<el-menu-item index="3">甯傚眬瀛e害</el-menu-item>
</el-menu>
</div>
--
Gitblit v1.8.0