From 20b0ce2db27b64a60de60aee05dedd448099e330 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期一, 08 七月 2024 10:12:16 +0800
Subject: [PATCH] xiugai

---
 src/views/riskWarningSys/warningBigScreen/components/SPI.vue |  263 +++++++++++-----------------------------------------
 1 files changed, 55 insertions(+), 208 deletions(-)

diff --git a/src/views/riskWarningSys/warningBigScreen/components/SPI.vue b/src/views/riskWarningSys/warningBigScreen/components/SPI.vue
index 392db13..32f95af 100644
--- a/src/views/riskWarningSys/warningBigScreen/components/SPI.vue
+++ b/src/views/riskWarningSys/warningBigScreen/components/SPI.vue
@@ -35,7 +35,7 @@
 			size: Number,
 			theme: Boolean
 		},
-		setup(props) {
+		setup(props,context) {
 			const userInfo = useUserInfo()
 			const { userInfos } = storeToRefs(userInfo);
 			const screenThemes = useScreenTheme()
@@ -50,220 +50,68 @@
 
 			// 获取spi数据
 			const getSpiData = async () => {
-				let res = await riskWarningApi().getSpiData(screenTheme.value.depId);
-				if (res.data.code === '200') {
-					state.spiData = JSON.parse(JSON.stringify(res.data.data))
-					state.monthList = Array.from(state.spiData, ({ month }) => month + '月');
-					state.valueList = Array.from(state.spiData, ({ spiVal }) => spiVal);
-					state.year = res.data.data[0].year
-					initSpi()
-				} else {
-					ElMessage({
-						type: 'warning',
-						message: res.data.msg
-					});
-				}
+        let res = await riskWarningApi().getSpiPage({
+            pageIndex: 1,
+            pageSize: 12
+        })
+        if (res.data.code === '200') {
+          state.spiData = res.data.data;
+          initSpi(state.spiData.reverse())
+          context.emit('getData',state.spiData.reverse())
+        } else {
+          ElMessage({
+            type: 'warning',
+            message: res.data.msg
+          });
+        }
 			};
 			type EChartsOption = echarts.EChartsOption
 			// 隐患整改情况
-			const initSpi =()=>{
+			const initSpi =(data)=>{
 				let dom = document.getElementById(spi.value);
 				let myChart = echarts.init(dom);
 
 				let option: EChartsOption;
 
-				option = {
-					legend: {
-						data: ['注意线', '警告线', '危险线', 'SPI预警指数值'],
-						top: '2%',
-						right: '6%',
-						textStyle:{
-							color: '#999',
-							fontSize: fontSize(14)
-						}
-					},
-					color: ['rgba(216,55,55)','rgba(235,194,80)','rgba(147,208,81)'],
-					tooltip: {
-						trigger: 'axis'
-					},
-					grid: {
-						left: '8%',
-						right: '8%',
-						bottom: '5%',
-					},
-					xAxis: [
-						{
-							type: 'category',
-							boundaryGap: false,
-							data: state.monthList,
-							axisLine:{
-								show: true,
-								lineStyle:{
-									color: '#999'
-								}
-							},
-							splitLine:{
-								show: true,
-								lineStyle:{
-									type: 'dashed',
-									color: '#999'
-								}
-							},
-							axisLabel:{
-								color: '#999',
-							}
-						}
-					],
-					yAxis: [
-						{
-							type: 'value',
-							axisLine:{
-								show: true,
-								lineStyle:{
-									type: 'dotted'
-								}
-							},
-							axisLabel:{
-								color: '#ccc'
-							},
-							splitLine:{
-								show: true,
-								lineStyle:{
-									type: 'dashed',
-									color: 'rgba(255,255,255,.4)'
-								}
-							}
-						}
-					],
-					series: [
-						// {
-						// 	name: '危险线',
-						// 	data: [1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000],
-						// 	type: 'line',
-						// 	lineStyle:{
-						// 		width: 0
-						// 	},
-						// 	areaStyle: {
-						// 		color: {
-						// 			x: 0,
-						// 			y: 0,
-						// 			x2: 0,
-						// 			y2: 1,
-						// 			colorStops: [
-						// 				{
-						// 					offset: 0.1,
-						// 					color: "rgba(216,55,55)", // 线处的颜色
-						// 				},
-						// 				{
-						// 					offset: 0.9,
-						// 					color: "rgba(216,55,55,.1)", // 坐标轴处的颜色
-						// 				},
-						// 			],
-						// 		}
-						// 	},
-						// 	showSymbol: false,
-						// 	// stack: 'Total',
-						// 	smooth: true
-						// },
-						// {
-						// 	name: '警告线',
-						// 	data: [750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750],
-						// 	type: 'line',
-						// 	lineStyle:{
-						// 		width: 0
-						// 	},
-						// 	areaStyle: {
-						// 		color: {
-						// 			x: 0,
-						// 			y: 0,
-						// 			x2: 0,
-						// 			y2: 1,
-						// 			colorStops: [
-						// 				{
-						// 					offset: 0.1,
-						// 					color: "rgba(235,194,80)", // 线处的颜色
-						// 				},
-						// 				{
-						// 					offset: 0.9,
-						// 					color: "rgba(235,194,80,.1)", // 坐标轴处的颜色
-						// 				},
-						// 			],
-						// 		}
-						// 	},
-						// 	showSymbol: false,
-						// 	// stack: 'Total',
-						// 	smooth: true
-						// },
-						// {
-						// 	name: '注意线',
-						// 	data: [500, 500, 500, 500, 500, 500, 500,500, 500, 500, 500, 500],
-						// 	type: 'line',
-						// 	lineStyle:{
-						// 		width: 0
-						// 	},
-						// 	areaStyle: {
-						// 		color: {
-						// 			x: 0,
-						// 			y: 0,
-						// 			x2: 0,
-						// 			y2: 1,
-						// 			colorStops: [
-						// 				{
-						// 					offset: 0.1,
-						// 					color: "rgba(147,208,81)", // 线处的颜色
-						// 				},
-						// 				{
-						// 					offset: 0.9,
-						// 					color: "rgba(147,208,81,.2)", // 坐标轴处的颜色
-						// 				},
-						// 			]
-						// 		},
-						// 	},
-						// 	showSymbol: false,
-						// 	// stack: 'Total',
-						// 	smooth: true
-						// },
-						{
-							name: 'SPI预警指数值',
-							data: state.valueList,
-							type: 'line',
-							triggerLineEvent: true,
-							label:{
-								show: true,
-								color: '#23E5E5',
-								fontSize: fontSize(12)
-							},
-							lineStyle:{
-								width: 2,
-								color: '#23E5E5'
-							},
-							areaStyle: {
-								color: {
-									x: 0,
-									y: 0,
-									x2: 0,
-									y2: 1,
-									colorStops: [
-										{
-											offset: 0.1,
-											color: "rgba(147,208,81)", // 线处的颜色
-										},
-										{
-											offset: 0.9,
-											color: "rgba(147,208,81,.2)", // 坐标轴处的颜色
-										},
-									],
-								}
-							},
-							itemStyle:{
-								color: '#23E5E5',
-								borderColor: '#fff',
-								borderWidth: 4
-							},
-							smooth: true
-						}
-					]
-				};
+        option = {
+          tooltip: {
+            trigger: 'axis',
+            axisPointer: {
+              // Use axis to trigger tooltip
+              type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow'
+            }
+          },
+          color: ['#91cc75','#ee6666'],
+          grid: [
+            {
+              top: '5%',
+              right: '2%',
+              bottom: '10%'
+            }
+          ],
+          xAxis: {
+            type: 'category',
+            data: data.map(i=>i.time),
+            axisLabel: {
+              color: '#fff'
+            }
+          },
+          yAxis: {
+            type: 'value',
+            splitLine:{
+              lineStyle: {
+                color: 'rgba(255,255,255,.2)'
+              }
+            }
+          },
+          series: [
+            {
+              name: 'spi数值',
+              type: 'line',
+              data: data.map(i=>i.value?i.value:0)
+            }
+          ]
+        }
 
 				option && myChart.setOption(option);
 				window.addEventListener("resize",function (){
@@ -284,7 +132,6 @@
 			// 页面载入时执行方法
 			onMounted(() => {
 				getSpiData();
-				initSpi();
 			});
 
 			return {

--
Gitblit v1.9.2