From 6f1e2acc812b2f40359aabdb5d04648acfcdcef5 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期四, 24 四月 2025 08:40:11 +0800
Subject: [PATCH] 修改

---
 src/views/firework/humiture/index.vue |  233 ++++++++++++++++++++++++---------------------------------
 1 files changed, 99 insertions(+), 134 deletions(-)

diff --git a/src/views/firework/humiture/index.vue b/src/views/firework/humiture/index.vue
index dcb763b..c7b2088 100644
--- a/src/views/firework/humiture/index.vue
+++ b/src/views/firework/humiture/index.vue
@@ -5,52 +5,51 @@
     <div style="margin-top: 10px">
       <el-table v-loading="loading" :data="state.tableList" :border="true">
         <el-table-column label="序号" type="index" align="center" width="80" />
-        <el-table-column label="仓库" prop="createTime" align="center"  />
-        <el-table-column label="库房" prop="basicName" align="center" />
-        <el-table-column label="温度值" prop="tabooBasicName" align="center" />
-        <el-table-column label="同步时间" prop="updateBy" align="center" />
-        <el-table-column label="湿度值" prop="tabooBasicName" align="center" />
-        <el-table-column label="同步时间" prop="updateBy" align="center" />
+        <el-table-column label="仓库" prop="storeName" align="center"  />
+        <el-table-column label="库房" prop="storeroomName" align="center" />
       </el-table>
       <pagination
           v-show="total > 0"
           :total="total"
-          v-model:page="queryParams.pageNum"
+          v-model:page="queryParams.pageIndex"
           v-model:limit="queryParams.pageSize"
           @pagination="getListAll"
       />
     </div>
-    <!--    卡片部分-->
-    <el-scrollbar max-height="420px" style="padding-right: 10px;overflow-x: hidden;" v-if="state.dataList && state.dataList.length >0">
-<!--      <el-row :gutter="20" style="margin-top: 5px;margin-left: 5px">-->
-<!--        <el-col v-for="(item,index) in state.dataList" :key="index" :span="8">-->
-      <div style="display: flex;align-items: center;flex-wrap: wrap">
-        <div v-for="(item,index) in state.dataList" :key="index" style="width: 350px;margin: 20px 30px">
-          <el-card class="card-item " shadow="always">
-            <div style="display: flex;flex-direction: column">
-              <div style="font-size: 18px;font-weight: 700;margin-bottom: 15px">{{item.room}}—{{item.stock}}—{{item.device}}</div>
-              <div style="display: flex;align-items: center">
-                <img src="@/assets/images/device.png" />
-                <div style="display: flex;flex-direction: column">
-                  <div style="display: flex;justify-content: space-between;margin-bottom: 10px">
-                    <span>温度:{{item.warm}}</span>
-                    <el-button type="primary" plain style="margin-left: 15px" @click="openData('温度',item)">历史数据</el-button>
-                  </div>
-                  <div style="display: flex;justify-content: space-between">
-                    <span>湿度:{{item.humidity}}</span>
-                    <el-button type="primary" plain style="margin-left: 15px" @click="openData('湿度',item)">历史数据</el-button>
+    <div style=" border: 1px solid #ebeef5;border-radius: 15px;margin-top: 20px">
+<!--      <span style="font-size: 18px;font-weight: 600;margin-left: 15px;margin-top: 10px"> 设备信息</span>-->
+      <el-scrollbar max-height="420px" style="padding-right: 10px;overflow-x: hidden;" v-if="state.dataList && state.dataList.length >0">
+        <div class="grid-container">
+          <div v-for="(item,index) in state.dataList" :key="index" style="width: 370px;margin: 20px 30px">
+            <el-card class="card-item " shadow="always">
+              <div style="display: flex;flex-direction: column">
+<!--                <div style="font-size: 18px;font-weight: 700;margin-bottom: 25px">{{item.storeName}}—{{item.storeroomName}}—{{item.deviceName}}</div>-->
+                <div class="truncate-text" :title="item.storeName+'—'+item.storeroomName+'—'+item.deviceName">
+                  {{item.storeName}}—{{item.storeroomName}}—{{item.deviceName}}
+                </div>
+                <div style="display: flex;align-items: center;margin-bottom: 15px">
+                  <img src="@/assets/images/device.png" />
+                  <div style="display: flex;flex-direction: column">
+                    <div style="display: flex;justify-content: space-between;margin-bottom: 10px;align-items: center">
+                      <span>温度:{{item.temperatureValue}}℃</span>
+                      <el-button type="primary" plain style="margin-left: 15px" @click="openData('温度',item)">历史数据</el-button>
+                    </div>
+                    <div style="display: flex;justify-content: space-between;align-items: center">
+                      <span>湿度:{{item.humidityValue}}%RH</span>
+                      <el-button type="primary" plain style="margin-left: 15px" @click="openData('湿度',item)">历史数据</el-button>
+                    </div>
                   </div>
                 </div>
               </div>
-            </div>
-          </el-card>
+            </el-card>
+          </div>
         </div>
-      </div>
+      </el-scrollbar>
+      <el-empty v-else description="暂无设备数据" ></el-empty>
+    </div>
+    <!--    卡片部分-->
 
-<!--        </el-col>-->
-<!--      </el-row>-->
-    </el-scrollbar>
-    <el-empty v-else></el-empty>
+
     <d-dialog ref="dialogRef" @getList="getListAll"></d-dialog>
   </div>
 </template>
@@ -59,86 +58,57 @@
 import {onMounted, reactive, ref, toRefs} from "vue";
 import {ElMessage} from "element-plus";
 import dDialog from './components/dataDialog.vue'
+import {getDevice, getRoomByCompany} from "@/api/company/warehouse";
+import Cookies from "js-cookie";
 
 const dialogRef = ref(null)
 const state = reactive({
   queryParams: {
-    pageNum: 1,
+    pageIndex: 1,
     pageSize: 5,
-    warningType: ''
+    filter: {
+      companyName: ''
+    }
   },
   cardQueryParams: {
-    warningType: ''
+    pageIndex: 1,
+    pageSize: 5,
+    filter: {
+      companyCode : '',
+      deviceType: 1
+    }
   },
   total: 0,
-  dataList: [
-    {
-      id: 1,
-      room: '仓库名称',
-      stock: '库存名称',
-      device: '设备1',
-      humidity: '18%RH',
-      warm: '18°'
-    },
-    {
-      id: 1,
-      room: '仓库名称',
-      stock: '库存名称',
-      device: '设备1',
-      humidity: '18%RH',
-      warm: '18°'
-    },
-    {
-      id: 1,
-      room: '仓库名称',
-      stock: '库存名称',
-      device: '设备1',
-      humidity: '18%RH',
-      warm: '18°'
-    },
-    {
-      id: 1,
-      room: '仓库名称',
-      stock: '库存名称',
-      device: '设备1',
-      humidity: '18%RH',
-      warm: '18°'
-    },
-    {
-      id: 1,
-      room: '仓库名称',
-      stock: '库存名称',
-      device: '设备1',
-      humidity: '18%RH',
-      warm: '18°'
-    },
-  ],
+  dataList: [],
   tableList: []
 });
 const { queryParams,cardQueryParams, total, dataList } = toRefs(state);
 const loading = ref(false);
 onMounted(()=>{
+  const info = JSON.parse(Cookies.get('userInfo'))
+  state.queryParams.filter.companyName = info.company
+  state.cardQueryParams.filter.companyCode = info.companynumber
   getListPage()
   getList()
 })
 const getListPage = async () => {
-  // loading.value = true
-  // const res = await getAvoidInfoPage(state.queryParams)
-  // if(res.code == 200){
-  //   state.tableList = res.data.list
-  //   state.total = res.data.total
-  // }else{
-  //   ElMessage.warning(res.message)
-  // }
-  // loading.value = false
+  loading.value = true
+  const res = await getRoomByCompany(state.queryParams)
+  if(res.code == 200){
+    state.tableList = res.result.records
+    state.total = res.result.total
+  }else{
+    ElMessage.warning(res.message)
+  }
+  loading.value = false
 }
 const getList = async () => {
-  // const res = await getAvoidList(state.cardQueryParams)
-  // if(res.code == 200){
-  //   state.dataList = res.data
-  // }else{
-  //   ElMessage.warning(res.message)
-  // }
+  const res = await getDevice(state.cardQueryParams)
+  if(res.code == 200){
+    state.dataList = res.result
+  }else{
+    ElMessage.warning(res.message)
+  }
 }
 const openData = (type,val) => {
   dialogRef.value.openDialog(type,val);
@@ -159,6 +129,15 @@
     margin-bottom: 10px;
     //min-width: 300px;
   }
+  .grid-container{
+    display: grid;
+    grid-template-columns: repeat(auto-fill, minmax(385px, 1fr));
+    gap: 0px;
+    justify-content: start;
+    //padding: 15px;
+    //background: #f7f7f7;
+
+  }
   .title-font{
     display:flex;
     align-items: center;
@@ -166,47 +145,6 @@
     font-size: 14px;
     margin-right: 10px;
     border-radius: 5px
-  }
-  .card-item-red{
-    cursor: pointer;
-    color: #f56c6c;
-    background-color: rgb(254, 240.3, 240.3);
-    border: 1px solid rgb(253, 225.6, 225.6);
-  }
-  .card-item-red-title{
-    cursor: pointer;
-    color: #f56c6c;
-    background-color: rgb(254, 240.3, 240.3);
-    border: 1px solid rgb(253, 225.6, 225.6);
-  }
-  .card-item-red-titleChoose{
-    color: #f6d1d1;
-    background-color: #f55d5d;
-  }
-  .card-item-yellow{
-    color: #e6a23c;
-    background-color: rgb(252.5, 245.7, 235.5);
-    border: 1px solid rgb(250, 236.4, 216);
-  }
-  .card-item-yellow-title{
-    cursor: pointer;
-    color: #f1950b;
-    background-color: rgb(252.5, 245.7, 235.5);
-    border: 1px solid rgb(250, 236.4, 216);
-  }
-  .card-item-yellow-titleChoose{
-    color: #f6e7d1;
-    background-color: #f1a902;
-  }
-  .card-item-blue-title{
-    cursor: pointer;
-    color: #409eff;
-    background-color: rgb(235.9, 245.3, 255);
-    border: 1px solid rgb(216.8, 235.6, 255);
-  }
-  .card-item-blue-titleChoose{
-    color: #d7e6f6;
-    background-color: #2da0ef;
   }
   :deep(.is-horizontal) {
     height: 0;
@@ -217,5 +155,32 @@
   :deep(.el-scrollbar__wrap) {
     overflow-x: hidden;
   }
+  .truncate-text {
+    width: 350px;
+    font-size: 18px;
+    font-weight: 700;
+    margin-bottom: 25px;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    /* 悬浮显示原生标题 */
+    cursor: pointer;
+    position: relative;
+  }
+  /* 高级悬浮样式优化 */
+  .truncate-text:hover::after {
+    content: attr(title);
+    position: absolute;
+    left: 0;
+    top: 100%;
+    background: rgba(0,0,0,0.8);
+    color: white;
+    padding: 6px 12px;
+    border-radius: 4px;
+    z-index: 999;
+    white-space: normal;
+    width: max-content;
+    max-width: 300px;
+  }
 }
 </style>

--
Gitblit v1.9.2