From cd84a28754fc1b3fadb7027245333d6d3ff330a3 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期一, 19 八月 2024 17:22:53 +0800
Subject: [PATCH] bug修改

---
 src/views/hazardousChemicals/homePage/index.vue |  206 ++++++++++++++++++++++++++++-----------------------
 1 files changed, 112 insertions(+), 94 deletions(-)

diff --git a/src/views/hazardousChemicals/homePage/index.vue b/src/views/hazardousChemicals/homePage/index.vue
index ea7e813..b2975db 100644
--- a/src/views/hazardousChemicals/homePage/index.vue
+++ b/src/views/hazardousChemicals/homePage/index.vue
@@ -43,65 +43,51 @@
       </el-row>
     </div>
     <div>
-      <el-row :gutter="20" justify="space-between" style="margin-bottom: 15px">
-        <el-col :xl="12" :lg="12" :md="24" :sm="24" :xs="24">
-          <el-card>
-            <span style="font-size: 18px;font-weight: 600;margin-left: 45%">超期预警</span>
-            <el-table height="320" v-loading="data.wloading" :data="data.warningData" style="margin-top: 15px">
-              <el-table-column label="序号" type="index" align="center" width="80" />
-              <el-table-column label="生成时间" prop="createTime" align="center"  />
-              <el-table-column label="领用人" prop="createName" align="center" />
-              <el-table-column label="领用时间" prop="useTime" align="center" />
-              <el-table-column label="最后流转时间" prop="updateTime" align="center" width="180"  />
-              <el-table-column label="处理时间" prop="handleTime" align="center" />
-              <el-table-column label="状态" prop="name" align="center" >
-                <template #default="scope">
-                  <span>{{scope.row.state === 0 ? '未处理':'已处理'}}</span>
-                </template>
-              </el-table-column>
-            </el-table>
-            <pagination
-                :total="data.wTotal"
-                v-model:page="data.warningQueryParams.pageNum"
-                v-model:limit="data.warningQueryParams.pageSize"
-                @pagination="getWarningData"
-            />
+      <el-row :gutter="20" justify="space-between" >
+        <el-col :xl="12" :lg="12" :md="24" :sm="24" :xs="24" style="margin-bottom: 15px">
+          <el-card style="height: 500px;overflow: auto">
+              <span style="font-size: 18px;font-weight: 600;margin-bottom: -5px">危化品动态</span>
+              <el-divider style="margin: 15px 0"></el-divider>
+              <div style="padding: 10px;" v-if="data.hazmatData && data.hazmatData.length >0">
+                <div v-for="(item,index) in data.hazmatData" :key="index" style="display: flex;flex-direction: column">
+                  <div style="display: flex">
+                    <img :src="avator" style="width: 25px;height: 25px" />
+                    <div style="display: flex;flex-direction: column;margin-left: 20px">
+                      <span style="font-size: 16px;font-weight: 600">{{item.description}}&nbsp;
+                        <span style="color: #03752e" v-if="item.num > 0">{{item.num >0 ? '+' + item.num: item.num}}{{item.unit}}</span>
+                        <span style="color: #f6828e" v-else>{{item.num}}{{item.unit}}</span>
+                      </span>
+                      <span style="font-size: 14px;color: #8a8f97;margin-top: 5px">{{item.updateTime}}</span>
+                    </div>
+                  </div>
+                  <el-divider style="margin: 15px 0" v-if="index != data.hazmatData.length-1"></el-divider>
+                </div>
+              </div>
+            <div v-else>
+              <el-empty description="暂无数据" style="margin-top: 10%"></el-empty>
+            </div>
           </el-card>
-
         </el-col>
         <el-col :xl="12" :lg="12" :md="24" :sm="24" :xs="24">
-          <el-card>
-            <span style="font-size: 18px;font-weight: 600;margin-left: 45%">危化品使用</span>
-            <el-table height="320" v-loading="data.hloading" :data="data.hazmatData" style="margin-top: 15px">
-              <el-table-column label="名称" prop="name" align="center" />
-              <el-table-column label="产品编号" prop="hazmatBasic.productSn" align="center"  />
-              <el-table-column label="CAS" prop="hazmatBasic.cas" align="center"/>
-              <el-table-column label="试剂类型" prop="hazmatBasic.hazmatType" align="center"/>
-              <el-table-column label="危险性质" prop="hazmatBasic.hazmatCharacter" align="center"/>
-              <el-table-column label="供应商" prop="hazmatBasic.supplier" align="center"/>
-              <el-table-column label="厂家" prop="hazmatBasic.manufacturer" align="center"/>
-              <el-table-column label="规格" prop="hazmatBasic.hazmatCharacter" align="center"/>
-              <el-table-column label="包装" prop="hazmatBasic.metering" align="center">
-                <template #default="scope">
-                  <span>{{scope.row.hazmatBasic.metering}}{{scope.row.hazmatBasic.unit}}</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="含税售价" prop="hazmatBasic.price" align="center"/>
-              <el-table-column label="每箱数量" prop="hazmatBasic.perBox" align="center"/>
-              <el-table-column label="最小包装类型" prop="minPackage" align="center" width="220">
-                <template #default="scope">
-                  <span>{{scope.row.hazmatBasic.minPackage == 0 ? '瓶' :scope.row.hazmatBasic.minPackage == 1?'袋':scope.row.hazmatBasic.minPackage == 2?'桶 ':scope.row.hazmatBasic.minPackage == 3?'盒':scope.row.hazmatBasic.minPackage == 4?'箱':'其他'}}</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="安全库存" prop="hazmatBasic.safeNum" align="center"/>
-              <el-table-column label="超期阈值(小时)" prop="hazmatBasic.threshold" align="center" width="220"/>
-            </el-table>
-            <pagination
-                :total="data.hTotal"
-                v-model:page="data.hazmatQueryParams.pageNum"
-                v-model:limit="data.hazmatQueryParams.pageSize"
-                @pagination="getHazmatUseData"
-            />
+          <el-card style="height: 500px;overflow: auto">
+            <span style="font-size: 18px;font-weight: 600;margin-bottom: -5px">超期预警</span>
+            <el-divider style="margin: 15px 0"></el-divider>
+            <div style="padding: 10px;" v-if="data.warningData && data.warningData.length >0">
+              <div v-for="(item,index) in data.warningData" :key="index" style="display: flex;flex-direction: column">
+                <div style="display: flex">
+                  <img :src="avator" style="width: 25px;height: 25px" />
+                  <div style="display: flex;flex-direction: column;margin-left: 20px">
+                      <span style="font-size: 16px;font-weight: 600">{{item.description}}
+                      </span>
+                    <span style="font-size: 14px;color: #8a8f97;margin-top: 5px">{{item.useTime}}</span>
+                  </div>
+                </div>
+                <el-divider style="margin: 15px 0" v-if="index != data.hazmatData.length-1"></el-divider>
+              </div>
+            </div>
+            <div v-else>
+              <el-empty description="暂无数据" style="margin-top: 10%"></el-empty>
+            </div>
           </el-card>
         </el-col>
       </el-row>
@@ -110,7 +96,7 @@
 </template>
 <script setup>
 import { CountTo } from 'vue3-count-to'
-import img1 from '@/assets/images/file.png'
+import avator from '@/assets/images/avator.png'
 import hazmat from '@/assets/logo/hazmat.png'
 import warehouse from '@/assets/logo/warehouse.png'
 import warning from '@/assets/logo/warning1.png'
@@ -121,6 +107,7 @@
 import {ElMessage} from "element-plus";
 import {getEntryData, getHazmatUseList, getHoData, getMaxUseData, getUseData} from "@/api/hazardousChemicals/count";
 import {getWarning} from "@/api/hazardousChemicals/warning";
+import {getRawFlow} from "@/api/hazardousChemicals/rawRecord";
 const data = reactive({
   cardList: [
     {
@@ -153,6 +140,7 @@
     },
   ],
   maxUseList: [],
+  maxUseName: [],
   useXData: [],
   useYData: [],
   entryXData: [],
@@ -160,7 +148,7 @@
   warningData: [],
   warningQueryParams: {
     pageNum: 1,
-    pageSize: 5
+    pageSize: 10
   },
   wTotal: 0,
   wloading: false,
@@ -170,7 +158,7 @@
     pageNum: 1,
     pageSize: 10
   },
-  hazmatData: []
+  hazmatData: [],
 
 });
 const myChart = shallowRef(null)
@@ -186,25 +174,35 @@
   await useData()
   await maxUseData()
   await getWarningData()
-  await getHazmatUseData()
+  await getHazmatFlowData()
 });
 const getWarningData = async () => {
   data.wloading = true
   const res = await getWarning(data.warningQueryParams)
   if(res.code == 200){
-    data.warningData =res.data.list
-    data.wTotal = res.data.total
+    data.warningData =res.data.list.map(item => {
+      return {
+        ...item,
+        description: `${item.createName} 领用了 ${item.hazmatBasic.name} 状态:${item.state ==0?'未处理':'已处理' }`
+      }
+    })
   }else{
     ElMessage.warning(res.message)
   }
   data.wloading = false
 }
-const getHazmatUseData = async () => {
+const getHazmatFlowData = async () => {
   data.hloading = true
-  const res = await getHazmatUseList(data.hazmatQueryParams)
+  const res = await getRawFlow(data.hazmatQueryParams)
   if(res.code == 200){
-    data.hazmatData =res.data.list
-    data.hTotal = res.data.total
+    data.hazmatData =res.data.list.map(item => {
+      return {
+        ...item,
+        unit:item.hazmatBasic.unit,
+        description: `${item.user.departName ? item.user.departName +'部门' : ''}   ${item.user.name}  进行了  ${item.state ==0?'批量导入': item.state ==1?'取用' :item.state ==2?'归还':item.state ==3?'标签作废' :''} ${item.hazmatBasic.name}`
+      }
+    })
+    console.log('data.hazmatData',data.hazmatData)
   }else{
     ElMessage.warning(res.message)
   }
@@ -250,6 +248,7 @@
         name: item.name
       }
     })
+    data.maxUseName = res.data.map(item => item.name)
     await getPieChart()
   }else{
     ElMessage.warning(res.message)
@@ -260,34 +259,39 @@
     myChart.value.dispose();
   }
   myChart.value = echarts.init(document.getElementById(pieChart.value));
-  const option = {
-    title: {
-      text: '近一周频繁使用的危化品量',
-      left: 'center'
-    },
-    tooltip: {
-      trigger: 'item'
-    },
-    legend: {
-      orient: 'vertical',
-      left: 'left'
-    },
-    series: [
-      {
-        name: 'Access From',
-        type: 'pie',
-        radius: '50%',
-        data: data.maxUseList,
-        emphasis: {
-          itemStyle: {
-            shadowBlur: 10,
-            shadowOffsetX: 0,
-            shadowColor: 'rgba(0, 0, 0, 0.5)'
-          }
+  let option;
+    option = {
+      title: {
+        text: '近一周频繁使用的危化品量',
+        left: 'center'
+      },
+      tooltip: {
+        trigger: 'item'
+      },
+      legend: {
+        orient: 'vertical',
+        left: 'left'
+      },
+      series: [
+        {
+          name: '',
+          type: 'pie',
+          radius: '50%',
+          data: data.maxUseList,
+          emphasis: {
+            itemStyle: {
+              shadowBlur: 10,
+              shadowOffsetX: 0,
+              shadowColor: 'rgba(0, 0, 0, 0.5)'
+            }
+          },
+          // showEmptyCircle: false,
         }
-      }
-    ]
-  };
+      ]
+    };
+
+
+
   // 使用刚指定的配置项和数据显示图表。
   myChart.value.setOption(option,true);
   //自适应宽度
@@ -422,7 +426,21 @@
     }
 
   }
-
+  ::-webkit-scrollbar {
+    width: 5px;
+    height: 5px;
+    background-color: #ffffff;
+    opacity: 0;
+  }
+  ::-webkit-scrollbar-track {
+    border-radius: 10px;
+    background-color: #ffffff;
+  }
+  ::-webkit-scrollbar-thumb {
+    border-radius: 10px;
+    /*-webkit-box-shadow: inset 0 0 6px rgba(154,154,154,.3);*/
+    background-color: #ffffff;
+  }
 }
 
 </style>

--
Gitblit v1.9.2