From e2ddf84cce119757b3f6d63e9f68b0d1a78aa27b Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期三, 23 四月 2025 09:57:22 +0800
Subject: [PATCH] 修改大屏

---
 src/views/hazardousChemicals/bigScreen/components/leftTop.vue |  177 ++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 134 insertions(+), 43 deletions(-)

diff --git a/src/views/hazardousChemicals/bigScreen/components/leftTop.vue b/src/views/hazardousChemicals/bigScreen/components/leftTop.vue
index cd5a7da..d787bd5 100644
--- a/src/views/hazardousChemicals/bigScreen/components/leftTop.vue
+++ b/src/views/hazardousChemicals/bigScreen/components/leftTop.vue
@@ -1,20 +1,89 @@
 <template>
   <div class="charts-container">
+    <el-select
+        clearable
+        v-model="data.queryParams.companyId"
+        filterable
+        remote
+        :teleported="false"
+        reserve-keyword
+        placeholder="请选择企业"
+        remote-show-suffix
+        :remote-method="getData"
+        style="width: 100%"
+    >
+      <el-option
+          v-for="item in data.companyList"
+          :key="item.id"
+          :label="item.name"
+          :value="item.id"
+      />
+    </el-select>
     <div class="top">
-        共计<span>41515152</span>人/次
+      共计<span>{{data.totalCount}}</span>人/次
     </div>
     <div id="main"></div>
   </div>
 </template>
 <script setup>
 import * as echarts from 'echarts';
-import {onMounted} from "vue";
+import {onMounted, reactive} from "vue";
+import {getCompany} from "@/api/hazardousChemicals/company";
+import {ElMessage} from "element-plus";
+import {getDayUseStatistic} from "@/api/monitor/screenCharts";
 
-onMounted(()=>{
-  initChart()
+onMounted(async () => {
+  await getCompanyList()
+  await getData()
 })
 
-const initChart =()=>{
+const data = reactive({
+  queryParams: {
+    companyId: null
+  },
+  companyList: [],
+  totalCount: 0
+})
+const getCompanyList = async (val)=>{
+  if(val){
+    const queryParams = {
+      name: val
+    }
+    const res = await getCompany(queryParams)
+    if (res.code == 200) {
+      data.companyList = res.data.list
+    } else {
+      ElMessage.warning(res.message)
+    }
+  }else {
+    const queryParams = {
+      pageNum: 1,
+      pageSize: 999
+    }
+    const res = await getCompany(queryParams)
+    if (res.code == 200) {
+      data.companyList = res.data.list
+      if(data.queryParams.companyId == null){
+        data.queryParams.companyId = data.companyList[0].id
+      }
+    } else {
+      ElMessage.warning(res.message)
+    }
+  }
+}
+
+
+const getData = async ()=>{
+const res = await getDayUseStatistic(data.queryParams.companyId)
+  if (res.code == 200) {
+    initChart(res.data || [])
+    data.totalCount = res.data.find(i=>i.totalCount >0)?.totalCount || 0
+  } else {
+    ElMessage.warning(res.message)
+  }
+}
+
+const initChart = (data) => {
   var chartDom = document.getElementById('main');
   var myChart = echarts.init(chartDom);
   var option;
@@ -34,8 +103,8 @@
     ],
     xAxis: {
       type: 'category',
-      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
-      axisLabel:{
+      data: data.map(i=>i.hour + ':00'),
+      axisLabel: {
         color: '#fff'
       },
       axisTick: {
@@ -45,12 +114,12 @@
     yAxis: {
       type: 'value',
       splitLine: {
-        lineStyle:{
+        lineStyle: {
           color: 'rgba(255,255,255,.1)',
           type: 'dashed'
         }
       },
-      axisLabel:{
+      axisLabel: {
         color: 'rgba(255,255,255,.6)'
       }
     },
@@ -63,19 +132,19 @@
     ],
     series: [
       {
-        data: [150, 230, 224, 218, 135, 147, 260],
+        data: data.map(i=>i.count),
         type: 'line',
-        label:{
+        label: {
           show: true,
           color: '#fff',
           textBorderColor: 'transparent',
           fontSize: 8
         },
         // showSymbol: false,
-        lineStyle:{
+        lineStyle: {
           color: '#54d5ff'
         },
-        itemStyle:{
+        itemStyle: {
           color: '#54d5ff',
         }
       }
@@ -94,41 +163,63 @@
   font-style: normal;
   font-weight: normal;
 }
-.charts-container{
+
+.charts-container {
   width: 100%;
   height: 100%;
   display: flex;
   flex-direction: column;
 }
-  .top{
-    width: 100%;
-    font-size: 14px;
-    height: 50px;
-    line-height: 50px;
-    text-align: center;
-    margin: 10px 0 20px;
 
-    span{
-      display: inline-block;
-      font-family: "LKJH";
-      vertical-align: middle;
-      font-size: 28px;
-      color: yellow;
-      margin: 0 5px;
-      padding: 5px 10px;
-      letter-spacing: 4px;
-      border-top: 1px solid #155285;
-      border-bottom: 1px solid #155285;
-      background:
-          url('../../../../assets/bigScreen/numberBg.png') left center no-repeat,
-          url('../../../../assets/bigScreen/numberBg.png') right center no-repeat;
-      background-size: 1px 100%;
+.top {
+  width: 100%;
+  font-size: 14px;
+  height: 50px;
+  line-height: 50px;
+  text-align: center;
+  margin: 10px 0 20px;
+
+  span {
+    display: inline-block;
+    font-family: "LKJH";
+    vertical-align: middle;
+    font-size: 28px;
+    color: yellow;
+    margin: 0 5px;
+    padding: 5px 10px;
+    letter-spacing: 4px;
+    border-top: 1px solid #155285;
+    border-bottom: 1px solid #155285;
+    background: url('../../../../assets/bigScreen/numberBg.png') left center no-repeat,
+    url('../../../../assets/bigScreen/numberBg.png') right center no-repeat;
+    background-size: 1px 100%;
+  }
+}
+
+#main {
+  flex: 1;
+  width: 100%;
+}
+:deep(.el-input__wrapper){
+  height: 28px;
+  box-shadow: none;
+  border: 1px solid #11FEEE;
+  background: rgba(6,24,88,.6);
+  color: #fff;
+}
+:deep(.el-input__inner){
+  color: #02CDE6;
+}
+:deep(.el-input .el-select__caret){
+  color: #02CDE6
+}
+:deep(.el-popper.is-light){
+  background: rgb(8,44,97);
+  .el-select-dropdown__item{
+    color: #fff;
+    &:hover{
+      background: #015fb0;
     }
   }
-
-  #main{
-    flex: 1;
-    width: 100%;
-
-  }
-</style>
+}
+</style>
\ No newline at end of file

--
Gitblit v1.9.2