From 45b4ff5c0b824d2e5b51a6af3c44076d05f0214d Mon Sep 17 00:00:00 2001
From: whychdw <496960745@qq.com>
Date: 星期三, 18 十二月 2024 13:21:28 +0800
Subject: [PATCH] 内容提交

---
 src/views/dashboard/index.vue |  437 ++++++++++++++++++------------------------------------
 1 files changed, 145 insertions(+), 292 deletions(-)

diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue
index 6e7da68..2687e05 100644
--- a/src/views/dashboard/index.vue
+++ b/src/views/dashboard/index.vue
@@ -1,307 +1,160 @@
-<template>
-  <div class="dashboard-container">
-    <hdw-card>
-      <div class="data-stats-header">
-        <el-row :gutter="16">
-          <el-col :span="8">
-            <div class="user-info-wrapper">
-              <el-avatar class="user-icon" :size="30" :src="userImg" />
-              <span class="user-name">姝︽眽婧愮晠</span>
-              <span class="user-change">鍒囨崲</span>
-            </div>
-          </el-col>
-          <el-col :span="8">
-            <div class="data-stats-time-wrapper">
-              <span class="time-title">缁熻鏃堕棿锛�</span>
-              <el-radio-group class="radio-class" v-model="timeType" size="small">
-                <el-radio-button label="鏈懆" :value="0" />
-                <el-radio-button label="鏈湀" :value="1" />
-                <el-radio-button label="鏈勾" :value="2" />
-              </el-radio-group>
-            </div>
-          </el-col>
-          <el-col :span="8">
-            <div class="data-stats-time-wrapper">
-              <span class="time-title">鑷畾涔夋椂闂达細</span>
-              <el-date-picker
-                  v-model="rangeTime"
-                  type="daterange"
-                  range-separator="鑷�"
-                  start-placeholder="寮�濮嬫椂闂�"
-                  end-placeholder="缁撴潫鏃堕棿"
-                  size="small"
-              />
-            </div>
-          </el-col>
-        </el-row>
-      </div>
+<script>
+import { defineComponent } from 'vue';
+import HdwCard from '@/components/HdwCard/index.vue';
+import LedNum from '@/components/LedNum/index.vue';
+import LineChart from '@/views/dashboard/components/LineChart.vue';
+import MapChart from '@/components/Charts/MapChart.vue';
 
-    </hdw-card>
-    <div class="data-stats">
-      <el-row :gutter="8">
-        <el-col :span="8">
-          <hdw-card>
-            <div class="data-stats-wrapper">
-              <div class="data-stats-icon">
-                <div class="data-stats-icon-content">
-                  <svg-icon icon-class="lock-hdw"/>
-                  <br/>
-                  <span class="icon-text">閿佸叿缁熻</span>
-                </div>
-              </div>
-              <div class="data-stats-content">
-                <el-row :gutter="16">
-                  <el-col :span="12">
-                    <div class="num-stats-wrapper">
-                      <div class="num-title">宸插畨瑁�</div>
-                      <div class="num-value">112</div>
-                    </div>
-                  </el-col>
-                  <el-col :span="12">
-                    <div class="num-stats-wrapper">
-                      <div class="num-title">鏈畨瑁�</div>
-                      <div class="num-value">2</div>
-                    </div>
-                  </el-col>
-                  <el-col :span="12">
-                    <div class="num-stats-wrapper">
-                      <div class="num-title">钃濈墮閿�</div>
-                      <div class="num-value">112</div>
-                    </div>
-                  </el-col>
-                  <el-col :span="12">
-                    <div class="num-stats-wrapper">
-                      <div class="num-title">鏃犳簮閿�</div>
-                      <div class="num-value">2</div>
-                    </div>
-                  </el-col>
-                </el-row>
-              </div>
-            </div>
-          </hdw-card>
-        </el-col>
-        <el-col :span="8">
-          <hdw-card>
-            <div class="data-stats-wrapper">
-              <div class="data-stats-icon">
-                <div class="data-stats-icon-content">
-                  <svg-icon icon-class="key-hdw"/>
-                  <br/>
-                  <span class="icon-text">閽ュ寵缁熻</span>
-                </div>
-              </div>
-              <div class="data-stats-content">
-                <el-row :gutter="16">
-                  <el-col :span="12">
-                    <div class="num-stats-wrapper">
-                      <div class="num-title">瀹炰綋閽ュ寵</div>
-                      <div class="num-value">0</div>
-                    </div>
-                  </el-col>
-                  <el-col :span="12">
-                    <div class="num-stats-wrapper">
-                      <div class="num-title">璁惧閽ュ寵</div>
-                      <div class="num-value">0</div>
-                    </div>
-                  </el-col>
-                  <el-col :span="12">
-                    <div class="num-stats-wrapper">
-                      <div class="num-title">钃濈墮閽ュ寵</div>
-                      <div class="num-value">6</div>
-                    </div>
-                  </el-col>
-                </el-row>
-              </div>
-            </div>
-          </hdw-card>
-        </el-col>
-        <el-col :span="8">
-          <hdw-card is-full>
-            <div class="data-stats-wrapper" style="height: 100%">
-              <div class="data-stats-icon">
-                <div class="data-stats-icon-content">
-                  <svg-icon icon-class="safe-lock-hdw"/>
-                  <br/>
-                  <span class="icon-text">浜嬩欢缁熻</span>
-                </div>
-              </div>
-              <div class="data-stats-content">
-                <el-row :gutter="16">
-                  <el-col :span="12">
-                    <div class="num-stats-wrapper">
-                      <div class="num-title">寮�閿佹搷浣�</div>
-                      <div class="num-value">0</div>
-                    </div>
-                  </el-col>
-                  <el-col :span="12">
-                    <div class="num-stats-wrapper">
-                      <div class="num-title">鎶ヨ浜嬩欢</div>
-                      <div class="num-value">0</div>
-                    </div>
-                  </el-col>
-                </el-row>
-              </div>
-            </div>
-          </hdw-card>
-        </el-col>
-      </el-row>
+export default defineComponent({
+  name: 'Dashboard',
+  components: { MapChart, LineChart, LedNum, HdwCard },
+  data() {
+    return {
+      stationNum: 0,
+      devNum: 0,
+      cardNum: 0,
+      chartData: []
+    };
+  },
+  methods: {}
+});
+</script>
+
+<template>
+  <div class="dashboard-wrapper">
+    <div class="dashboard-left">
+      <div class="left-content-list">
+        <div class="left-content-item">
+          <hdw-card is-full title="灞忔煖绫诲瀷"></hdw-card>
+        </div>
+        <div class="left-content-item">
+          <hdw-card is-full title="璁惧宸ヤ綔鐘舵��"></hdw-card>
+        </div>
+        <div class="left-content-item last">
+          <hdw-card is-full title="鐜鐘舵��"></hdw-card>
+        </div>
+      </div>
     </div>
-    <div class="data-stats-footer">
-      <el-row :gutter="8" style="height: 100%">
-        <el-col :span="12" style="height: 100%">
-          <hdw-card title="寮�閿佺粺璁�" is-full>
-            <div class="chart-wrapper">
-              <line-chart :chart-data="unlockingData"></line-chart>
+    <div class="dashboard-middle">
+      <div class="middle-content-wrapper">
+        <hdw-card>
+          <div class="number-list-wrapper">
+            <div class="number-item">
+              <div class="number-label">绔欑偣</div>
+              <div class="number-value">
+                <led-num color="#f00" :num="stationNum"></led-num>
+              </div>
             </div>
-          </hdw-card>
-        </el-col>
-        <el-col :span="12" style="height: 100%">
-          <hdw-card title="蹇嵎鍏ュ彛" is-full>
-            <div class="fast-menu">
-              <el-row :gutter="16">
-                <el-col :span="6">
-                  <menu-card></menu-card>
-                </el-col>
-                <el-col :span="6">
-                  <menu-card url="/system/user" title="鐢ㄦ埛绠$悊" icon="people-hdw" style="background-color: #56e0c7"></menu-card>
-                </el-col>
-                <el-col :span="6">
-                  <menu-card url="/device/lock" title="閿佸叿绠$悊" icon="lock-hdw" style="background-color: #fe945f"></menu-card>
-                </el-col>
-                <el-col :span="6">
-                  <menu-card url="/device/key" title="閽ュ寵绠$悊" icon="key-hdw" style="background-color: #fdcc1c"></menu-card>
-                </el-col>
-                <el-col :span="6">
-                  <menu-card url="/general/authorize" title="鎺堟潈绠$悊" icon="auth-hdw" style="background-color: #5a84fd"></menu-card>
-                </el-col>
-                <el-col :span="6">
-                  <menu-card url="/general/log" title="鏃ュ織绠$悊" icon="log-hdw" style="background-color: #7997b3"></menu-card>
-                </el-col>
-                <el-col :span="6">
-                  <menu-card url="/general/map" title="鍦板浘瀹氫綅" icon="map-hdw" style="background-color: #1ab5b1"></menu-card>
-                </el-col>
-              </el-row>
+            <div class="number-item">
+              <div class="number-label">璁惧</div>
+              <div class="number-value">
+                <led-num color="#f00" :num="devNum"></led-num>
+              </div>
             </div>
+            <div class="number-item">
+              <div class="number-label">鐢靛瓙鍗�</div>
+              <div class="number-value">
+                <led-num color="#f00" :num="cardNum"></led-num>
+              </div>
+            </div>
+          </div>
+        </hdw-card>
+        <div class="map-wrapper">
+          <hdw-card is-full>
+            <map-chart></map-chart>
           </hdw-card>
-        </el-col>
-      </el-row>
+        </div>
+        <div class="dev-real-info">
+          <hdw-card title="瀹炴椂寮�閿佷俊鎭�" is-full></hdw-card>
+        </div>
+      </div>
+    </div>
+    <div class="dashboard-right">
+      <div class="left-content-list">
+        <div class="left-content-item">
+          <hdw-card is-full title="灞忔煖鍝佺墝"></hdw-card>
+        </div>
+        <div class="left-content-item">
+          <hdw-card is-full title="浣跨敤棰戞"></hdw-card>
+        </div>
+        <div class="left-content-item last">
+          <hdw-card is-full title="鍛婅缁熻"></hdw-card>
+        </div>
+      </div>
     </div>
   </div>
 </template>
 
-<script>
-import { defineComponent } from 'vue';
-import MenuCard from '@/views/dashboard/components/MenuCard.vue';
-import HdwCard from '@/components/HdwCard/index.vue';
-import SvgIcon from '@/components/SvgIcon/index.vue';
-import LineChart from './components/LineChart.vue';
-import userImg from '@/assets/images/user.png';
-
-export default defineComponent({
-  name: 'Dashboard',
-  components: { LineChart, SvgIcon, HdwCard, MenuCard },
-  data() {
-    return {
-      unlockingData: [],
-      userImg,
-      timeType: 0,
-      rangeTime: ''
-    };
-  }
-});
-</script>
-
 <style scoped lang="scss">
-.dashboard-container {
-  height: 100%;
-  overflow: auto;
-  padding: 8px;
-  .data-stats-footer {
-    min-height: 300px;
-    height: calc(100% - 265px);
-  }
-}
-
-.user-info-wrapper {
-  display: inline-block;
-  .user-icon {
-    vertical-align: middle;
-  }
-  .user-name {
-    margin-left: 8px;
-    font-size: 14px;
-  }
-  .user-change {
-    margin-left: 8px;
-    font-size: 14px;
-    color: #409eff;
-    font-weight: 700;
-    cursor: pointer;
-  }
-}
-
-.data-stats-time-wrapper {
-  .radio-class {
-    vertical-align: middle;
-  }
-  .time-title {
-    margin-right: 8px;
-    font-size: 14px;
-    display: inline-block;
-  }
-}
-
-.data-stats {
-  margin-top: 8px;
-  padding-bottom: 8px;
-}
-.data-stats-wrapper {
+.dashboard-wrapper {
   display: flex;
   flex-direction: row;
-  padding: 16px;
-  .data-stats-icon {
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    text-align: center;
-    flex-direction: column;
-    .svg-icon {
-      font-size: 100px;
-      color: #5e5e5e;
-    }
-    .icon-text {
-      display: inline-block;
-      margin-top: 8px;
-      font-size: 14px;
-      font-weight: 700;
-      color: #5e5e5e;
-    }
-  }
-  .data-stats-content {
-    flex: 1;
-  }
-;
-}
-.num-stats-wrapper {
-  padding: 12px;
-  text-align: center;
-  .num-title {
-    color: gray;
-    font-size: 14px;
-  }
-  .num-value {
-    font-size: 30px;
-    font-weight: 700;
-  }
-}
-.fast-menu {
-  text-align: center;
-  .el-col {
-    padding: 32px 0;
-  }
-}
-.chart-wrapper {
   height: 100%;
-  overflow: hidden;
+  .dashboard-left{
+    width: 500px;
+    height: 100%;
+  }
+  .dashboard-middle {
+    flex: 1;
+    height: 100%;
+  }
+  .dashboard-right {
+    width: 500px;
+    height: 100%;
+  }
+}
+
+.left-content-list {
+  padding: 8px;
+  height: 100%;
+  .left-content-item {
+    height: 33%;
+    padding-bottom: 8px;
+    &.last {
+      height: 34%;
+      padding-bottom: 0;
+    }
+  }
+}
+
+.middle-content-wrapper {
+  display: flex;
+  flex-direction: column;
+  padding: 8px 0;
+  height: 100%;
+  .number-list-wrapper {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding: 0 10px;
+    margin-top: 8px;
+    .number-item {
+      cursor: pointer;
+      display: flex;
+      // border-radius: 6px;
+      align-items: center;
+      .number-label {
+        white-space: nowrap;
+        background: #0ff;
+        border-radius: 6px;
+        color: #333;
+        font-size: 16px;
+        font-weight: bold;
+        padding: 0 10px;
+      }
+      .number-value {
+        width: 4.5em;
+        height: 1.5em;
+        padding: 0 10px;
+      }
+    }
+  }
+  .map-wrapper {
+    flex: 1;
+    padding: 8px 0;
+  }
+  .dev-real-info {
+    height: 34%;
+  }
 }
 </style>

--
Gitblit v1.9.1