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/training.vue | 325 ++++++++++++-----------------------------------------
1 files changed, 76 insertions(+), 249 deletions(-)
diff --git a/src/views/riskWarningSys/warningBigScreen/components/training.vue b/src/views/riskWarningSys/warningBigScreen/components/training.vue
index 68eab0b..4fba1c7 100644
--- a/src/views/riskWarningSys/warningBigScreen/components/training.vue
+++ b/src/views/riskWarningSys/warningBigScreen/components/training.vue
@@ -1,88 +1,89 @@
<template>
<div class="charts-cont">
- <div v-show="curTab === 1" class="train" :id="train1"></div>
- <div v-show="curTab === 2" class="train" :id="train2"></div>
- <div v-show="curTab === 3" class="train" :id="train3"></div>
+ <div class="train" :id="train1"></div>
</div>
</template>
<script lang="ts">
- import {toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted, nextTick, onBeforeUnmount} from 'vue';
+import {
+ toRefs,
+ reactive,
+ defineComponent,
+ ref,
+ defineAsyncComponent,
+ onMounted,
+ nextTick,
+ onBeforeUnmount,
+ watchEffect
+} from 'vue';
import { storeToRefs } from 'pinia';
import { initBackEndControlRoutes } from '/@/router/backEnd';
import {useUserInfo} from "/@/stores/userInfo";
import { Session } from '/@/utils/storage';
import { Search } from '@element-plus/icons-vue'
+ import {useScreenTheme} from "/@/stores/screenTheme"
import { ElMessage } from 'element-plus'
import type { FormInstance, FormRules } from 'element-plus'
import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+ import { riskWarningApi } from '/@/api/riskWarning';
import * as echarts from 'echarts';
import '/@/theme/bigScreen.css'
interface stateType {
- curTab: number
+ traData: Array<any>,
+ changeChart: any
}
export default defineComponent({
name: 'accident',
components: {},
props:{
- size: Number
+ size: Number,
+ theme: Boolean
},
- setup(props) {
+ setup(props,context) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
+ const screenThemes = useScreenTheme()
+ const { screenTheme } = storeToRefs(screenThemes);
const train1 = ref("eChartTrain1" + Date.now() + Math.random())
- const train2 = ref("eChartTrain2" + Date.now() + Math.random())
- const train3 = ref("eChartTrain3" + Date.now() + Math.random())
const state = reactive<stateType>({
- curTab: 1
+ traData: [],
+ changeChart: null
})
- // const changeTab=()=>{
- // setInterval(()=>{
- // if(state.curTab<3){
- // state.curTab = state.curTab + 1
- // if(state.curTab == 2){
- // nextTick(()=>{
- // initTrain2()
- // })
- // }else{
- // nextTick(()=>{
- // initTrain3()
- // })
- // }
- //
- // }else{
- // state.curTab = 1
- // nextTick(()=>{
- // initTrain1()
- // })
- // }
- // },5000)
- // }
- const changeTab = setInterval(()=>{
- if(state.curTab<3){
- state.curTab = state.curTab + 1
- if(state.curTab == 2){
- nextTick(()=>{
- initTrain2()
- })
- }else{
- nextTick(()=>{
- initTrain3()
- })
- }
+ const getDataById = async () => {
+ let res = await riskWarningApi().getSafeCheckTask();
+ if (res.data.code === '200') {
+ state.traData = res.data.data
+ const chartData = state.traData.reduce((acc, curr, index) => {
+ if (index % 4 === 0) acc.push([]);
+ acc[acc.length - 1].push(curr);
+ return acc;
+ }, [])
+ let curIndex = 0
+ const renderCharts = () => {
+ const data = chartData[curIndex]
+ initTrain1(data)
+ curIndex = (curIndex + 1) % chartData.length
+ }
+ renderCharts()
+ state.changeChart = setInterval(renderCharts,5000)
+ context.emit('getData',state.traData)
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
- }else{
- state.curTab = 1
- nextTick(()=>{
- initTrain1()
- })
- }
- },5000)
+ const getTheme =()=>{
+
+ }
+
type EChartsOption = echarts.EChartsOption
// 隐患整改情况
- const initTrain1 =()=>{
+ const initTrain1 =(data)=>{
let dom = document.getElementById(train1.value);
let myChart = echarts.init(dom);
let option: EChartsOption;
@@ -119,8 +120,7 @@
},
yAxis: {
type: 'category',
- // data: ['一月', '二月', '三月', '四月', '五月', '六月','七月', '八月', '九月', '十月', '十一月', '十二月'],
- data: ['一月', '二月', '三月', '四月'],
+ data: data.map(i=>i.year+ '.' + i.month),
axisLine:{
show: true,
lineStyle:{
@@ -128,15 +128,14 @@
}
},
axisLabel:{
- color: '#999'
+ color: '#fff'
}
},
series: [
{
name: '2011',
type: 'bar',
- // data: [18203, 23489, 29034, 104970, 131744, 630230, 18203, 23489, 29034, 104970, 131744, 630230]
- data: [18203, 23489, 29034, 104970],
+ data: data.map(i=>i.count),
itemStyle:{
color: {
x: 0,
@@ -171,194 +170,6 @@
window.addEventListener("resize",function (){
myChart.resize();
});
- echarts.init(document.getElementById(train2.value)).dispose()
- echarts.init(document.getElementById(train3.value)).dispose()
- }
-
- const initTrain2 =()=>{
- let dom = document.getElementById(train2.value);
- let myChart = echarts.init(dom);
- let option: EChartsOption;
-
- option = {
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'shadow'
- }
- },
- grid: {
- top: '1%',
- left: '2%',
- right: '2%',
- bottom: '2%',
- containLabel: true
- },
- xAxis: {
- type: 'value',
- boundaryGap: [0, 0.01],
- axisLine:{
- show: true,
- lineStyle:{
- type: 'dotted'
- }
- },
- axisLabel:{
- color: '#999'
- },
- splitLine:{
- show: false
- }
- },
- yAxis: {
- type: 'category',
- // data: ['一月', '二月', '三月', '四月', '五月', '六月','七月', '八月', '九月', '十月', '十一月', '十二月'],
- data: ['五月', '六月','七月', '八月'],
- axisLine:{
- show: true,
- lineStyle:{
- color: '#999'
- }
- },
- axisLabel:{
- color: '#999'
- }
- },
- series: [
- {
- name: '2011',
- type: 'bar',
- // data: [18203, 23489, 29034, 104970, 131744, 630230, 18203, 23489, 29034, 104970, 131744, 630230]
- data: [131744, 630230, 18203, 23489],
- barCategoryGap: '50%',
- itemStyle:{
- color: {
- x: 0,
- y: 0,
- x2: 1,
- y2: 0,
- colorStops: [
- {
- offset: 0.1,
- color: "#2D74C0", // 线处的颜色
- },
- {
- offset: 0.9,
- color: "#21D9DC", // 坐标轴处的颜色
- },
- ]
- },
- borderRadius: [0,99,99,0]
- },
- label:{
- show: true,
- position: 'outside',
- color: '#999',
- fontSize: fontSize(11)
- }
- }
- ]
- };
-
- option && myChart.setOption(option);
- window.addEventListener("resize",function (){
- myChart.resize();
- });
- echarts.init(document.getElementById(train1.value)).dispose()
- echarts.init(document.getElementById(train3.value)).dispose()
- }
-
- const initTrain3 =()=>{
- let dom = document.getElementById(train3.value);
- let myChart = echarts.init(dom);
- let option: EChartsOption;
-
- option = {
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'shadow'
- }
- },
- grid: {
- top: '1%',
- left: '2%',
- right: '2%',
- bottom: '2%',
- containLabel: true
- },
- xAxis: {
- type: 'value',
- boundaryGap: [0, 0.01],
- axisLine:{
- show: true,
- lineStyle:{
- type: 'dotted'
- }
- },
- axisLabel:{
- color: '#999'
- },
- splitLine:{
- show: false
- }
- },
- yAxis: {
- type: 'category',
- // data: ['一月', '二月', '三月', '四月', '五月', '六月','七月', '八月', '九月', '十月', '十一月', '十二月'],
- data: ['九月', '十月', '十一月', '十二月'],
- axisLine:{
- show: true,
- lineStyle:{
- color: '#999'
- }
- },
- axisLabel:{
- color: '#999'
- }
- },
- series: [
- {
- name: '2011',
- type: 'bar',
- // data: [18203, 23489, 29034, 104970, 131744, 630230, 18203, 23489, 29034, 104970, 131744, 630230]
- data: [29034, 104970, 131744, 630230],
- barCategoryGap: '50%',
- itemStyle:{
- color: {
- x: 0,
- y: 0,
- x2: 1,
- y2: 0,
- colorStops: [
- {
- offset: 0.1,
- color: "#2D74C0", // 线处的颜色
- },
- {
- offset: 0.9,
- color: "#21D9DC", // 坐标轴处的颜色
- },
- ]
- },
- borderRadius: [0,99,99,0]
- },
- label:{
- show: true,
- position: 'outside',
- color: '#999',
- fontSize: fontSize(11)
- }
- }
- ]
- };
-
- option && myChart.setOption(option);
- window.addEventListener("resize",function (){
- myChart.resize();
- });
- echarts.init(document.getElementById(train1.value)).dispose()
- echarts.init(document.getElementById(train2.value)).dispose()
}
function fontSize(val){
@@ -366,17 +177,21 @@
return val * (nowClientWidth/1920) * Number(props.size);
}
+
+ watchEffect(() => {
+ // getDataById()
+ })
+
// 页面载入时执行方法
onMounted(() => {
- initTrain1();
+ getTheme();
+ getDataById()
});
onBeforeUnmount(() =>{
- clearInterval(changeTab)
+ clearInterval(state.changeChart)
})
return {
train1,
- train2,
- train3,
Search,
fontSize,
...toRefs(state)
@@ -397,6 +212,18 @@
height: 100%;
}
}
+ .tip-dark{
+ display: block;
+ font-size: 0.8rem;
+ color: #11feee;
+ height: 1rem;
+ }
+ .tip-light{
+ display: block;
+ font-size: 0.8rem;
+ color: #333;
+ height: 1rem;
+ }
.home-container {
height: 100%;
overflow: hidden;
--
Gitblit v1.9.2