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/index.vue                  |    8 
 src/views/hazardousChemicals/bigScreen/components/leftBottom.vue  |  102 ++++++-
 src/views/hazardousChemicals/bigScreen/components/midTop.vue      |  174 +++++++++----
 src/views/hazardousChemicals/bigScreen/components/rightBottom.vue |  185 +++++++++++---
 src/api/monitor/screenCharts.js                                   |   37 +++
 src/views/hazardousChemicals/traceableQuery/index.vue             |    3 
 src/views/hazardousChemicals/bigScreen/components/rightTop.vue    |   38 ++-
 src/views/hazardousChemicals/bigScreen/components/leftTop.vue     |  148 +++++++----
 src/views/hazardousChemicals/bigScreen/components/midBottom.vue   |   25 +
 9 files changed, 511 insertions(+), 209 deletions(-)

diff --git a/src/api/monitor/screenCharts.js b/src/api/monitor/screenCharts.js
new file mode 100644
index 0000000..a583e64
--- /dev/null
+++ b/src/api/monitor/screenCharts.js
@@ -0,0 +1,37 @@
+import request from '@/utils/request'
+
+// 大屏接口
+export function getDayUseStatistic(id) {
+  return request({
+    url: '/statistic/dayUseStatistic?companyId=' + id,
+    method: 'get'
+  })
+}
+
+export function getTaBooWarning(type) {
+  return request({
+    url: '/taBooWarning/listCount?state=' + type,
+    method: 'get'
+  })
+}
+
+export function getBasicCount() {
+  return request({
+    url: '/hazmat-basic/basicCount',
+    method: 'get'
+  })
+}
+
+export function getCompanyMessage(type) {
+  return request({
+    url: '/statistic/companyMessage?type=' + type,
+    method: 'get'
+  })
+}
+
+export function getDailywarningCount() {
+  return request({
+    url: '/warning/dailywarningCount',
+    method: 'get'
+  })
+}
\ No newline at end of file
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
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;
     }
   }
 }
diff --git a/src/views/hazardousChemicals/bigScreen/components/midBottom.vue b/src/views/hazardousChemicals/bigScreen/components/midBottom.vue
index 43ffc1f..eca8b81 100644
--- a/src/views/hazardousChemicals/bigScreen/components/midBottom.vue
+++ b/src/views/hazardousChemicals/bigScreen/components/midBottom.vue
@@ -6,12 +6,29 @@
 <script setup>
 import * as echarts from 'echarts';
 import {onMounted} from "vue";
+import {getCompanyMessage, getDailywarningCount} from "@/api/monitor/screenCharts";
+import {ElMessage} from "element-plus";
 
 onMounted(()=>{
-  initChart()
+  getList()
+
 })
 
-const initChart =()=>{
+
+const getList = async () => {
+  const res = await getDailywarningCount()
+  if(res.code == 200){
+    if(res.data && Array.isArray(res.data) && res.data.length>0){
+      initChart(res.data)
+    }else{
+      initChart([])
+    }
+  }else{
+    ElMessage.warning(res.message)
+  }
+}
+
+const initChart =(data)=>{
   var chartDom = document.getElementById('preWarning');
   var myChart = echarts.init(chartDom);
   var option;
@@ -31,7 +48,7 @@
     ],
     xAxis: {
       type: 'category',
-      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
+      data: data.map(i=>i.day) || [],
       axisLabel:{
         color: '#fff'
       },
@@ -60,7 +77,7 @@
     ],
     series: [
       {
-        data: [150, 230, 224, 218, 135, 147, 260],
+        data: data.map(i=>i.count) || [],
         type: 'line',
         label:{
           show: true,
diff --git a/src/views/hazardousChemicals/bigScreen/components/midTop.vue b/src/views/hazardousChemicals/bigScreen/components/midTop.vue
index 2895e47..4a26014 100644
--- a/src/views/hazardousChemicals/bigScreen/components/midTop.vue
+++ b/src/views/hazardousChemicals/bigScreen/components/midTop.vue
@@ -1,34 +1,56 @@
 <template>
   <div class="charts-container">
-    <div class="table-wrapper">
-      <table class="scrollable-table">
-        <thead>
-        <tr>
-          <th>排名</th>
-          <th>企业名称</th>
-          <th>危化品仓库</th>
-          <th>预警信息</th>
-        </tr>
-        </thead>
-      </table>
-      <div class="scroll-viewport" ref="viewport">
-        <div class="scroll-content" :style="contentStyle">
-          <table class="scrollable-table">
-            <tbody>
-            <tr v-for="item in companyData" :key="item.id">
-              <td>{{ item.rank }}</td>
-              <td>{{ item.company }}</td>
-              <td>{{ item.warehouse }}</td>
-              <td :class="{'warning': item.warning}">{{ item.warning || '无' }}</td>
-            </tr>
-            <tr v-for="item in loopData" :key="`loop-${item.id}`">
-              <td>{{ item.rank }}</td>
-              <td>{{ item.company }}</td>
-              <td>{{ item.warehouse }}</td>
-              <td :class="{'warning': item.warning}">{{ item.warning || '无' }}</td>
-            </tr>
-            </tbody>
-          </table>
+    <div class="container-left">
+      <div class="filter">
+        <el-select
+            clearable
+            :teleported="false"
+            v-model="companyType"
+            filterable
+            placeholder="请选择企业类型"
+            style="width: 100%"
+            remote
+            remote-show-suffix
+            :remote-method="getList"
+        >
+          <el-option
+              v-for="item in typeList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+          />
+        </el-select>
+      </div>
+      <div class="table-wrapper">
+        <table class="scrollable-table">
+          <thead>
+          <tr>
+            <th>序号</th>
+            <th>企业名称</th>
+            <th>危化品仓库</th>
+            <th>预警信息</th>
+          </tr>
+          </thead>
+        </table>
+        <div class="scroll-viewport" ref="viewport">
+          <div class="scroll-content" :style="contentStyle">
+            <table class="scrollable-table">
+              <tbody>
+              <tr v-for="(item,index) in companyData" :key="item.id">
+                <td>{{ index + 1 }}</td>
+                <td>{{ item.companyName }}</td>
+                <td>{{ item.warehouseCount }}</td>
+                <td>{{ item.warningCount }}</td>
+              </tr>
+              <tr v-for="(item,index) in loopData" :key="`loop-${item.id}`">
+                <td>{{ index + 1 }}</td>
+                <td>{{ item.companyName }}</td>
+                <td>{{ item.warehouseCount }}</td>
+                <td>{{ item.warningCount }}</td>
+              </tr>
+              </tbody>
+            </table>
+          </div>
         </div>
       </div>
     </div>
@@ -41,32 +63,19 @@
 import SUZHOU from './map.json'
 import {getAvoidList} from "@/api/hazardousChemicals/avoid";
 import {ElMessage} from "element-plus";
+import {getCompanyMessage} from "@/api/monitor/screenCharts";
 // 表格数据
-const companyData = [
-  { id: 1, rank: 1, company: '化工企业A', warehouse: '仓库1', warning: '相忌预警' },
-  { id: 2, rank: 2, company: '化工企业B', warehouse: '仓库2', warning: '' },
-  { id: 3, rank: 3, company: '化工企业C', warehouse: '仓库3', warning: '超期预警' },
-  { id: 4, rank: 4, company: '化工企业D', warehouse: '仓库4', warning: '' },
-  { id: 5, rank: 5, company: '化工企业E', warehouse: '仓库5', warning: '' },
-  { id: 6, rank: 6, company: '化工企业F', warehouse: '仓库6', warning: '超期预警' },
-  { id: 7, rank: 7, company: '化工企业G', warehouse: '仓库7', warning: '' },
-  { id: 8, rank: 8, company: '化工企业H', warehouse: '仓库8', warning: '' },
-  { id: 9, rank: 9, company: '化工企业I', warehouse: '仓库9', warning: '' },
-  { id: 10, rank: 10, company: '化工企业J', warehouse: '仓库10', warning: '' },
-  { id: 11, rank: 11, company: '化工企业K', warehouse: '仓库11', warning: '' },
-  { id: 12, rank: 12, company: '化工企业L', warehouse: '仓库12', warning: '' },
-]
-// const companyData = ref([])
+const companyData = ref([])
 // 配置参数
 const visibleRows = 8 // 显示的行数
-const scrollSpeed = 1 // 每次滚动的像素数
+const scrollSpeed = 0.5 // 每次滚动的像素数
 const rowHeight = 40 // 行高,与CSS一致
 const viewport = ref(null)
 const scrollPosition = ref(0)
 let animationFrame = null
 
 onMounted(()=>{
-  // getList()
+  getList()
   initChart()
   // 设置视口高度
   if (viewport.value) {
@@ -84,19 +93,35 @@
   }
 })
 
-// const getList = async () => {
-//   const res = await getAvoidList({warningType: '', companyId: null})
-//   if(res.code == 200){
-//     companyData.value = res.data
-//     console.log(companyData.value,555)
-//   }else{
-//     ElMessage.warning(res.message)
-//   }
-// }
+const companyType = ref('')
+const typeList = [
+  {
+    id: 0,
+    name: '研发类'
+  },
+  {
+    id: 1,
+    name: '生产类'
+  },
+  {
+    id: 2,
+    name: '中试类'
+  }
+]
+
+const getList = async () => {
+  const res = await getCompanyMessage(companyType.value)
+  if(res.code == 200){
+    companyData.value = res.data
+    // console.log(companyData.value,555)
+  }else{
+    ElMessage.warning(res.message)
+  }
+}
 
 // 复制前几行数据用于循环
 const loopData = computed(() => {
-  return companyData.slice(0, visibleRows)
+  return companyData.value.slice(0, visibleRows)
 })
 
 // 内容区域样式
@@ -108,7 +133,7 @@
 
 // 滚动动画
 const scrollAnimation = () => {
-  const totalHeight = companyData.length * rowHeight
+  const totalHeight = companyData.value.length * rowHeight
   const loopHeight = loopData.value.length * rowHeight
   // 更新滚动位置
   scrollPosition.value += scrollSpeed
@@ -265,10 +290,43 @@
   display: flex;
   align-items: flex-start;
 }
+
+.container-left{
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  width: 300px;
+}
+
+.filter{
+  width: 300px;
+}
+: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;
+    }
+  }
+}
 .table-wrapper {
   position: relative;
   width: 300px;
-  margin-top: 30px;
+  margin-top: 10px;
   border: 1px solid rgba(255,255,255,.1);
   border-radius: 2px;
   overflow: hidden;
diff --git a/src/views/hazardousChemicals/bigScreen/components/rightBottom.vue b/src/views/hazardousChemicals/bigScreen/components/rightBottom.vue
index 9b90629..06c9624 100644
--- a/src/views/hazardousChemicals/bigScreen/components/rightBottom.vue
+++ b/src/views/hazardousChemicals/bigScreen/components/rightBottom.vue
@@ -1,14 +1,25 @@
 <template>
   <div class="charts-container">
     <div class="filter">
-      <el-input
-          v-model="queryParams.code"
-          placeholder="请输入流向码"
+      <el-select
           clearable
-      />
-          <div class="search-btn">
-            查询
-          </div>
+          v-model="data.queryParams.companyId"
+          filterable
+          placeholder="请选择企业"
+          style="flex: 3"
+          :teleported="false"
+      >
+        <el-option
+            v-for="item in data.companyList"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+        />
+      </el-select>
+      <el-input v-model="data.queryParams.code" placeholder="请输入流向码"></el-input>
+      <div class="search-btn" @click="getList">
+        查询
+      </div>
     </div>
     <div class="table-wrapper">
     <table class="data-table">
@@ -21,11 +32,11 @@
       </tr>
       </thead>
       <tbody>
-      <tr v-for="(item, index) in dataList" :key="index">
-        <td>{{ item.company }}</td>
-        <td>{{ item.flowType }}</td>
-        <td>{{ item.person }}</td>
-        <td>{{ item.time }}</td>
+      <tr v-for="(item, index) in data.dataList" :key="index">
+        <td>{{ data.companyList.find(i=>i.id == item.companyId)?.name }}</td>
+        <td class="state-describe" :class="{'orange': item.stateName == '取用' || item.stateName == '销售','red': item.stateName == '标签作废'|| item.stateName == '用尽登记'}">{{ item.stateName }}</td>
+        <td>{{ item.user.name }}</td>
+        <td>{{ item.updateTime }}</td>
       </tr>
       </tbody>
     </table>
@@ -33,15 +44,80 @@
   </div>
 </template>
 <script setup>
-import {onMounted, reactive} from "vue";
+import {nextTick, onMounted, reactive} from "vue";
+import {ElMessage} from "element-plus";
+import {getBasicCount} from "@/api/monitor/screenCharts";
+import {getAllRawFlow} from "@/api/hazardousChemicals/rawRecord";
+import {getFlowByCode} from "@/api/hazardousChemicals/productRecord";
+import {getCompany} from "@/api/hazardousChemicals/company";
 
-onMounted(()=>{
-  getList()
+onMounted(async()=>{
+  await getCompanyList()
 })
 
-const queryParams = reactive({
-  code: ''
+const data = reactive({
+  companyList: [],
+  queryParams: {
+    companyId: null,
+    code: ''
+  },
+  dataList: []
 })
+
+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
+    } else {
+      ElMessage.warning(res.message)
+    }
+  }
+}
+
+const getList = async () => {
+  if(!data.queryParams.companyId){
+    ElMessage.warning('请输入企业名称')
+    return
+  }
+  if(data.queryParams.code==''){
+    ElMessage.warning('请输入二维码编号')
+    return
+  }
+  const res = await getFlowByCode(data.queryParams)
+  if(res.code == 200){
+    if(res.data && res.data.length>0){
+      if(res.data[0].hazmatBasic){
+        console.log(res.data,'data')
+        data.dataList = res.data.map(item => {
+          return {
+            ...item,
+            stateName: item.state ==0 ?'入库': item.state ==1 ? '取用' :item.state ==2 ? '归还': item.state ==3 ? '标签作废' : item.state ==4 ? '用尽登记':item.state ==5 ? '销售' : item.state ==6? '零头入库':'',
+          }
+        })
+      }
+    }else {
+      data.dataList = []
+    }
+  }else{
+    ElMessage.warning(res.message)
+  }
+}
+
 const dataList = [
   { company: '化工企业A', flowType: '出库', person: '张三', time: '2023-05-10 09:30' },
   { company: '化工企业B', flowType: '入库', person: '李四', time: '2023-05-10 10:15' },
@@ -53,9 +129,6 @@
   { company: '化工企业H', flowType: '入库', person: '吴十', time: '2023-05-10 17:05' },
   { company: '化工企业I', flowType: '出库', person: '郑十一', time: '2023-05-11 08:30' }
 ]
-const getList = ()=>{
-
-}
 const reset=()=>{
 
 }
@@ -78,12 +151,6 @@
     margin-bottom: 20px;
     .el-input{
       flex: 3;
-      border: 1px solid blue !important;
-      border-color: blue !important;
-    }
-    :deep(.el-input__wrapper){
-      background-color: rgba(0,0,0,0);
-      border-color: blue !important;
     }
     .search-btn{
       flex: 1;
@@ -98,6 +165,28 @@
       color: #fff
     }
   }
+  :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;
+      }
+    }
+  }
   .table-wrapper {
     width: 100%;
     height: 320px;
@@ -108,29 +197,35 @@
 
   .data-table {
     width: 100%;
-    height: 100%;
     border-collapse: collapse;
     font-size: 14px;
+
+    th,td {
+      padding: 10px;
+      font-size: 12px;
+      color: #fff;
+      text-align: left;
+      height: 24px;
+      border-bottom: 1px solid rgba(255,255,255,.1);
+    }
+    .state-describe{
+      color: #00ff00
+    }
+    .red{
+      color: #ff4848
+    }
+    .orange{
+      color: #aeff00
+    }
+    th {
+      position: sticky;
+      top: 0;
+      background-color: rgb(6,38,87); /* 无背景色 */
+      font-weight: normal;
+      color: #fff;
+    }
   }
 
-  .data-table th,
-  .data-table td {
-    padding: 10px;
-    font-size: 12px;
-    color: #fff;
-    text-align: left;
-    border-bottom: 1px solid rgba(255,255,255,.1);
-  }
-
-  .data-table th {
-    position: sticky;
-    top: 0;
-    background-color: rgb(6,38,87); /* 无背景色 */
-    font-weight: normal;
-    color: #fff;
-  }
-
-  /* 精简滚动条样式 */
   .table-wrapper::-webkit-scrollbar {
     width: 0;
   }
diff --git a/src/views/hazardousChemicals/bigScreen/components/rightTop.vue b/src/views/hazardousChemicals/bigScreen/components/rightTop.vue
index 6b5a76f..9132f16 100644
--- a/src/views/hazardousChemicals/bigScreen/components/rightTop.vue
+++ b/src/views/hazardousChemicals/bigScreen/components/rightTop.vue
@@ -6,12 +6,33 @@
 <script setup>
 import * as echarts from 'echarts';
 import {onMounted} from "vue";
+import {ElMessage} from "element-plus";
+import {getBasicCount} from "@/api/monitor/screenCharts";
 
 onMounted(()=>{
-  initChart()
+  getPieData()
 })
 
-const initChart =()=>{
+const getPieData = async ()=>{
+  const res = await getBasicCount()
+  if (res.code == 200) {
+    if(res.data && Array.isArray(res.data) && res.data.length>0){
+      let data = res.data.map(i=>{
+        return {
+          name: i.hazmatCharacter,
+          value: i.count,
+        }
+      })
+      initChart(data)
+    }else{
+      initChart([])
+    }
+  } else {
+    ElMessage.warning(res.message)
+  }
+}
+
+const initChart =(data)=>{
   var chartDom = document.getElementById('typePie');
   var myChart = echarts.init(chartDom);
   var option;
@@ -35,7 +56,7 @@
       {
         type: 'pie',
         radius: [20, 100],
-        center: ['50%', '45%'],
+        center: ['50%', '40%'],
         roseType: 'area',
         itemStyle: {
           borderRadius: 5
@@ -45,16 +66,7 @@
           textBorderWidth: 0,
           formatter: '{d}%'
         },
-        data: [
-          { value: 30, name: 'rose 1' },
-          { value: 28, name: 'rose 2' },
-          { value: 26, name: 'rose 3' },
-          { value: 24, name: 'rose 4' },
-          { value: 22, name: 'rose 5' },
-          { value: 20, name: 'rose 6' },
-          { value: 18, name: 'rose 7' },
-          { value: 16, name: 'rose 8' }
-        ]
+        data: data
       }
     ]
   };
diff --git a/src/views/hazardousChemicals/bigScreen/index.vue b/src/views/hazardousChemicals/bigScreen/index.vue
index 346df89..d052e83 100644
--- a/src/views/hazardousChemicals/bigScreen/index.vue
+++ b/src/views/hazardousChemicals/bigScreen/index.vue
@@ -9,10 +9,10 @@
         <h1 class="dashboard-title">独墅湖科教创新区危化品智慧管控平台</h1>
       </div>
       <div class="header-right">
-        <div class="weather-info">
-          <span class="weather-icon">☀</span>
-          <span class="weather-text">晴 26°C</span>
-        </div>
+<!--        <div class="weather-info">-->
+<!--          <span class="weather-icon">☀</span>-->
+<!--          <span class="weather-text">晴 26°C</span>-->
+<!--        </div>-->
       </div>
     </header>
 
diff --git a/src/views/hazardousChemicals/traceableQuery/index.vue b/src/views/hazardousChemicals/traceableQuery/index.vue
index 138058c..b8e94f5 100644
--- a/src/views/hazardousChemicals/traceableQuery/index.vue
+++ b/src/views/hazardousChemicals/traceableQuery/index.vue
@@ -86,9 +86,6 @@
   }else {
     ElMessage.warning('请先输入二维码编号')
   }
-
-
-
 }
 const getCompanyList = async (val)=>{
   if(val){

--
Gitblit v1.9.2