From 20b0ce2db27b64a60de60aee05dedd448099e330 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: Mon, 08 Jul 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