Browse Source

feat: home 1

alwayssuper 5 months ago
parent
commit
4dfc8c1b04
1 changed files with 71 additions and 48 deletions
  1. 71 48
      src/views/iot/home/index.vue

+ 71 - 48
src/views/iot/home/index.vue

@@ -1,56 +1,56 @@
 <template>
 <template>
   <div class="min-h-full bg-gray-50">
   <div class="min-h-full bg-gray-50">
-    <el-space direction="vertical" :fill="true" size="large" class="w-full p-4">
+    <el-space direction="vertical" :fill="true" size="small" class="w-full p-2">
       <!-- 统计卡片行 -->
       <!-- 统计卡片行 -->
-      <el-row :gutter="20" class="mb-6">
+      <el-row :gutter="16" class="mb-4">
         <el-col :span="6">
         <el-col :span="6">
-          <el-card class="stat-card hover:shadow-lg transition-shadow duration-300" shadow="hover">
+          <el-card class="stat-card" shadow="never">
             <div class="flex flex-col">
             <div class="flex flex-col">
-              <span class="text-gray-600 text-lg font-medium mb-2">品类数量</span>
-              <span class="text-4xl font-bold text-blue-600 mb-4">{{ statsData.categoryTotal }}</span>
+              <span class="text-gray-500 text-base mb-1">品类数量</span>
+              <span class="text-3xl font-bold text-gray-700">{{ statsData.categoryTotal }}</span>
               <el-divider class="my-2" />
               <el-divider class="my-2" />
-              <div class="flex items-center text-gray-500">
+              <div class="flex items-center text-gray-400 text-sm">
                 <span>今日新增</span>
                 <span>今日新增</span>
-                <span class="ml-2 text-green-500 text-lg">↑ 0</span>
+                <span class="ml-1 text-green-500">↑ 0</span>
               </div>
               </div>
             </div>
             </div>
           </el-card>
           </el-card>
         </el-col>
         </el-col>
         <el-col :span="6">
         <el-col :span="6">
-          <el-card class="stat-card hover:shadow-lg transition-shadow duration-300" shadow="hover">
+          <el-card class="stat-card" shadow="never">
             <div class="flex flex-col">
             <div class="flex flex-col">
-              <span class="text-gray-600 text-lg font-medium mb-2">产品数量</span>
-              <span class="text-4xl font-bold text-indigo-600 mb-4">{{ statsData.productTotal }}</span>
+              <span class="text-gray-500 text-base mb-1">产品数量</span>
+              <span class="text-3xl font-bold text-gray-700">{{ statsData.productTotal }}</span>
               <el-divider class="my-2" />
               <el-divider class="my-2" />
-              <div class="flex items-center text-gray-500">
+              <div class="flex items-center text-gray-400 text-sm">
                 <span>今日新增</span>
                 <span>今日新增</span>
-                <span class="ml-2 text-green-500 text-lg">↑ 0</span>
+                <span class="ml-1 text-green-500">↑ 0</span>
               </div>
               </div>
             </div>
             </div>
           </el-card>
           </el-card>
         </el-col>
         </el-col>
         <el-col :span="6">
         <el-col :span="6">
-          <el-card class="stat-card hover:shadow-lg transition-shadow duration-300" shadow="hover">
+          <el-card class="stat-card" shadow="never">
             <div class="flex flex-col">
             <div class="flex flex-col">
-              <span class="text-gray-600 text-lg font-medium mb-2">设备数量</span>
-              <span class="text-4xl font-bold text-purple-600 mb-4">{{ statsData.deviceTotal }}</span>
+              <span class="text-gray-500 text-base mb-1">设备数量</span>
+              <span class="text-3xl font-bold text-gray-700">{{ statsData.deviceTotal }}</span>
               <el-divider class="my-2" />
               <el-divider class="my-2" />
-              <div class="flex items-center text-gray-500">
+              <div class="flex items-center text-gray-400 text-sm">
                 <span>今日新增</span>
                 <span>今日新增</span>
-                <span class="ml-2 text-green-500 text-lg">↑ 0</span>
+                <span class="ml-1 text-green-500">↑ 0</span>
               </div>
               </div>
             </div>
             </div>
           </el-card>
           </el-card>
         </el-col>
         </el-col>
         <el-col :span="6">
         <el-col :span="6">
-          <el-card class="stat-card hover:shadow-lg transition-shadow duration-300" shadow="hover">
+          <el-card class="stat-card" shadow="never">
             <div class="flex flex-col">
             <div class="flex flex-col">
-              <span class="text-gray-600 text-lg font-medium mb-2">物模型消息</span>
-              <span class="text-4xl font-bold text-teal-600 mb-4">{{ statsData.reportTotal }}</span>
+              <span class="text-gray-500 text-base mb-1">物模型消息</span>
+              <span class="text-3xl font-bold text-gray-700">{{ statsData.reportTotal }}</span>
               <el-divider class="my-2" />
               <el-divider class="my-2" />
-              <div class="flex items-center text-gray-500">
+              <div class="flex items-center text-gray-400 text-sm">
                 <span>今日新增</span>
                 <span>今日新增</span>
-                <span class="ml-2 text-green-500 text-lg">↑ 0</span>
+                <span class="ml-1 text-green-500">↑ 0</span>
               </div>
               </div>
             </div>
             </div>
           </el-card>
           </el-card>
@@ -58,41 +58,41 @@
       </el-row>
       </el-row>
 
 
       <!-- 图表行 -->
       <!-- 图表行 -->
-      <el-row :gutter="20" class="mb-6">
+      <el-row :gutter="16" class="mb-4">
         <el-col :span="12">
         <el-col :span="12">
-          <el-card class="h-full hover:shadow-lg transition-shadow duration-300" shadow="hover">
+          <el-card class="chart-card" shadow="never">
             <template #header>
             <template #header>
               <div class="flex items-center">
               <div class="flex items-center">
-                <h3 class="text-lg font-semibold text-gray-700">设备数量统计</h3>
+                <span class="text-base font-medium text-gray-600">设备数量统计</span>
               </div>
               </div>
             </template>
             </template>
-            <div ref="chartDeviceNumStat" class="h-[300px]" ></div>
+            <div ref="chartDeviceNumStat" class="h-[240px]"></div>
           </el-card>
           </el-card>
         </el-col>
         </el-col>
         <el-col :span="12">
         <el-col :span="12">
-          <el-card class="h-full hover:shadow-lg transition-shadow duration-300" shadow="hover">
+          <el-card class="chart-card" shadow="never">
             <template #header>
             <template #header>
               <div class="flex items-center">
               <div class="flex items-center">
-                <h3 class="text-lg font-semibold text-gray-700">设备状态统计</h3>
+                <span class="text-base font-medium text-gray-600">设备状态统计</span>
               </div>
               </div>
             </template>
             </template>
-            <el-row class="h-[300px]">
+            <el-row class="h-[240px]">
               <el-col :span="8" class="flex flex-col items-center">
               <el-col :span="8" class="flex flex-col items-center">
-                <div ref="chartDeviceOnline" class="h-[200px] w-full" ></div>
-                <div class="text-center mt-4">
-                  <span class="text-sm font-medium text-green-600">在线设备</span>
+                <div ref="chartDeviceOnline" class="h-[160px] w-full"></div>
+                <div class="text-center mt-2">
+                  <span class="text-sm text-gray-600">在线设备</span>
                 </div>
                 </div>
               </el-col>
               </el-col>
               <el-col :span="8" class="flex flex-col items-center">
               <el-col :span="8" class="flex flex-col items-center">
-                <div ref="chartDeviceOffline" class="h-[200px] w-full" ></div>
-                <div class="text-center mt-4">
-                  <span class="text-sm font-medium text-red-600">离线设备</span>
+                <div ref="chartDeviceOffline" class="h-[160px] w-full"></div>
+                <div class="text-center mt-2">
+                  <span class="text-sm text-gray-600">离线设备</span>
                 </div>
                 </div>
               </el-col>
               </el-col>
               <el-col :span="8" class="flex flex-col items-center">
               <el-col :span="8" class="flex flex-col items-center">
-                <div ref="chartDeviceActive" class="h-[200px] w-full" ></div>
-                <div class="text-center mt-4">
-                  <span class="text-sm font-medium text-blue-600">待激活设备</span>
+                <div ref="chartDeviceActive" class="h-[160px] w-full"></div>
+                <div class="text-center mt-2">
+                  <span class="text-sm text-gray-600">待激活设备</span>
                 </div>
                 </div>
               </el-col>
               </el-col>
             </el-row>
             </el-row>
@@ -103,13 +103,13 @@
       <!-- 消息统计行 -->
       <!-- 消息统计行 -->
       <el-row>
       <el-row>
         <el-col :span="24">
         <el-col :span="24">
-          <el-card class="hover:shadow-lg transition-shadow duration-300" shadow="hover">
+          <el-card class="chart-card" shadow="never">
             <template #header>
             <template #header>
               <div class="flex items-center">
               <div class="flex items-center">
-                <h3 class="text-lg font-semibold text-gray-700">消息量统计</h3>
+                <span class="text-base font-medium text-gray-600">消息量统计</span>
               </div>
               </div>
             </template>
             </template>
-            <div ref="chartMsgStat" class="h-[400px]" ></div>
+            <div ref="chartMsgStat" class="h-[300px]"></div>
           </el-card>
           </el-card>
         </el-col>
         </el-col>
       </el-row>
       </el-row>
@@ -385,18 +385,41 @@ onMounted(() => {
 
 
 <style lang="scss" scoped>
 <style lang="scss" scoped>
 .stat-card {
 .stat-card {
-  @apply bg-white rounded-lg overflow-hidden;
+  @apply bg-white rounded overflow-hidden;
   
   
-  &:hover {
-    @apply transform transition-transform duration-300 -translate-y-1;
+  :deep(.el-card__body) {
+    @apply p-3;
+  }
+
+  .el-divider {
+    @apply my-2;
   }
   }
 }
 }
 
 
-:deep(.el-card__body) {
-  @apply p-6;
+.chart-card {
+  @apply bg-white rounded overflow-hidden;
+  
+  :deep(.el-card__header) {
+    @apply py-2 px-3 border-b border-gray-100 bg-white;
+  }
+
+  :deep(.el-card__body) {
+    @apply p-3;
+  }
 }
 }
 
 
-:deep(.el-card__header) {
-  @apply p-4 border-b border-gray-200 bg-gray-50;
+// 修改图表配色方案,使其更加柔和
+:deep(.echarts) {
+  .tooltip {
+    @apply bg-white/90 border border-gray-200 shadow-sm;
+  }
+  
+  .axis-line {
+    @apply text-gray-300;
+  }
+  
+  .split-line {
+    @apply text-gray-100;
+  }
 }
 }
 </style>
 </style>