From d3fbd83787573e9e67067b7b65ae9d5ce8ecb0b8 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期二, 16 八月 2022 10:03:20 +0800
Subject: [PATCH] 添加统计分析大屏

---
 public/images/data-v/online.png                                     |    0 
 public/images/data-v/top10.png                                      |    0 
 public/images/data-v/ksh40.png                                      |    0 
 public/images/data-v/data-m.png                                     |    0 
 src/views/dataView/index.vue                                        |  578 ++++++++++++++++++++++++++++++++++++++
 public/images/data-v/ksh31.png                                      |    0 
 public/images/data-v/ksh45.png                                      |    0 
 public/images/data-v/ksh37.png                                      |    0 
 public/images/data-v/lineup.png                                     |    0 
 src/views/dataView/fonts/yjsz.TTF                                   |    0 
 public/images/data-v/offline.png                                    |    0 
 public/images/data-v/ksh41.png                                      |    0 
 public/images/data-v/ksh35.png                                      |    0 
 public/images/data-v/head.png                                       |    0 
 public/images/data-v/jzxz2.png                                      |    0 
 public/images/data-v/ksh44.png                                      |    0 
 src/components/Footer.vue                                           |   22 
 public/images/data-v/ksh32.png                                      |    0 
 public/images/data-v/center.png                                     |    0 
 public/images/data-v/ksh36.png                                      |    0 
 public/images/data-v/type.png                                       |    0 
 public/images/data-v/ksh34.png                                      |    0 
 src/views/equipmentManagement/equipmentList/components/FormList.vue |   12 
 public/images/data-v/d-total.png                                    |    0 
 public/index.html                                                   |   43 +-
 public/images/data-v/ksh42.png                                      |    0 
 src/components/IndexHeader.vue                                      |  122 +++----
 src/views/equipmentManagement/equipmentList/index.vue               |   28 
 src/views/hashrate/hashrateDetail/index.vue                         |   15 
 public/images/data-v/week.png                                       |    0 
 src/router/index.js                                                 |    6 
 public/images/data-v/ksh39.png                                      |    0 
 public/images/data-v/data08.png                                     |    0 
 src/views/manageCenter/index.vue                                    |   11 
 public/images/data-v/ksh33.png                                      |    0 
 public/images/data-v/ksh43.png                                      |    0 
 public/images/data-v/jzxz1.png                                      |    0 
 src/views/video/index.vue                                           |   16 
 src/views/report/index.vue                                          |   15 
 public/images/data-v/jcdsj_logo.png                                 |    0 
 public/images/data-v/ksh38.png                                      |    0 
 public/images/data-v/bg.jpg                                         |    0 
 42 files changed, 726 insertions(+), 142 deletions(-)

diff --git a/public/images/data-v/bg.jpg b/public/images/data-v/bg.jpg
new file mode 100644
index 0000000..533f5e3
--- /dev/null
+++ b/public/images/data-v/bg.jpg
Binary files differ
diff --git a/public/images/data-v/center.png b/public/images/data-v/center.png
new file mode 100644
index 0000000..ab44e0e
--- /dev/null
+++ b/public/images/data-v/center.png
Binary files differ
diff --git a/public/images/data-v/d-total.png b/public/images/data-v/d-total.png
new file mode 100644
index 0000000..e92ba76
--- /dev/null
+++ b/public/images/data-v/d-total.png
Binary files differ
diff --git a/public/images/data-v/data-m.png b/public/images/data-v/data-m.png
new file mode 100644
index 0000000..d46070d
--- /dev/null
+++ b/public/images/data-v/data-m.png
Binary files differ
diff --git a/public/images/data-v/data08.png b/public/images/data-v/data08.png
new file mode 100644
index 0000000..2140942
--- /dev/null
+++ b/public/images/data-v/data08.png
Binary files differ
diff --git a/public/images/data-v/head.png b/public/images/data-v/head.png
new file mode 100644
index 0000000..a2ce0af
--- /dev/null
+++ b/public/images/data-v/head.png
Binary files differ
diff --git a/public/images/data-v/jcdsj_logo.png b/public/images/data-v/jcdsj_logo.png
new file mode 100644
index 0000000..3939cfc
--- /dev/null
+++ b/public/images/data-v/jcdsj_logo.png
Binary files differ
diff --git a/public/images/data-v/jzxz1.png b/public/images/data-v/jzxz1.png
new file mode 100644
index 0000000..c45b708
--- /dev/null
+++ b/public/images/data-v/jzxz1.png
Binary files differ
diff --git a/public/images/data-v/jzxz2.png b/public/images/data-v/jzxz2.png
new file mode 100644
index 0000000..8cc258c
--- /dev/null
+++ b/public/images/data-v/jzxz2.png
Binary files differ
diff --git a/public/images/data-v/ksh31.png b/public/images/data-v/ksh31.png
new file mode 100644
index 0000000..eabfca6
--- /dev/null
+++ b/public/images/data-v/ksh31.png
Binary files differ
diff --git a/public/images/data-v/ksh32.png b/public/images/data-v/ksh32.png
new file mode 100644
index 0000000..a71abda
--- /dev/null
+++ b/public/images/data-v/ksh32.png
Binary files differ
diff --git a/public/images/data-v/ksh33.png b/public/images/data-v/ksh33.png
new file mode 100644
index 0000000..fca5372
--- /dev/null
+++ b/public/images/data-v/ksh33.png
Binary files differ
diff --git a/public/images/data-v/ksh34.png b/public/images/data-v/ksh34.png
new file mode 100644
index 0000000..879aaf6
--- /dev/null
+++ b/public/images/data-v/ksh34.png
Binary files differ
diff --git a/public/images/data-v/ksh35.png b/public/images/data-v/ksh35.png
new file mode 100644
index 0000000..337915f
--- /dev/null
+++ b/public/images/data-v/ksh35.png
Binary files differ
diff --git a/public/images/data-v/ksh36.png b/public/images/data-v/ksh36.png
new file mode 100644
index 0000000..28a81ca
--- /dev/null
+++ b/public/images/data-v/ksh36.png
Binary files differ
diff --git a/public/images/data-v/ksh37.png b/public/images/data-v/ksh37.png
new file mode 100644
index 0000000..05e9f96
--- /dev/null
+++ b/public/images/data-v/ksh37.png
Binary files differ
diff --git a/public/images/data-v/ksh38.png b/public/images/data-v/ksh38.png
new file mode 100644
index 0000000..0584178
--- /dev/null
+++ b/public/images/data-v/ksh38.png
Binary files differ
diff --git a/public/images/data-v/ksh39.png b/public/images/data-v/ksh39.png
new file mode 100644
index 0000000..bebd65e
--- /dev/null
+++ b/public/images/data-v/ksh39.png
Binary files differ
diff --git a/public/images/data-v/ksh40.png b/public/images/data-v/ksh40.png
new file mode 100644
index 0000000..05cf4da
--- /dev/null
+++ b/public/images/data-v/ksh40.png
Binary files differ
diff --git a/public/images/data-v/ksh41.png b/public/images/data-v/ksh41.png
new file mode 100644
index 0000000..09839d8
--- /dev/null
+++ b/public/images/data-v/ksh41.png
Binary files differ
diff --git a/public/images/data-v/ksh42.png b/public/images/data-v/ksh42.png
new file mode 100644
index 0000000..afbb2f4
--- /dev/null
+++ b/public/images/data-v/ksh42.png
Binary files differ
diff --git a/public/images/data-v/ksh43.png b/public/images/data-v/ksh43.png
new file mode 100644
index 0000000..42176c1
--- /dev/null
+++ b/public/images/data-v/ksh43.png
Binary files differ
diff --git a/public/images/data-v/ksh44.png b/public/images/data-v/ksh44.png
new file mode 100644
index 0000000..3781641
--- /dev/null
+++ b/public/images/data-v/ksh44.png
Binary files differ
diff --git a/public/images/data-v/ksh45.png b/public/images/data-v/ksh45.png
new file mode 100644
index 0000000..10b0467
--- /dev/null
+++ b/public/images/data-v/ksh45.png
Binary files differ
diff --git a/public/images/data-v/lineup.png b/public/images/data-v/lineup.png
new file mode 100644
index 0000000..331b416
--- /dev/null
+++ b/public/images/data-v/lineup.png
Binary files differ
diff --git a/public/images/data-v/offline.png b/public/images/data-v/offline.png
new file mode 100644
index 0000000..905d2fb
--- /dev/null
+++ b/public/images/data-v/offline.png
Binary files differ
diff --git a/public/images/data-v/online.png b/public/images/data-v/online.png
new file mode 100644
index 0000000..c636b6f
--- /dev/null
+++ b/public/images/data-v/online.png
Binary files differ
diff --git a/public/images/data-v/top10.png b/public/images/data-v/top10.png
new file mode 100644
index 0000000..f37fc73
--- /dev/null
+++ b/public/images/data-v/top10.png
Binary files differ
diff --git a/public/images/data-v/type.png b/public/images/data-v/type.png
new file mode 100644
index 0000000..3a790f9
--- /dev/null
+++ b/public/images/data-v/type.png
Binary files differ
diff --git a/public/images/data-v/week.png b/public/images/data-v/week.png
new file mode 100644
index 0000000..d467fc8
--- /dev/null
+++ b/public/images/data-v/week.png
Binary files differ
diff --git a/public/index.html b/public/index.html
index 506eb2c..8e35ac4 100644
--- a/public/index.html
+++ b/public/index.html
@@ -1,25 +1,24 @@
 <!DOCTYPE html>
 <html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width,initial-scale=1.0" />
+    <link rel="icon" href="<%= BASE_URL %>favicon.ico" />
+    <link rel="stylesheet" href="/fonts/iconfont.css" />
+    <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+    <title>sass鏅烘収鐩戞帶绠$悊涓績</title>
+    <style></style>
+  </head>
 
-<head>
-  <meta charset="utf-8">
-  <meta http-equiv="X-UA-Compatible" content="IE=edge">
-  <meta name="viewport" content="width=device-width,initial-scale=1.0">
-  <link rel="icon" href="<%= BASE_URL %>favicon.ico">
-  <link rel="stylesheet" href="/fonts/iconfont.css">
-  <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
-  <title>sass</title>
-  <style>
-  </style>
-</head>
-
-<body>
-  <noscript>
-    <strong>We're sorry but system-2.0 doesn't work properly without JavaScript enabled. Please enable it to
-      continue.</strong>
-  </noscript>
-  <div id="app"></div>
-  <!-- built files will be auto injected -->
-</body>
-
-</html>
\ No newline at end of file
+  <body>
+    <noscript>
+      <strong
+        >We're sorry but system-2.0 doesn't work properly without JavaScript enabled. Please enable it to
+        continue.</strong
+      >
+    </noscript>
+    <div id="app"></div>
+    <!-- built files will be auto injected -->
+  </body>
+</html>
diff --git a/src/components/Footer.vue b/src/components/Footer.vue
index e1915b2..79d62d7 100644
--- a/src/components/Footer.vue
+++ b/src/components/Footer.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="Footer" :class="{ isBlack: isBlack }">
+  <div class="Footer">
     <!--  <div class="left">
       漏 2009-2019 smartai.com 鐗堟潈鎵�鏈� ICP璇侊細45456566 鍏綉瀹夊 436435455鍙�
     </div>
@@ -19,18 +19,18 @@
   props: {
     isBlack: {
       type: Boolean,
-      default: false,
-    },
+      default: false
+    }
   },
   methods: {
     jump() {
-      window.open("http://www.smartai.com/about");
+      window.open("http://www.smartai.com/about")
     },
     jump2() {
-      window.open("http://www.smartai.com/consult");
-    },
-  },
-};
+      window.open("http://www.smartai.com/consult")
+    }
+  }
+}
 </script>
 
 <style lang="scss" scoped>
@@ -39,8 +39,8 @@
   justify-content: space-between;
   align-items: center;
   box-sizing: border-box;
-  padding: 26px 20px;
-  height: 100px;
+  // padding: 26px 20px;
+  height: 10px;
   min-width: 1280px;
   background: #f3f5f8;
 
@@ -68,4 +68,4 @@
     }
   }
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/components/IndexHeader.vue b/src/components/IndexHeader.vue
index 084bbf3..65a8d61 100644
--- a/src/components/IndexHeader.vue
+++ b/src/components/IndexHeader.vue
@@ -10,6 +10,8 @@
         <div class="label" @click="$router.push('/')">棣栭〉</div>
         <!-- <div class="label">浜戞湇鍔�</div> -->
         <div class="label" @click="$router.push('/manageCenter')">绠$悊涓績</div>
+        <div class="label" @click="$router.push('/dataView')">鏁版嵁鍒嗘瀽</div>
+        <!-- <div class="label" @click="dataView">鏁版嵁鍒嗘瀽</div> -->
         <div class="label" @click="$router.push('/product')">搴旂敤鍟嗗煄</div>
       </div>
 
@@ -23,28 +25,16 @@
         >
           <div class="iconList" slot="suffix">
             <i class="search iconfont" v-if="!isShow">&#xe607;</i>
-            <i class="search iconfont" @click="search" v-if="isShow"
-              >&#xe607;</i
-            >
-            <i class="del iconfont" v-if="isShow" @click="showInputBox(false)"
-              >&#xe60f;</i
-            >
+            <i class="search iconfont" @click="search" v-if="isShow">&#xe607;</i>
+            <i class="del iconfont" v-if="isShow" @click="showInputBox(false)">&#xe60f;</i>
           </div>
         </el-input>
 
         <!-- 鏈櫥褰曟儏鍐� -->
-        <div
-          class="headerLogin"
-          v-if="!userInfo"
-          @click="$router.push('/login')"
-        >
+        <div class="headerLogin" v-if="!userInfo" @click="$router.push('/login')">
           鐧诲綍
         </div>
-        <div
-          class="register"
-          v-if="!userInfo"
-          @click="$router.push('/register')"
-        >
+        <div class="register" v-if="!userInfo" @click="$router.push('/register')">
           鍏嶈垂娉ㄥ唽
         </div>
 
@@ -62,12 +52,7 @@
     </div>
 
     <!-- 鐢ㄦ埛涓嬫媺妗� -->
-    <div
-      class="userBox"
-      v-if="userInfo && isShowUserBox"
-      @mouseenter="showUserBox"
-      @mouseleave="hiddenUserBox"
-    >
+    <div class="userBox" v-if="userInfo && isShowUserBox" @mouseenter="showUserBox" @mouseleave="hiddenUserBox">
       <div class="userName">{{ userInfo.username }}</div>
       <ul>
         <!--   <li class="money">
@@ -83,9 +68,7 @@
             <router-link to="/personalCenter">涓汉涓績</router-link>
           </div>
 
-          <div class="content">
-            <span class="iconfont">&#xe605;</span> 宸插疄鍚嶈璇�
-          </div>
+          <div class="content"><span class="iconfont">&#xe605;</span> 宸插疄鍚嶈璇�</div>
         </li>
 
         <li>
@@ -118,12 +101,7 @@
       <div class="hotKey">
         <div class="title">鐑棬鎼滅储</div>
         <ul class="keyCard">
-          <li
-            class="keyItem"
-            @click="jumpToSearch(item)"
-            v-for="(item, index) in hotKeyArr"
-            :key="index"
-          >
+          <li class="keyItem" @click="jumpToSearch(item)" v-for="(item, index) in hotKeyArr" :key="index">
             {{ item }}
           </li>
         </ul>
@@ -150,19 +128,19 @@
 </template>
 
 <script>
-import { logout } from "@/api/login";
+import { logout } from "@/api/login"
 
 export default {
   props: {
     opacity: {
       type: Boolean,
-      default: true,
-    },
+      default: true
+    }
   },
   name: "Header",
   created() {
     //灏濊瘯浠巗ession涓嬁鐢ㄦ埛淇℃伅
-    this.userInfo = JSON.parse(sessionStorage.getItem("userInfo"));
+    this.userInfo = JSON.parse(sessionStorage.getItem("userInfo"))
     /*  document.addEventListener("click", () => {
       this.showUserBox = false;
     }); */
@@ -176,82 +154,88 @@
       isShowBox: false, //杈撳叆涓嬫媺妗�
       userInfo: null, //鐢ㄦ埛淇℃伅
       isShowUserBox: false, //鐢ㄦ埛淇℃伅寮瑰眰
-      UserTimer: null, // 鎺у埗寮瑰眰鐨勫畾鏃跺櫒
-    };
+      UserTimer: null // 鎺у埗寮瑰眰鐨勫畾鏃跺櫒
+    }
   },
   methods: {
+    dataView() {
+      const { href } = this.$router.resolve({
+        path: "/dataView"
+      })
+      window.open(href, "_blank")
+    },
     // 鎺у埗杈撳叆妗哹ox
     showInputBox(toggle) {
-      this.isShow = toggle;
-      this.isShowBox = toggle;
-      this.keyWord = "";
-      this.$emit("showInputBox", toggle);
+      this.isShow = toggle
+      this.isShowBox = toggle
+      this.keyWord = ""
+      this.$emit("showInputBox", toggle)
     },
 
     //鎺у埗鐢ㄦ埛淇℃伅box
     showUserBox() {
       if (this.UserTimer) {
-        clearTimeout(this.UserTimer);
-        this.UserTimer = null;
+        clearTimeout(this.UserTimer)
+        this.UserTimer = null
       }
-      this.isShowUserBox = true;
+      this.isShowUserBox = true
     },
     hiddenUserBox() {
-      const _this = this;
+      const _this = this
       this.UserTimer = setTimeout(() => {
-        _this.isShowUserBox = false;
-      }, 200);
+        _this.isShowUserBox = false
+      }, 200)
     },
 
     logOut() {
       logout().then(() => {
-        sessionStorage.removeItem("loginedInfo");
-        sessionStorage.removeItem("expires_in");
-        sessionStorage.removeItem("userInfo");
+        sessionStorage.removeItem("loginedInfo")
+        sessionStorage.removeItem("expires_in")
+        sessionStorage.removeItem("userInfo")
         this.$router.push({
-          path: "/login",
-        });
+          path: "/login"
+        })
         this.$notify({
           title: "鎻愮ず",
           type: "success",
           message: "閫�鍑烘垚鍔燂紒",
           duration: 2500,
-          offset: 57,
-        });
-      });
+          offset: 57
+        })
+      })
     },
 
     jump(id, type) {
       if (type) {
-        sessionStorage.setItem("type", type);
+        sessionStorage.setItem("type", type)
       }
       this.$router.push({
         path: "/personalCenter",
         query: {
-          id: id,
-        },
-      });
+          id: id
+        }
+      })
     },
 
     search() {
       this.$router.push({
         path: "/product",
         query: {
-          keyWord: this.keyWord,
-        },
-      });
+          keyWord: this.keyWord
+        }
+      })
     },
 
     jumpToSearch(keyWord) {
       this.$router.push({
         path: "/product",
         query: {
-          keyWord,
-        },
-      });
-    },
-  },
-};
+          keyWord
+        }
+      })
+    }
+  }
+}
 </script>
 
 <style lang="scss" scoped>
@@ -534,4 +518,4 @@
     }
   }
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/router/index.js b/src/router/index.js
index cb6a972..cb04519 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -118,6 +118,12 @@
     path: "/video",
     name: "video",
     component: () => import(/* webpackChunkName: "about" */ "../views/video")
+  },
+  {
+    // 鏁版嵁鍙鍖�
+    path: "/dataView",
+    name: "dataView",
+    component: () => import(/* webpackChunkName: "about" */ "../views/dataView")
   }
 ]
 
diff --git a/src/views/dataView/fonts/yjsz.TTF b/src/views/dataView/fonts/yjsz.TTF
new file mode 100644
index 0000000..6928f9b
--- /dev/null
+++ b/src/views/dataView/fonts/yjsz.TTF
Binary files differ
diff --git a/src/views/dataView/index.vue b/src/views/dataView/index.vue
new file mode 100644
index 0000000..7942f46
--- /dev/null
+++ b/src/views/dataView/index.vue
@@ -0,0 +1,578 @@
+<template>
+  <div class="data-view">
+    <div id="load" v-show="loading">
+      <div class="load_img">
+        <!-- 鍔犺浇鍔ㄧ敾 -->
+        <img class="jzxz1" src="/images/data-v/jzxz1.png" />
+        <img class="jzxz2" src="/images/data-v/jzxz2.png" />
+      </div>
+    </div>
+    <div class="head_top"><span>鏅烘収宸ュ巶鍙鍖栭┚椹惰埍</span></div>
+    <div class="visual">
+      <div class="left-top10">
+        <div class="title">
+          <span>閮ㄩ棬鍛婅鏁伴噺 TOP10</span>
+        </div>
+      </div>
+      <div class="center">
+        <div class="center-left">
+          <div class="center-count">
+            <b>219</b>
+            <p style="margin-top:2px">褰撳墠鐩戞祴鐐规�婚噺</p>
+            <p style="margin-top:35px">鍦烘櫙鎬婚噺: 800</p>
+            <p style="margin-top:5px">绠楁硶鎬婚噺: 11</p>
+          </div>
+        </div>
+      </div>
+      <div class="right-week">
+        <div class="title">
+          <span>杩�7鏃ユ暣鏀规暟閲忕粺璁�</span>
+        </div>
+        <div id="barChart" style="width: 100%;height:100%"></div>
+      </div>
+      <div class="right-device">
+        <div class="title">
+          <span>鏁版嵁鐩戞帶</span>
+        </div>
+        <div class="device-count">
+          <img src="/images/data-v/d-total.png" alt="" />
+          <div
+            style="position: absolute;
+    top: 43%;
+    left: 36%;
+    font-size: 26px;
+    color: #d9d6d6;"
+          >
+            璁惧鎬婚噺
+          </div>
+          <div
+            style="position: absolute;
+    top: 59%;
+    left: 45%;
+    font-size: 26px;
+    color: #ffffff;"
+          >
+            6
+          </div>
+
+          <div
+            class="online"
+            style="position: absolute;
+    right: 23%;
+    top: 17%;"
+          >
+            <img src="/images/data-v/online.png" alt="" />
+          </div>
+          <div
+            class="offline"
+            style="position: absolute;
+    right: 23%;
+    top: 58%;"
+          >
+            <img src="/images/data-v/offline.png" alt="" />
+          </div>
+        </div>
+      </div>
+      <div class="right-type">
+        <div class="title">
+          <span>鍛婅绫诲瀷鍗犳瘮</span>
+        </div>
+        <div id="pieChart" style="width: 100%;height:100%"></div>
+      </div>
+      <div class="bottom-line">
+        <div class="title">
+          <span>鍛婅鏁伴噺瓒嬪娍</span>
+        </div>
+        <div id="lineChart" style="width: 100%;height:100%"></div>
+      </div>
+      <div class="clear"></div>
+    </div>
+  </div>
+</template>
+
+<script>
+import * as echarts from "echarts"
+export default {
+  components: {},
+  data() {
+    return {
+      loading: false,
+      lineChart: {},
+      pieChart: {},
+      barChart: {},
+      lineChartOption: {
+        grid: {
+          left: "3%",
+          right: "3%",
+          bottom: "20%",
+          containLabel: true
+        },
+        legend: {
+          x: "right",
+          y: "top",
+          itemHeight: 2,
+          itemWidth: 2,
+          icon: "circle"
+        },
+        tooltip: {},
+        xAxis: {
+          type: "category",
+          boundaryGap: false,
+          axisTick: {
+            show: false
+          },
+          axisLabel: {
+            color: "#666"
+          },
+          data: ["1", "2", "3", "4", "5", "6", "7"]
+        },
+        yAxis: {
+          axisTick: {
+            show: false
+          },
+          axisLine: {
+            //y杞�
+            show: false
+          },
+          axisLabel: {
+            color: "#666"
+          },
+          splitLine: {
+            //缃戞牸绾�
+            lineStyle: {
+              color: "rgb(230, 230, 230)",
+              type: "dashed" //璁剧疆缃戞牸绾跨被鍨� dotted锛氳櫄绾�   solid:瀹炵嚎
+            },
+            show: false //闅愯棌鎴栨樉绀�
+          }
+        },
+        // Declare several bar series, each will be mapped
+        // to a column of dataset.source by default.
+        series: [
+          {
+            type: "line",
+            data: [55, 33, 22, 33, 55, 43, 11],
+            areaStyle: {
+              color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                {
+                  offset: 0,
+                  color: "#0066FF"
+                },
+                {
+                  offset: 1,
+                  color: "rgba(0, 102, 255, 0.25)"
+                }
+              ])
+            },
+            color: {
+              type: "linear",
+              x: 0.02,
+              y: 0.02,
+              x2: 1,
+              y2: 1,
+              colorStops: [
+                {
+                  offset: 0,
+                  color: "#0066FF" // 0% 澶勭殑棰滆壊
+                  // radius: ["50%", "80%"]
+                },
+                {
+                  offset: 1,
+                  color: "rgba(0, 102, 255, 0.25)" // 100% 澶勭殑棰滆壊
+                }
+              ],
+              global: false // 缂虹渷涓� false
+            },
+            itemStyle: {
+              //鏌卞舰鍥惧渾瑙掞紝榧犳爣绉讳笂鍘绘晥鏋滐紝濡傛灉鍙槸涓�涓暟瀛楀垯璇存槑鍥涗釜鍙傛暟鍏ㄩ儴璁剧疆涓洪偅涔堝
+              normal: {
+                //鏌卞舰鍥惧渾瑙掞紝鍒濆鍖栨晥鏋�
+                barBorderRadius: [15, 15, 0, 0]
+              }
+            }
+          }
+        ]
+      },
+      barChartOption: {
+        grid: {
+          left: "10%",
+          right: "20%",
+          bottom: "20%",
+          containLabel: true
+        },
+        legend: {
+          x: "right",
+          y: "top",
+          itemHeight: 2,
+          itemWidth: 2,
+          icon: "circle"
+        },
+        tooltip: {},
+        xAxis: {
+          type: "category",
+          boundaryGap: false,
+          axisTick: {
+            show: false
+          },
+          axisLabel: {
+            color: "#666"
+          },
+          data: ["鐑熼浘", "鏄庣伀", "绂诲矖", "鑱氶泦"]
+        },
+        yAxis: {
+          axisTick: {
+            show: false
+          },
+          axisLine: {
+            //y杞�
+            show: false
+          },
+          axisLabel: {
+            color: "#666"
+          },
+          splitLine: {
+            //缃戞牸绾�
+            lineStyle: {
+              color: "rgb(230, 230, 230)",
+              type: "dashed" //璁剧疆缃戞牸绾跨被鍨� dotted锛氳櫄绾�   solid:瀹炵嚎
+            },
+            show: false //闅愯棌鎴栨樉绀�
+          }
+        },
+        // Declare several bar series, each will be mapped
+        // to a column of dataset.source by default.
+        series: [
+          {
+            type: "bar",
+            data: [55, 33, 22, 33],
+            areaStyle: {
+              color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                {
+                  offset: 0,
+                  color: "#0066FF"
+                },
+                {
+                  offset: 1,
+                  color: "rgba(0, 102, 255, 0.25)"
+                }
+              ])
+            },
+            color: {
+              type: "linear",
+              x: 0.02,
+              y: 0.02,
+              x2: 1,
+              y2: 1,
+              colorStops: [
+                {
+                  offset: 0,
+                  color: "#0066FF" // 0% 澶勭殑棰滆壊
+                  // radius: ["50%", "80%"]
+                },
+                {
+                  offset: 1,
+                  color: "rgba(0, 102, 255, 0.25)" // 100% 澶勭殑棰滆壊
+                }
+              ],
+              global: false // 缂虹渷涓� false
+            },
+            itemStyle: {
+              //鏌卞舰鍥惧渾瑙掞紝榧犳爣绉讳笂鍘绘晥鏋滐紝濡傛灉鍙槸涓�涓暟瀛楀垯璇存槑鍥涗釜鍙傛暟鍏ㄩ儴璁剧疆涓洪偅涔堝
+              normal: {
+                //鏌卞舰鍥惧渾瑙掞紝鍒濆鍖栨晥鏋�
+                barBorderRadius: [15, 15, 0, 0]
+              }
+            }
+          }
+        ]
+      },
+      pieChartOption: {
+        legend: {
+          top: "bottom"
+        },
+        color: [
+          "rgb(54, 60, 231)",
+          "rgb(54, 178, 74)",
+          "rgb(255, 178, 36)",
+          "rgb(240, 190, 231)",
+          "rgb(255, 124, 31)",
+          "rgb(165, 96, 255)"
+        ],
+        series: [
+          {
+            name: "Nightingale Chart",
+            type: "pie",
+            radius: [20, 160],
+            center: ["50%", "50%"],
+            roseType: "area",
+            itemStyle: {
+              borderRadius: 8
+            },
+            label: {
+              show: false
+            },
+            data: [23, 55, 11, 33, 22, 66]
+          }
+        ]
+      }
+    }
+  },
+  mounted() {
+    setTimeout(() => {
+      this.loading = false
+    }, 3000)
+
+    this.$nextTick(() => {
+      this.initLineChart()
+      this.initPieChart()
+      this.initBarChart()
+    })
+  },
+  methods: {
+    initLineChart() {
+      console.log("lineChart")
+      let chartDom = document.getElementById("lineChart")
+      this.lineChart = echarts.init(chartDom)
+      this.lineChart.setOption(this.lineChartOption)
+      this.lineChart.resize()
+      console.log(this.lineChart)
+    },
+    initPieChart() {
+      console.log("pieChart")
+      let chartDom = document.getElementById("pieChart")
+      this.pieChart = echarts.init(chartDom)
+      this.pieChart.setOption(this.pieChartOption)
+      this.pieChart.resize()
+      console.log(this.pieChart)
+    },
+    initBarChart() {
+      console.log("barChart")
+      let chartDom = document.getElementById("barChart")
+      this.barChart = echarts.init(chartDom)
+      this.barChart.setOption(this.barChartOption)
+      this.barChart.resize()
+      console.log(this.barChart)
+    }
+  }
+}
+</script>
+
+<style scoped>
+@font-face {
+  font-family: yjsz;
+  src: url("./fonts/yjsz.TTF"); /* IE9+,鍙互鏄叿浣撶殑瀹為檯閾炬帴 */
+}
+ul {
+  padding: 0;
+  margin: 0;
+}
+a {
+  text-decoration: none !important;
+}
+.clear {
+  clear: both;
+}
+
+.title {
+  margin-top: 27px;
+  margin-left: 25px;
+  font-size: 15px;
+  font-weight: 700;
+  color: #fff;
+}
+
+.data-view {
+  width: 100%;
+  height: 100%;
+  /* padding: 15px; */
+  background: #0c194d;
+  /* background: url(/images/data-v/bg.jpg); */
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  background-size: cover;
+  overflow: hidden;
+  position: absolute;
+  z-index: -2;
+}
+
+/* 鍔犺浇鏃嬭浆鍔ㄧ敾 */
+#load {
+  width: 100%;
+  height: 100%;
+  position: absolute;
+  background: url(/images/data-v/data08.png) no-repeat #061537;
+  background-size: cover;
+  top: 0;
+  left: 0;
+  z-index: 999;
+}
+
+#load .load_img {
+  position: absolute;
+  left: calc(50% - 182px);
+  top: calc(50% - 182px);
+}
+
+.load_img img {
+  position: absolute;
+  left: 0;
+  top: 0;
+}
+
+.load_img .jzxz1 {
+  animation: xz1 8s infinite linear;
+}
+
+@keyframes xz1 {
+  from {
+    transform: rotate(0deg);
+  }
+  50% {
+    transform: rotate(180deg);
+  }
+  to {
+    transform: rotate(360deg);
+  }
+}
+
+.load_img .jzxz2 {
+  animation: xz2 7s infinite linear;
+}
+
+@keyframes xz2 {
+  from {
+    transform: rotate(0deg);
+  }
+  50% {
+    transform: rotate(-180deg);
+  }
+  to {
+    transform: rotate(-360deg);
+  }
+}
+
+.head_top {
+  position: relative;
+  background: url(/images/data-v/head.png) no-repeat center center;
+  height: 120px;
+  line-height: 120px;
+  font-style: italic;
+}
+
+.head_top span {
+  text-align: center;
+  height: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  font-size: 55px;
+  font-weight: 700;
+  background: linear-gradient(0deg, #fff, #fff);
+  background-size: cover;
+  -webkit-background-clip: text;
+  background-clip: text;
+  -webkit-text-fill-color: transparent;
+  /* text-fill-color: transparent; font-weight: bolder; cursor: text; */
+}
+.head_top img {
+  width: 90%;
+  margin: auto;
+}
+.head_top p {
+  width: 100%;
+  text-align: center;
+  color: #55bfff;
+  position: absolute;
+  bottom: -18px;
+  left: -10px;
+}
+.head_top p span {
+  font-family: "yjsz";
+  font-size: 20px;
+}
+
+.left-top10 {
+  background: url(/images/data-v/top10.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  height: 53%;
+  width: 20%;
+  position: absolute;
+  top: 12%;
+  left: 2%;
+}
+
+.center {
+  /* background: #edeef1; */
+  width: 46%;
+  height: 52%;
+  position: absolute;
+  left: 23%;
+  top: 11%;
+}
+
+.center .center-left {
+  background: url(/images/data-v/center.png) no-repeat center center;
+  width: 75%;
+  height: 100%;
+  text-align: center;
+}
+
+.center .center-count {
+  position: relative;
+  top: 60%;
+  color: #fff;
+}
+
+.right-week {
+  background: url(/images/data-v/week.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  height: 33%;
+  width: 28%;
+  position: absolute;
+  top: 8%;
+  right: 2%;
+}
+
+.right-device {
+  background: url(/images/data-v/data-m.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  height: 23%;
+  width: 28%;
+  position: absolute;
+  top: 43%;
+  right: 2%;
+}
+
+.right-type {
+  background: url(/images/data-v/type.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  height: 30%;
+  width: 28%;
+  position: absolute;
+  bottom: 2%;
+  right: 2%;
+}
+
+.bottom-line {
+  background: url(/images/data-v/lineup.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  /* height: 31%;
+  width: 66%; */
+  height: 309px;
+  width: 1268px;
+  position: absolute;
+  bottom: 2%;
+  left: 2%;
+}
+
+.device-count {
+  width: 50%;
+  margin-top: 35px;
+  margin-left: 68px;
+}
+</style>
diff --git a/src/views/equipmentManagement/equipmentList/components/FormList.vue b/src/views/equipmentManagement/equipmentList/components/FormList.vue
index 84f9ee9..7bce9b9 100644
--- a/src/views/equipmentManagement/equipmentList/components/FormList.vue
+++ b/src/views/equipmentManagement/equipmentList/components/FormList.vue
@@ -53,7 +53,7 @@
         <el-table-column label="搴忓彿" width="80" class-name="index">
           <template slot-scope="scope">{{ scope.$index + 1 + (page - 1) * size }}</template>
         </el-table-column>
-        <el-table-column prop="devId" label="璁惧ID" min-width="185" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="devId" label="璁惧ID" min-width="210" show-overflow-tooltip></el-table-column>
         <el-table-column prop="devName" label="璁惧鍚嶇О" min-width="140" show-overflow-tooltip></el-table-column>
         <el-table-column prop="devIp" label="IP鍦板潃" min-width="150"></el-table-column>
         <el-table-column label="瀹夎鏃堕棿" min-width="159">
@@ -393,10 +393,6 @@
         Temp = document.createElement("a")
 
       Temp.href = window.URL.createObjectURL(blob)
-
-      console.log(result)
-      console.log(result.fileName)
-
       Temp.download = window.decodeURI(result.fileName)
 
       Temp.setAttribute("download", result.fileName)
@@ -421,7 +417,7 @@
   .search {
     display: flex;
     justify-content: space-between;
-    padding: 60px 0 30px 0;
+    padding: 20px 0 30px 0;
     font-size: 14px;
     border-bottom: 1px solid #e9ebee;
     background-color: #fff;
@@ -531,6 +527,10 @@
     }
   }
 
+  .table-area {
+    min-height: 600px;
+  }
+
   .btns {
     display: flex;
     margin: 30px 0;
diff --git a/src/views/equipmentManagement/equipmentList/index.vue b/src/views/equipmentManagement/equipmentList/index.vue
index cbe38fc..ed7e4d4 100644
--- a/src/views/equipmentManagement/equipmentList/index.vue
+++ b/src/views/equipmentManagement/equipmentList/index.vue
@@ -3,13 +3,11 @@
     <!-- 椤靛ご -->
     <IndexHeader :opacity="false"></IndexHeader>
     <!-- 闈㈠寘灞� -->
-    <div class="heart">
-      <el-breadcrumb separator=">">
-        <el-breadcrumb-item :to="{ path: '/manageCenter' }"
-          >绠$悊涓績</el-breadcrumb-item
-        >
+    <div class="breadcrumb">
+      <!-- <el-breadcrumb separator=">">
+        <el-breadcrumb-item :to="{ path: '/manageCenter' }">绠$悊涓績</el-breadcrumb-item>
         <el-breadcrumb-item>璁惧绠$悊</el-breadcrumb-item>
-      </el-breadcrumb>
+      </el-breadcrumb> -->
     </div>
 
     <!-- 涓昏鍐呭 -->
@@ -21,23 +19,25 @@
 </template>
 
 <script>
-import IndexHeader from "@/components/IndexHeader";
-import Content from "@/views/equipmentManagement/equipmentList/components/Content";
-import Footer from "@/components/Footer";
+import IndexHeader from "@/components/IndexHeader"
+import Content from "@/views/equipmentManagement/equipmentList/components/Content"
+import Footer from "@/components/Footer"
 
 export default {
   components: {
     IndexHeader,
     Content,
-    Footer,
-  },
-};
+    Footer
+  }
+}
 </script>
 
 <style lang="scss" scoped>
 .equipmentList {
   background-color: rgb(243, 245, 248);
-
+  .breadcrumb {
+    height: 10px;
+  }
   .el-breadcrumb {
     margin-top: 48px;
     margin-bottom: 24px;
@@ -47,4 +47,4 @@
     }
   }
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/hashrate/hashrateDetail/index.vue b/src/views/hashrate/hashrateDetail/index.vue
index 01583f5..44d0dec 100644
--- a/src/views/hashrate/hashrateDetail/index.vue
+++ b/src/views/hashrate/hashrateDetail/index.vue
@@ -5,11 +5,12 @@
     <!-- 鍏ㄥ睆鐗堝績 -->
     <div class="fullScreenheart">
       <!-- 闈㈠寘灞� -->
-      <el-breadcrumb separator=">">
-        <el-breadcrumb-item :to="{ path: '/manageCenter' }">绠$悊涓績</el-breadcrumb-item>
-        <el-breadcrumb-item>绠楀姏绠$悊</el-breadcrumb-item>
-      </el-breadcrumb>
-
+      <div class="breadcrumb">
+        <!-- <el-breadcrumb separator=">">
+          <el-breadcrumb-item :to="{ path: '/manageCenter' }">绠$悊涓績</el-breadcrumb-item>
+          <el-breadcrumb-item>绠楀姏绠$悊</el-breadcrumb-item>
+        </el-breadcrumb> -->
+      </div>
       <!-- tab鏍� -->
       <div class="tabs">
         <div
@@ -67,7 +68,9 @@
   .fullScreenheart {
     min-height: calc(100vh - 210px);
   }
-
+  .breadcrumb {
+    height: 10px;
+  }
   .el-breadcrumb {
     margin-top: 48px;
     margin-bottom: 24px;
diff --git a/src/views/manageCenter/index.vue b/src/views/manageCenter/index.vue
index 2b64b8c..cdb76cc 100644
--- a/src/views/manageCenter/index.vue
+++ b/src/views/manageCenter/index.vue
@@ -295,6 +295,13 @@
           path: "/search",
           permission: "statisticMng"
         },
+        {
+          name: "缁熻鍒嗘瀽",
+          icon: "/images/manageCenter/search.png",
+          openPath: "/dataView",
+          path: "/dataView",
+          permission: "statisticMng"
+        },
 
         {
           name: "鎺ㄩ�佺鐞�",
@@ -700,9 +707,9 @@
         return item == route.permission
       })
       if (val) {
-        if (route.path === "/search") {
+        if (route.path === "/search" || route.path === "/dataView") {
           const { href } = this.$router.resolve({
-            path: "/search"
+            path: route.path
           })
           window.open(href, "_blank")
           return
diff --git a/src/views/report/index.vue b/src/views/report/index.vue
index d417d2e..0d8a62e 100644
--- a/src/views/report/index.vue
+++ b/src/views/report/index.vue
@@ -1,13 +1,13 @@
 <template>
-  <div class="GB28181">
+  <div class="data-report">
     <!-- 椤靛ご -->
     <IndexHeader :opacity="false"></IndexHeader>
     <!-- 闈㈠寘灞� -->
-    <div class="heart">
-      <el-breadcrumb separator=">">
+    <div class="breadcrumb">
+      <!-- <el-breadcrumb separator=">">
         <el-breadcrumb-item :to="{ path: '/manageCenter' }">绠$悊涓績</el-breadcrumb-item>
         <el-breadcrumb-item>鎺ㄩ�佺鐞�</el-breadcrumb-item>
-      </el-breadcrumb>
+      </el-breadcrumb> -->
     </div>
 
     <!-- 涓昏鍐呭 -->
@@ -35,11 +35,14 @@
 </script>
 
 <style lang="scss" scoped>
-.GB28181 {
+.data-report {
   background-color: rgb(243, 245, 248);
   position: relative;
-  min-height: 200vh;
+  min-height: 50vh;
 
+  .breadcrumb {
+    height: 10px;
+  }
   .el-breadcrumb {
     margin-top: 48px;
     margin-bottom: 24px;
diff --git a/src/views/video/index.vue b/src/views/video/index.vue
index 1145b16..88f636d 100644
--- a/src/views/video/index.vue
+++ b/src/views/video/index.vue
@@ -4,12 +4,13 @@
     <IndexHeader :opacity="false"></IndexHeader>
     <!-- 鍏ㄥ睆鐗堝績 -->
     <div class="fullScreenheart">
-      <!-- 闈㈠寘灞� -->
-      <el-breadcrumb separator=">">
-        <el-breadcrumb-item :to="{ path: '/manageCenter' }">绠$悊涓績</el-breadcrumb-item>
-        <el-breadcrumb-item>瀹炴椂鐩戞帶</el-breadcrumb-item>
-      </el-breadcrumb>
-
+      <div class="breadcrumb">
+        <!-- 闈㈠寘灞� -->
+        <!-- <el-breadcrumb separator=">">
+          <el-breadcrumb-item :to="{ path: '/manageCenter' }">绠$悊涓績</el-breadcrumb-item>
+          <el-breadcrumb-item>瀹炴椂鐩戞帶</el-breadcrumb-item>
+        </el-breadcrumb> -->
+      </div>
       <!-- tab鏍� -->
       <Video></Video>
     </div>
@@ -45,6 +46,9 @@
 
   .fullScreenheart {
     min-height: calc(100vh - 210px);
+    .breadcrumb {
+      height: 10px;
+    }
   }
 
   .el-breadcrumb {

--
Gitblit v1.8.0