From bec7efb74cb9350dc720fb1ea641f06d7316b4dc Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Fri, 09 May 2025 16:24:41 +0800
Subject: [PATCH] 个人工作台

---
 src/views/wel/components/statistics.vue |  175 +++++++++++++++++++++++++++++----------------------------
 1 files changed, 89 insertions(+), 86 deletions(-)

diff --git a/src/views/wel/components/statistics.vue b/src/views/wel/components/statistics.vue
index c4cda57..4e48e70 100644
--- a/src/views/wel/components/statistics.vue
+++ b/src/views/wel/components/statistics.vue
@@ -3,13 +3,13 @@
     <div class="title">
       <div class="name">
         <span> 设备统计</span>
-        <img src="/src/assets/images/workbench/st1.png" alt="" />
+        <img @click="refresh" src="/src/assets/images/workbench/st1.png" alt="" />
       </div>
-      <div class="arrow">
+      <div class="arrow" @click="jumppage">
         <img src="/src/assets/images/workbench/st2.png" alt="" />
       </div>
     </div>
-    <!-- <div class="grid-container">
+      <div class="grid-container1" >
       <div v-for="(item, index) in Object.keys(newtitleData)" :key="index" class="device-card">
         <div class="device-title">
           <img :src="test[item].img" :alt="newtitleData[item].name" />
@@ -20,35 +20,6 @@
           </div>
         </div>
         <div class="status-list">
-         
-          <div
-            v-for="(status, statusIndex) in newtitleData[item].status_map"
-            :key="statusIndex"
-            class="status-item"
-            :class="getStatusStyle(test[item]?.name, statusIndex)"
-            :style="{ color: getStatusColor(test[item]?.name, statusIndex) }"
-          >
-            <span class="indicator"></span>
-            <span class="label">{{ getStatusLabel(test[item]?.name, statusIndex) }}</span>
-            <span class="count"
-              >{{ status }} {{ test[item]?.name === '无人机' ? '架' : '个' }}</span
-            >
-          </div>
-        </div>
-      </div>
-    </div> -->
-    <div class="grid-container1">
-      <div v-for="(item, index) in Object.keys(newtitleData)" :key="index" class="device-card">
-        <div class="device-title">
-          <img :src="test[item].img" :alt="newtitleData[item].name" />
-          <div class="itemcenter">
-            <div>{{ test[item]?.name || '--' }}</div>
-            <span class="shu">{{ newtitleData[item].total_num }}</span>
-            <span>个</span>
-          </div>
-        </div>
-        <div class="status-list">
-          <!-- :class="`status-${statusIndex}`" -->
           <div
             v-for="(status, statusIndex) in newtitleData[item].status_map"
             :key="statusIndex"
@@ -71,6 +42,40 @@
         </div>
       </div>
     </div>
+    <!-- <div class="grid-container" >
+      <div v-for="(item, index) in Object.keys(newtitleData)" :key="index" class="device-card">
+        <div class="device-title">
+          <img :src="test[item].img" :alt="newtitleData[item].name" />
+          <div class="itemcenter">
+            <div>{{ test[item]?.name || '--' }}</div>
+            <span class="shu">{{ newtitleData[item].total_num }}</span>
+            <span>个</span>
+          </div>
+          <div class="status-list">
+            <div
+              v-for="(status, statusIndex) in newtitleData[item].status_map"
+              :key="statusIndex"
+              class="status-item"
+              :class="getStatusStyle(test[item]?.name, statusIndex)"
+              :style="{ color: getStatusColor(test[item]?.name, statusIndex) }"
+            >
+              <span
+                class="indicator"
+                :style="{
+                  backgroundColor: getStatusBackground(test[item]?.name, statusIndex),
+                  color: getStatusColor(test[item]?.name, statusIndex),
+                }"
+              ></span>
+              <span class="label">{{ getStatusLabel(test[item]?.name, statusIndex) }}</span>
+              <span class="count"
+                >{{ status }} {{ test[item]?.name === '无人机' ? '架' : '个' }}</span
+              >
+            </div>
+          </div>
+        </div>
+      </div>
+    </div> -->
+  
   </div>
 </template>
 
@@ -85,9 +90,53 @@
 import titleImg6 from '@/assets/images/workbench/st9.png';
 import { getStatics } from '@/api/home/index';
 const store = useStore();
-Object.key;
+// Object.key;
+// 运维人员:1912328766238597121
+// 政企专员:1912467025014923265
+const refresh=()=>{
+  getStaticsList()
+}
+const jumppage=()=>{
+  console.log('跳转');
+  
+}
 const userInfo = computed(() => store.getters.userInfo);
+console.log('userInfo', userInfo.value.role_id);
 const newtitleData = ref({});
+const titleData = ref([
+  {
+    img: titleImg1,
+    name: '机巢',
+    total_num: 52,
+    working: 0,
+    leisure: 0,
+    offline: 0,
+  },
+  {
+    img: titleImg2,
+    name: '无人机',
+    total_num: 52,
+      working: 0,
+    leisure: 0,
+    offline: 0,
+  },
+  {
+    img: titleImg3,
+    name: '监控设备',
+    total_num: 52,
+     working: 0,
+    leisure: 0,
+    offline: 0,
+  },
+  {
+    img: titleImg4,
+    name: '移动机巢',
+    total_num: 52,
+   working: 0,
+    leisure: 0,
+    offline: 0,
+  },
+]);
 const test = {
   no_move_list: {
     name: '机巢',
@@ -120,18 +169,15 @@
   4: '作业中',
   '-1': '离线中',
 };
-// 流量 状态 0充足,1=流量到期,2=不足
 const flowStatus = {
   0: '流量无忧',
   1: '流量到期',
   2: '流量不足',
 };
-// "监控状态 1=在线,0=离线"
 const monitorStatus = {
   0: '离线中',
   1: '在线中',
 };
-// 机巢保险  1=保险,0=未保险
 const insureStatus = {
   0: '临近到期',
   1: '正常期限',
@@ -194,7 +240,7 @@
 const getStaticsList = () => {
   getStatics(userInfo.value.detail.areaCode).then(res => {
     newtitleData.value = res.data.data;
-    console.log('设备', newtitleData.value);
+    // console.log('设备', newtitleData.value);
   });
 };
 
@@ -204,52 +250,7 @@
   monitor: '个',
   mobile: '个',
 };
-const titleData = ref([
-  {
-    img: titleImg1,
-    name: '机巢',
-    type: 'nest',
-    data: 52,
-    statuses: [
-      { type: 'working', label: '作业中', count: 20 },
-      { type: 'idle', label: '空间中', count: 20 },
-      { type: 'offline', label: '离线中', count: 20 },
-    ],
-  },
-  {
-    img: titleImg2,
-    name: '无人机',
-    data: 52,
-    type: 'drone',
-    statuses: [
-      { type: 'working', label: '作业中', count: 20 },
-      { type: 'idle', label: '空间中', count: 20 },
-      { type: 'offline', label: '离线中', count: 20 },
-    ],
-  },
-  {
-    img: titleImg3,
-    name: '监控设备',
-    type: 'monitor',
-    data: 52,
-    statuses: [
-      { type: 'working', label: '作业中', count: 20 },
-      { type: 'idle', label: '空间中', count: 20 },
-      { type: 'offline', label: '离线中', count: 20 },
-    ],
-  },
-  {
-    img: titleImg4,
-    name: '移动机巢',
-    type: 'mobile',
-    data: 52,
-    statuses: [
-      { type: 'working', label: '作业中', count: 20 },
-      { type: 'idle', label: '空间中', count: 20 },
-      { type: 'offline', label: '离线中', count: 20 },
-    ],
-  },
-]);
+
 onMounted(() => {
   getStaticsList();
 });
@@ -257,7 +258,7 @@
 
 <style scoped lang="scss">
 .statistics {
-  // height: 174px;
+  min-height: 174px;
   background: #ffffff;
   border-radius: 8px 8px 8px 8px;
   margin-bottom: 10px;
@@ -272,6 +273,8 @@
       span {
         margin-right: 4px;
       }
+      img{
+      cursor: pointer;}
     }
     .arrow {
       cursor: pointer;
@@ -280,7 +283,7 @@
   .grid-container {
     padding: 0 14px 0 21px;
     display: grid;
-    grid-template-columns: repeat(6, 1fr);
+    grid-template-columns: repeat(4, 1fr);
     .device-card {
       display: flex;
       flex-direction: column;
@@ -313,7 +316,7 @@
     }
     .status-list {
       display: grid;
-
+      margin-left: 5px;
       .status-item {
         display: flex;
         align-items: center;

--
Gitblit v1.9.3