jiawuxian 1 рік тому
батько
коміт
28cf21ead2
4 змінених файлів з 324 додано та 75 видалено
  1. 68 75
      package-lock.json
  2. 10 0
      src/api/iot/board.js
  3. 6 0
      src/router/router.config.js
  4. 240 0
      src/views/menu/iot/board/index.vue

+ 68 - 75
package-lock.json

@@ -185,7 +185,6 @@
       "version": "7.22.5",
       "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz",
       "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==",
-      "dev": true,
       "requires": {
         "@babel/types": "^7.22.5"
       }
@@ -215,8 +214,7 @@
     "@babel/helper-plugin-utils": {
       "version": "7.22.5",
       "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
-      "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
-      "dev": true
+      "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg=="
     },
     "@babel/helper-remap-async-to-generator": {
       "version": "7.22.9",
@@ -270,14 +268,12 @@
     "@babel/helper-string-parser": {
       "version": "7.22.5",
       "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
-      "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
-      "dev": true
+      "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw=="
     },
     "@babel/helper-validator-identifier": {
       "version": "7.22.5",
       "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz",
-      "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==",
-      "dev": true
+      "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ=="
     },
     "@babel/helper-validator-option": {
       "version": "7.22.5",
@@ -476,7 +472,6 @@
       "version": "7.22.5",
       "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz",
       "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==",
-      "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.22.5"
       }
@@ -1061,6 +1056,22 @@
         "@babel/helper-plugin-utils": "^7.22.5"
       }
     },
+    "@babel/polyfill": {
+      "version": "7.12.1",
+      "resolved": "http://nuget.cd.xunmei.com/npm/npm-public/%40babel/polyfill/-/polyfill-7.12.1.tgz",
+      "integrity": "sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==",
+      "requires": {
+        "core-js": "^2.6.5",
+        "regenerator-runtime": "^0.13.4"
+      },
+      "dependencies": {
+        "core-js": {
+          "version": "2.6.12",
+          "resolved": "http://nuget.cd.xunmei.com/npm/npm-public/core-js/-/core-js-2.6.12.tgz",
+          "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
+        }
+      }
+    },
     "@babel/preset-env": {
       "version": "7.22.9",
       "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.22.9.tgz",
@@ -1209,7 +1220,6 @@
       "version": "7.22.5",
       "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.22.5.tgz",
       "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==",
-      "dev": true,
       "requires": {
         "@babel/helper-string-parser": "^7.22.5",
         "@babel/helper-validator-identifier": "^7.22.5",
@@ -1751,7 +1761,6 @@
       "version": "1.4.0",
       "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.4.0.tgz",
       "integrity": "sha512-Fmastxw4MMx0vlgLS4XBX0XiBbUFzoMGeVXuMV08wyOfXdikAFqBTuYPR0tlk+XskL19EzHc39SgjrPGY23JnA==",
-      "dev": true,
       "requires": {
         "@babel/helper-module-imports": "^7.0.0",
         "@babel/plugin-syntax-jsx": "^7.2.0",
@@ -1764,8 +1773,7 @@
         "html-tags": {
           "version": "2.0.0",
           "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-2.0.0.tgz",
-          "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==",
-          "dev": true
+          "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g=="
         }
       }
     },
@@ -1823,7 +1831,6 @@
       "version": "1.4.0",
       "resolved": "https://registry.npmmirror.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.4.0.tgz",
       "integrity": "sha512-QmfRpssBOPZWL5xw7fOuHNifCQcNQC1PrOo/4fu6xlhlKJJKSA3HqX92Nvgyx8fqHZTUGMPHmFA+IDqwXlqkSA==",
-      "dev": true,
       "requires": {
         "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0",
         "@vue/babel-plugin-transform-vue-jsx": "^1.4.0",
@@ -1839,7 +1846,6 @@
       "version": "1.4.0",
       "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.4.0.tgz",
       "integrity": "sha512-VQq6zEddJHctnG4w3TfmlVp5FzDavUSut/DwR0xVoe/mJKXyMcsIibL42wPntozITEoY90aBV0/1d2KjxHU52g==",
-      "dev": true,
       "requires": {
         "@babel/plugin-syntax-jsx": "^7.2.0"
       }
@@ -1848,7 +1854,6 @@
       "version": "1.4.0",
       "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.4.0.tgz",
       "integrity": "sha512-6ZDAzcxvy7VcnCjNdHJ59mwK02ZFuP5CnucloidqlZwVQv5CQLijc3lGpR7MD3TWFi78J7+a8J56YxbCtHgT9Q==",
-      "dev": true,
       "requires": {
         "@babel/plugin-syntax-jsx": "^7.2.0"
       }
@@ -1857,7 +1862,6 @@
       "version": "1.4.0",
       "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.4.0.tgz",
       "integrity": "sha512-lTEB4WUFNzYt2In6JsoF9sAYVTo84wC4e+PoZWSgM6FUtqRJz7wMylaEhSRgG71YF+wfLD6cc9nqVeXN2rwBvw==",
-      "dev": true,
       "requires": {
         "@babel/plugin-syntax-jsx": "^7.2.0"
       }
@@ -1866,7 +1870,6 @@
       "version": "1.4.0",
       "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.4.0.tgz",
       "integrity": "sha512-muwWrPKli77uO2fFM7eA3G1lAGnERuSz2NgAxuOLzrsTlQl8W4G+wwbM4nB6iewlKbwKRae3nL03UaF5ffAPMA==",
-      "dev": true,
       "requires": {
         "@babel/plugin-syntax-jsx": "^7.2.0"
       }
@@ -1875,7 +1878,6 @@
       "version": "1.4.0",
       "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.4.0.tgz",
       "integrity": "sha512-0t4HGgXb7WHYLBciZzN5s0Hzqan4Ue+p/3FdQdcaHAb7s5D9WZFGoSxEZHrR1TFVZlAPu1bejTKGeAzaaG3NCQ==",
-      "dev": true,
       "requires": {
         "@babel/plugin-syntax-jsx": "^7.2.0",
         "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0",
@@ -1888,14 +1890,12 @@
         "camelcase": {
           "version": "5.3.1",
           "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz",
-          "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
-          "dev": true
+          "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
         },
         "html-tags": {
           "version": "2.0.0",
           "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-2.0.0.tgz",
-          "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==",
-          "dev": true
+          "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g=="
         }
       }
     },
@@ -1903,7 +1903,6 @@
       "version": "1.4.0",
       "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.4.0.tgz",
       "integrity": "sha512-m+zud4wKLzSKgQrWwhqRObWzmTuyzl6vOP7024lrpeJM4x2UhQtRDLgYjXAw9xBXjCwS0pP9kXjg91F9ZNo9JA==",
-      "dev": true,
       "requires": {
         "@babel/plugin-syntax-jsx": "^7.2.0",
         "@vue/babel-plugin-transform-vue-jsx": "^1.4.0",
@@ -1913,8 +1912,7 @@
         "camelcase": {
           "version": "5.3.1",
           "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz",
-          "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
-          "dev": true
+          "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
         }
       }
     },
@@ -2014,49 +2012,6 @@
         "webpack-merge": "^5.7.3",
         "webpack-virtual-modules": "^0.4.2",
         "whatwg-fetch": "^3.6.2"
-      },
-      "dependencies": {
-        "@vue/vue-loader-v15": {
-          "version": "npm:vue-loader@15.11.1",
-          "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.11.1.tgz",
-          "integrity": "sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==",
-          "dev": true,
-          "requires": {
-            "@vue/component-compiler-utils": "^3.1.0",
-            "hash-sum": "^1.0.2",
-            "loader-utils": "^1.1.0",
-            "vue-hot-reload-api": "^2.3.0",
-            "vue-style-loader": "^4.1.0"
-          },
-          "dependencies": {
-            "hash-sum": {
-              "version": "1.0.2",
-              "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz",
-              "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
-              "dev": true
-            }
-          }
-        },
-        "json5": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz",
-          "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.0"
-          }
-        },
-        "loader-utils": {
-          "version": "1.4.2",
-          "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz",
-          "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
-          "dev": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^1.0.1"
-          }
-        }
       }
     },
     "@vue/cli-shared-utils": {
@@ -2221,6 +2176,47 @@
         }
       }
     },
+    "@vue/vue-loader-v15": {
+      "version": "npm:vue-loader@15.11.1",
+      "resolved": "http://nuget.cd.xunmei.com/npm/npm-public/vue-loader/-/vue-loader-15.11.1.tgz",
+      "integrity": "sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==",
+      "dev": true,
+      "requires": {
+        "@vue/component-compiler-utils": "^3.1.0",
+        "hash-sum": "^1.0.2",
+        "loader-utils": "^1.1.0",
+        "vue-hot-reload-api": "^2.3.0",
+        "vue-style-loader": "^4.1.0"
+      },
+      "dependencies": {
+        "hash-sum": {
+          "version": "1.0.2",
+          "resolved": "http://nuget.cd.xunmei.com/npm/npm-public/hash-sum/-/hash-sum-1.0.2.tgz",
+          "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
+          "dev": true
+        },
+        "json5": {
+          "version": "1.0.2",
+          "resolved": "http://nuget.cd.xunmei.com/npm/npm-public/json5/-/json5-1.0.2.tgz",
+          "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.2",
+          "resolved": "http://nuget.cd.xunmei.com/npm/npm-public/loader-utils/-/loader-utils-1.4.2.tgz",
+          "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        }
+      }
+    },
     "@vue/web-component-wrapper": {
       "version": "1.3.0",
       "resolved": "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz",
@@ -5273,8 +5269,7 @@
     "lodash.kebabcase": {
       "version": "4.1.1",
       "resolved": "https://registry.npmmirror.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz",
-      "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==",
-      "dev": true
+      "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g=="
     },
     "lodash.mapvalues": {
       "version": "4.6.0",
@@ -7553,8 +7548,7 @@
     "svg-tags": {
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz",
-      "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==",
-      "dev": true
+      "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA=="
     },
     "svgo": {
       "version": "2.8.0",
@@ -7684,8 +7678,7 @@
     "to-fast-properties": {
       "version": "2.0.0",
       "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-      "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
-      "dev": true
+      "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
     },
     "to-regex-range": {
       "version": "5.0.1",
@@ -7932,7 +7925,7 @@
     },
     "vue-hot-reload-api": {
       "version": "2.3.4",
-      "resolved": "https://registry.npmmirror.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
+      "resolved": "http://nuget.cd.xunmei.com/npm/npm-public/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
       "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
       "dev": true
     },

+ 10 - 0
src/api/iot/board.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 查询【请填写功能名称】列表
+export function overView(query) {
+  return request({
+    url: '/iot/board/app',
+    method: 'post',
+    data: query
+  })
+}

+ 6 - 0
src/router/router.config.js

@@ -184,6 +184,12 @@ export let routers = [
         meta: { title: '动环设备详情', keepAlive: false }
       },
       {
+        path: '/iot/board',
+        name: 'iot_board',
+        component: () => import('@/views/menu/iot/board'),
+        meta: { title: '物联看板', keepAlive: false }
+      },
+      {
         path: '/monitoringCall',
         name: 'monitoringCall',
         component: () => import('@/views/menu/monitoringCall/index'),

+ 240 - 0
src/views/menu/iot/board/index.vue

@@ -0,0 +1,240 @@
+<template>
+  <div class="page_list">
+    <nav-bar></nav-bar>
+    <van-row>
+      <van-col span="24">
+        <org-tree v-model="search.orgId" :name="'sss'" @changeItem="getDataList"></org-tree>
+      </van-col>
+    </van-row>
+    <div v-if="data">
+      <van-row class="boxCard">
+        <van-col :span="24" class="titleSty">
+          <span class="leftSty"></span><span>{{ data.host.name }}</span>
+        </van-col>
+        <van-col :span="8" class="boxmain">
+          <div>数量</div>
+          <div class="wj-title-blue font5vw">{{ data.host.count }}</div>
+        </van-col>
+        <van-col :span="8" class="boxmain centerBox">
+          <div>在线</div>
+          <div class="wj-title-blue font5vw">{{ data.host.normal }}</div>
+        </van-col>
+        <van-col :span="8" class="boxmain">
+          <div>离线</div>
+          <div class="wj-title-blue font5vw">{{ data.host.exception }}</div>
+        </van-col>
+      </van-row>
+      <van-row class="boxCard">
+        <van-col :span="24" class="titleSty">
+          <span class="leftSty"></span><span>{{ data.sensor.name }}</span>
+        </van-col>
+        <van-col :span="8" class="boxmain">
+          <div>数量</div>
+          <div class="wj-title-blue font5vw">{{ data.sensor.count }}</div>
+        </van-col>
+        <van-col :span="8" class="boxmain centerBox">
+          <div>正常</div>
+          <div class="wj-title-blue font5vw">{{ data.sensor.normal }}</div>
+        </van-col>
+        <van-col :span="8" class="boxmain">
+          <div>报警</div>
+          <div class="wj-title-blue font5vw">{{ data.sensor.exception }}</div>
+        </van-col>
+      </van-row>
+      <van-row class="boxCard">
+        <van-col :span="24" class="titleSty">
+          <span class="leftSty"></span><span>{{ data.subsystem.name }}</span>
+        </van-col>
+        <van-col :span="8" class="boxmain">
+          <div>数量</div>
+          <div class="wj-title-blue font5vw">{{ data.subsystem.count }}</div>
+        </van-col>
+        <van-col :span="8" class="boxmain centerBox">
+          <div>布防</div>
+          <div class="wj-title-blue font5vw">{{ data.subsystem.normal }}</div>
+        </van-col>
+        <van-col :span="8" class="boxmain">
+          <div>撤防</div>
+          <div class="wj-title-blue font5vw">{{ data.subsystem.exception }}</div>
+        </van-col>
+      </van-row>
+      <van-row class="boxCard">
+        <van-col :span="24" class="titleSty">
+          <span class="leftSty"></span><span>{{ data.videoDays.name }}</span>
+        </van-col>
+        <van-col :span="8" class="boxmain">
+          <div>摄像头数量</div>
+          <div class="wj-title-blue font5vw">{{ data.videoDays.count }}</div>
+        </van-col>
+        <van-col :span="8" class="boxmain centerBox">
+          <div>完整</div>
+          <div class="wj-title-blue font5vw">{{ data.videoDays.normal }}</div>
+        </van-col>
+        <van-col :span="8" class="boxmain">
+          <div>不完整</div>
+          <div class="wj-title-blue font5vw">{{ data.videoDays.exception }}</div>
+        </van-col>
+      </van-row>
+      <van-row class="boxCard">
+        <van-col :span="24" class="titleSty">
+          <span class="leftSty"></span><span>{{ data.videoQuality.name }}</span>
+        </van-col>
+        <van-col :span="8" class="boxmain">
+          <div>摄像头数量</div>
+          <div class="wj-title-blue font5vw">{{ data.videoQuality.count }}</div>
+        </van-col>
+        <van-col :span="8" class="boxmain centerBox">
+          <div>正常</div>
+          <div class="wj-title-blue font5vw">{{ data.videoQuality.normal }}</div>
+        </van-col>
+        <van-col :span="8" class="boxmain">
+          <div>异常</div>
+          <div class="wj-title-blue font5vw">{{ data.videoQuality.exception }}</div>
+        </van-col>
+      </van-row>
+      <van-row class="boxCard">
+        <van-col :span="24" class="titleSty">
+          <span class="leftSty"></span><span>{{ data.videoInterity.name }}</span>
+        </van-col>
+        <van-col :span="6" class="boxmain">
+          <div>摄像头数量</div>
+          <div class="wj-title-blue font5vw">{{ data.videoInterity.count }}</div>
+        </van-col>
+        <van-col :span="6" class="boxmain centerBox">
+          <div>完整</div>
+          <div class="wj-title-blue font5vw">{{ data.videoInterity.normal }}</div>
+        </van-col>
+        <van-col :span="6" class="boxmain centerTwoBox">
+          <div>全部丢失</div>
+          <div class="wj-title-blue font5vw">{{ data.videoInterity.exception }}</div>
+        </van-col>
+        <van-col :span="6" class="boxmain">
+          <div>部分丢失</div>
+          <div class="wj-title-blue font5vw">{{ data.videoInterity.other1 }}</div>
+        </van-col>
+      </van-row>
+      <van-row class="boxCard">
+        <van-col :span="24" class="titleSty">
+          <span class="leftSty"></span><span>{{ data.dvrDisk.name }}</span>
+        </van-col>
+        <van-col :span="6" class="boxmain">
+          <div>录像机数量</div>
+          <div class="wj-title-blue font5vw">{{ data.dvrDisk.count }}</div>
+        </van-col>
+        <van-col :span="6" class="boxmain centerBox">
+          <div>硬盘总数</div>
+          <div class="wj-title-blue font5vw">{{ data.dvrDisk.other1 }}</div>
+        </van-col>
+        <van-col :span="6" class="boxmain centerTwoBox">
+          <div>正常</div>
+          <div class="wj-title-blue font5vw">{{ data.dvrDisk.normal }}</div>
+        </van-col>
+        <van-col :span="6" class="boxmain ">
+          <div>异常</div>
+          <div class="wj-title-blue font5vw">{{ data.dvrDisk.exception }}</div>
+        </van-col>
+      </van-row>
+    </div>
+  </div>
+</template>
+
+<script>
+import NavBar from '@/components/NavBar'
+import { mapGetters } from 'vuex'
+import OrgTree from '@/components/orgTree'
+import { overView } from '@/api/iot/board.js'
+
+export default {
+  components: { NavBar, OrgTree },
+  data() {
+    return {
+      search: {
+        orgId: this.orgId,
+        checkSub: true
+      },
+      data:null
+    }
+  },
+  watch: {},
+  created() {},
+  mounted() {
+    this.search.orgId = this.orgId
+    this.refresh();
+  },
+  computed: {
+    ...mapGetters(['orgName', 'orgId'])
+  },
+  methods: {
+    //改变机构后将重新发起请求
+    getDataList(node) {
+      this.search.orgId = node.id
+      this.refresh();
+    },
+    refresh() {
+      overView(this.search).then(r => {
+        this.data = r.data
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.titleRow {
+  box-shadow: 0 2px 10px #ccc;
+  margin-left: 12px;
+  // margin-top: 10px;
+  margin-right: 14px;
+}
+.boxCard {
+  background-color: #fff;
+  margin: 20px;
+  box-shadow: 0 2px 10px #ccc;
+}
+.leftSty {
+  display: inline-block;
+  width: 10px;
+  height: 5vw;
+  vertical-align: text-top;
+  margin-right: 10px;
+  margin-left: 10px;
+  background-color: #008cd6;
+}
+.titleSty {
+  line-height: 5vw;
+  font-size: 5vw;
+  margin: 10px;
+  color: #008cd6;
+}
+.boxmain {
+  display: flex;
+  flex-flow: wrap;
+  text-align: center;
+  margin-bottom: 20px;
+  div {
+    font-size: 28px;
+    width: 100%;
+    height: 100px;
+    line-height: 100px;
+  }
+}
+
+.centerBox {
+  border-left: 1px solid #008cd6;
+  border-right: 1px solid #008cd6;
+}
+.centerTwoBox {
+  border-right: 1px solid #008cd6;
+}
+.chartsCls {
+  font-size: 28px;
+  padding: 20px;
+}
+.tabsCard {
+  margin-top: 20px;
+}
+.font5vw {
+  font-size: 6vw !important;
+  font-weight: bold;
+}
+</style>