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/leftTop.vue |  148 +++++++++++++++++++++++++++++-------------------
 1 files changed, 89 insertions(+), 59 deletions(-)

diff --git a/src/views/hazardousChemicals/bigScreen/components/leftTop.vue b/src/views/hazardousChemicals/bigScreen/components/leftTop.vue
index 1c95347..d787bd5 100644
--- a/src/views/hazardousChemicals/bigScreen/components/leftTop.vue
+++ b/src/views/hazardousChemicals/bigScreen/components/leftTop.vue
@@ -1,25 +1,89 @@
 <template>
   <div class="charts-container">
-    <div class="top">
-      共计<span>41515152</span>人/次
-    </div>
-    <el-select v-model="lineQuery.companyId" :teleported="false" placeholder="Select" size="small">
-      <el-option :key="1" label="公司一" :value="1"/>
+    <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>{{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 lineQuery = {
-  companyId: 1
+
+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 initChart = () => {
+
+
+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;
@@ -39,7 +103,7 @@
     ],
     xAxis: {
       type: 'category',
-      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
+      data: data.map(i=>i.hour + ':00'),
       axisLabel: {
         color: '#fff'
       },
@@ -68,7 +132,7 @@
     ],
     series: [
       {
-        data: [150, 230, 224, 218, 135, 147, 260],
+        data: data.map(i=>i.count),
         type: 'line',
         label: {
           show: true,
@@ -137,58 +201,24 @@
   width: 100%;
 }
 :deep(.el-input__wrapper){
-  height: 24px;
+  height: 28px;
   box-shadow: none;
   border: 1px solid #11FEEE;
   background: rgba(6,24,88,.6);
   color: #fff;
-
-  .el-icon{
-    display: none;
-    color: #fff;
-  }
 }
-</style>
-<style lang="scss">
-.charts-container{
-  :deep(.el-input__wrapper){
-    height: 24px;
-    box-shadow: none;
-    border: 1px solid #11FEEE;
-    background: rgba(6,24,88,.6);
+: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;
-  }
-  .el-select {
-    width: 100%;
-    height: 24px;
-    input.el-input__inner{
-      font-size: 10px;
-      color: #fff !important
-    }
-    .el-icon{
-      display: none;
-      color: #fff;
-    }
-  }
-  :deep(.el-popper){
-    background: rgba(10,31,92,1) !important;
-    border: 1px solid rgba(17,254,238,.4);
-    color: #11FEEE;
-
-    .el-icon{
-      color: #11FEEE;
-    }
-    .el-select-dropdown__item{
-      color: #11FEEE;
-    }
-    .el-select-dropdown__item.hover{
-      background: #0049af;
-    }
-  }
-  ::v-deep(.el-popper__arrow){
-    &::before{
-      background-color: rgba(10,31,92,.6) !important;
-      border: 1px solid rgba(17,254,238,.4);
+    &:hover{
+      background: #015fb0;
     }
   }
 }

--
Gitblit v1.9.2