From 91f2640c8919e7cbe41c8c437e4f7fd60345e062 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期二, 22 四月 2025 10:47:00 +0800
Subject: [PATCH] 修改大屏

---
 src/views/hazardousChemicals/bigScreen/components/leftBottom.vue |  102 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 79 insertions(+), 23 deletions(-)

diff --git a/src/views/hazardousChemicals/bigScreen/components/leftBottom.vue b/src/views/hazardousChemicals/bigScreen/components/leftBottom.vue
index de6ee03..b7f6789 100644
--- a/src/views/hazardousChemicals/bigScreen/components/leftBottom.vue
+++ b/src/views/hazardousChemicals/bigScreen/components/leftBottom.vue
@@ -1,19 +1,57 @@
 <template>
   <div class="charts-container">
     <div id="dangerPie"></div>
+    <el-radio-group v-model="data.state" size="small" class="state-button" @change="getTopList">
+      <el-radio-button :label="1">已处理</el-radio-button>
+      <el-radio-button :label="0">未处理</el-radio-button>
+    </el-radio-group>
     <div id="dangerBar"></div>
   </div>
 </template>
 <script setup>
 import * as echarts from 'echarts';
-import {onMounted} from "vue";
-
+import {onMounted, reactive} from "vue";
+import {getAvoidInfoPage} from "@/api/hazardousChemicals/avoid";
+import {ElMessage} from "element-plus";
+import {getTaBooWarning} from "@/api/monitor/screenCharts";
 onMounted(()=>{
-  initDangerPie()
-  initDangerBar()
+  getListPage()
+  getTopList()
 })
 
-const initDangerPie =()=>{
+const data = reactive({
+  queryParams: {
+    pageNum: 1,
+    pageSize: 9999,
+    warningType: '',
+    companyId: null
+  },
+  state: 1
+})
+
+const getListPage = async () => {
+  const res = await getAvoidInfoPage(data.queryParams)
+  if(res.code == 200){
+    let data = []
+    if(res.data && Array.isArray(res.data.list) && res.data.list.length>0){
+      data[0] = {
+        name: '未处理',
+        value: res.data.list.filter(i=>i.state == 0).length
+      }
+      data[1] = {
+        name: '已处理',
+        value: res.data.list.filter(i=>i.state == 1).length
+      }
+      initDangerPie(data)
+    }else{
+      initDangerPie([])
+    }
+  }else{
+    ElMessage.warning(res.message)
+  }
+}
+
+const initDangerPie =(data)=>{
   var chartDom = document.getElementById('dangerPie');
   var myChart = echarts.init(chartDom);
   var option;
@@ -42,10 +80,7 @@
           show: true
         },
         color: ['#1890FF','#FACC14'],
-        data: [
-          { value: 1048, name: '未整改' },
-          { value: 735, name: '已整改' }
-        ],
+        data: data,
         emphasis: {
           itemStyle: {
             shadowBlur: 10,
@@ -59,7 +94,19 @@
 
   option && myChart.setOption(option);
 }
-const initDangerBar =()=>{
+
+const getTopList=async ()=>{
+  const res = await getTaBooWarning(data.state)
+  if (res.code == 200) {
+      if(res.data && Array.isArray(res.data) && res.data.length>0){
+        initDangerBar(res.data.reverse())
+      }
+  } else {
+    ElMessage.warning(res.message)
+  }
+}
+
+const initDangerBar =(data)=>{
   var chartDom = document.getElementById('dangerBar');
   var myChart = echarts.init(chartDom);
   var option;
@@ -83,16 +130,6 @@
           color: 'rgba(255,255,255,.6)',
           fontWeight: 'normal'
         }
-      },
-      {
-        text: '已整改/未整改',
-        right: '0',
-        top: '0%',
-        textStyle: {
-          fontSize: 12,
-          color: 'rgba(255,255,255,.6)',
-          fontWeight: 'normal'
-        }
       }
     ],
     xAxis: {
@@ -108,7 +145,7 @@
       }
     },
     yAxis: {
-      data: ['Brazil', 'Indonesia', 'USA', 'India', 'China', 'World'],
+      data: data.map(i=>i.companyName),
       axisLine: {
         show: false
       },
@@ -124,7 +161,7 @@
         name: '2011',
         type: 'bar',
         barWidth: '15',
-        data: [203, 489, 134, 970, 744, 230]
+        data: data.map(i=>i.count)
       }
     ]
   };
@@ -146,6 +183,25 @@
   display: flex;
   flex-direction: column;
 }
+:deep(.el-radio-group.state-button){
+  height: 20px;
+  display: flex;
+  align-items: center;
+  justify-content: right;
+  margin-bottom: -20px;
+  position: relative;
+  z-index: 9999;
+}
+:deep(.el-radio-button--small .el-radio-button__inner){
+  height: 20px;
+  line-height: 10px;
+  background: rgba(0,0,0,0);
+  border: 1px solid #11FEEE;
+}
+:deep(.el-radio-button__original-radio:checked+.el-radio-button__inner){
+  color: #02CDE6
+}
+
   #dangerPie{
     width: 100%;
     flex: 1;
@@ -155,4 +211,4 @@
     width: 100%;
     flex: 2;
   }
-</style>
+</style>
\ No newline at end of file

--
Gitblit v1.9.2