From 1259bce460f41ef166e4bb25a81690bcfd457e1b Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 03 四月 2024 11:43:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/system/video/index.vue                   |   62 ++++----
 src/views/system/recovery/index.vue                |   78 +++++++---
 src/views/system/face/index.vue                    |   70 ++++++---
 src/views/screen/components/screen-table/index.vue |   90 ++++++++++--
 src/api/platform/monitor.js                        |   16 ++
 src/views/system/car/index.vue                     |   69 ++++++---
 src/views/system/report/index.vue                  |   24 +++
 7 files changed, 289 insertions(+), 120 deletions(-)

diff --git a/src/api/platform/monitor.js b/src/api/platform/monitor.js
index d3f6317..b2f006f 100644
--- a/src/api/platform/monitor.js
+++ b/src/api/platform/monitor.js
@@ -9,6 +9,22 @@
   })
 }
 
+// 鏌ヨ璁惧璧勪骇缁熻鏁�
+export function videoCount(type) {
+  return request({
+    url: '/system/monitor/getVideoCount/' + type,
+    method: 'get'
+  })
+}
+
+// 鏌ヨ寮傚父鎭㈠璁惧璧勪骇缁熻鏁�
+export function recoveryException() {
+  return request({
+    url: '/system/monitor/recoveryException',
+    method: 'get'
+  })
+}
+
 // 鏌ヨ璁惧璧勪骇璇︾粏
 export function getMonitor(id) {
   return request({
diff --git a/src/views/screen/components/screen-table/index.vue b/src/views/screen/components/screen-table/index.vue
index df8fd27..52fe9ee 100644
--- a/src/views/screen/components/screen-table/index.vue
+++ b/src/views/screen/components/screen-table/index.vue
@@ -4,23 +4,59 @@
       <el-table :data="tableData" border :height="tableHeight" :max-height="tableHeight" class="rank-table">
         <el-table-column prop="name" label="鍦板尯" align="center" width="100">
         </el-table-column>
-        <el-table-column label="浜鸿劯璁惧" align="center">
-          <el-table-column prop="data1" label="璁惧姝e父鏁�" align="center">
-          </el-table-column>
-          <el-table-column prop="data1" label="璁惧寮傚父鏁�" align="center">
-          </el-table-column>
+
+        <el-table-column label="浜鸿劯璁惧姝e父鐜�" align="center">
+          <template slot-scope="scope">
+            <el-tooltip placement="top">
+              <div slot="content">
+                <div class="tip-item">
+                  <div class="tip-label">璁惧姝e父鏁�:</div>
+                  <div class="tip-info tip-success">12</div>
+                </div>
+                <div class="tip-item">
+                  <div class="tip-label">璁惧寮傚父鏁�:</div>
+                  <div class="tip-info tip-danger">12</div>
+                </div>
+              </div>
+              <div class="tip-num">75%</div>
+            </el-tooltip>
+          </template>
         </el-table-column>
-        <el-table-column label="杞﹁締璁惧" align="center">
-          <el-table-column prop="data1" label="璁惧姝e父鏁�" align="center">
-          </el-table-column>
-          <el-table-column prop="data1" label="璁惧寮傚父鏁�" align="center">
-          </el-table-column>
+
+        <el-table-column label="杞﹁締璁惧姝e父鐜�" align="center">
+          <template slot-scope="scope">
+            <el-tooltip placement="top">
+              <div slot="content">
+                <div class="tip-item">
+                  <div class="tip-label">璁惧姝e父鏁�:</div>
+                  <div class="tip-info tip-success">12</div>
+                </div>
+                <div class="tip-item">
+                  <div class="tip-label">璁惧寮傚父鏁�:</div>
+                  <div class="tip-info tip-danger">12</div>
+                </div>
+              </div>
+              <div class="tip-num">75%</div>
+            </el-tooltip>
+          </template>
         </el-table-column>
-        <el-table-column label="瑙嗛璁惧" align="center">
-          <el-table-column prop="data1" label="璁惧姝e父鏁�" align="center">
-          </el-table-column>
-          <el-table-column prop="data1" label="璁惧寮傚父鏁�" align="center">
-          </el-table-column>
+
+        <el-table-column label="瑙嗛璁惧姝e父鐜�" align="center">
+          <template slot-scope="scope">
+            <el-tooltip placement="top">
+              <div slot="content">
+                <div class="tip-item">
+                  <div class="tip-label">璁惧姝e父鏁�:</div>
+                  <div class="tip-info tip-success">12</div>
+                </div>
+                <div class="tip-item">
+                  <div class="tip-label">璁惧寮傚父鏁�:</div>
+                  <div class="tip-info tip-danger">12</div>
+                </div>
+              </div>
+              <div class="tip-num">75%</div>
+            </el-tooltip>
+          </template>
         </el-table-column>
       </el-table>
     </div>
@@ -165,4 +201,28 @@
 ::v-deep .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
   background-color: #447ed648;
 }
+
+.tip-item {
+  display: flex;
+  align-items: center;
+  margin-bottom: 10px;
+  font-size: 16px;
+
+  &:last-of-type {
+    margin-bottom: 0;
+  }
+
+  .tip-label {
+    color: #5b83bd;
+    margin-right: 10px;
+  }
+
+  .tip-success {
+    color: #0cd81d;
+  }
+
+  .tip-danger {
+    color: #e20c0c;
+  }
+}
 </style>
\ No newline at end of file
diff --git a/src/views/system/car/index.vue b/src/views/system/car/index.vue
index 8f9ba87..4df65e2 100644
--- a/src/views/system/car/index.vue
+++ b/src/views/system/car/index.vue
@@ -10,27 +10,27 @@
         <el-col :xl="14" :lg="14" :md="12" :sm="14" :xs="16">
           <div class="dashboard">
             <div class="dashboard-item">
-              <h3 style="color: #5C9BF8">{{ totalPosts }}</h3>
+              <h3 style="color: #5C9BF8">{{ count.totalPosts }}</h3>
               <p>璁惧鎬绘暟</p >
             </div>
             <div class="dashboard-item">
-              <h3 style="color: #3eba45">{{ totalMembers }}</h3>
+              <h3 style="color: #3eba45">{{ count.totalMembers }}</h3>
               <p>姝e父鏁�</p >
             </div>
             <div class="dashboard-item">
-              <h3 style="color: #fe640d">{{ postsPercentage }}</h3>
+              <h3 style="color: #fe640d">{{ count.postsPercentage }}</h3>
               <p>寮傚父鏁�</p >
             </div>
             <div class="dashboard-item">
-              <h3>{{ totalViews }}</h3>
+              <h3>{{ count.totalViews }}</h3>
               <p>鐢熸垚寮傚父宸ュ崟鏁�</p >
             </div>
             <div class="dashboard-item">
-              <h3>{{ totalCar }}</h3>
+              <h3>{{ count.totalCar }}</h3>
               <p>杩囪溅鏁版嵁鎬婚噺</p >
             </div>
             <div class="dashboard-item">
-              <h3>{{ viewsPercentage }}%</h3>
+              <h3>{{ count.viewsPercentage }}%</h3>
               <p>璁惧杩愯鐜�</p >
             </div>
           </div>
@@ -110,29 +110,29 @@
           @click="handleExport"
         >瀵煎嚭</el-button>
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
     </el-row>
 
     <el-table v-loading="loading" :data="monitorList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" align="center" />
       <el-table-column label="璁惧鍚嶇О" align="center" prop="name" width="280" fixed/>
       <el-table-column label="璁惧缂栫爜" align="center" prop="serialNumber" width="180"/>
-      <el-table-column label="鏍囩" align="center" prop="publicSecurity" width="180"/>
-      <el-table-column label="鍖哄煙" align="center" prop="address" width="180"/>
-      <el-table-column label="璁惧鐘舵��" align="center" prop="onState">
+      <el-table-column label="鏍囩" align="center" prop="publicSecurity" width="180" v-if="columns[0].visible"/>
+      <el-table-column label="鍖哄煙" align="center" prop="address" width="180" v-if="columns[1].visible"/>
+      <el-table-column label="璁惧鐘舵��" align="center" prop="onState" v-if="columns[2].visible">
       <template slot-scope="scope">
         <dict-tag :options="dict.type.camera_state" :value="scope.row.onState"/>
       </template>
       </el-table-column>
-      <el-table-column label="鏄惁鐢熸垚寮傚父宸ュ崟" align="center" prop="defaultOrder" width="180">
+      <el-table-column label="鏄惁鐢熸垚寮傚父宸ュ崟" align="center" prop="defaultOrder" width="180" v-if="columns[3].visible">
       <template slot-scope="scope">
         <dict-tag :options="dict.type.platform_yes_no" :value="scope.row.defaultOrder"/>
       </template>
       </el-table-column>
-      <el-table-column label="鏁版嵁鏃堕棿" align="center" prop="installedTime" width="180"/>
-      <el-table-column label="绠$悊鍗曚綅" align="center" prop="managementUnit" width="180"/>
-      <el-table-column label="杩囪溅鏁版嵁閲�" align="center" prop="model" width="180"/>
-      <el-table-column label="鎸佺画鏃犳暟鎹ぉ鏁�" align="center" prop="recovery" width="180"/>
+      <el-table-column label="鏁版嵁鏃堕棿" align="center" prop="installedTime" width="180" v-if="columns[4].visible"/>
+      <el-table-column label="绠$悊鍗曚綅" align="center" prop="managementUnit" width="180" v-if="columns[5].visible"/>
+      <el-table-column label="杩囪溅鏁版嵁閲�" align="center" prop="a" width="180" v-if="columns[6].visible"/>
+      <el-table-column label="鎸佺画鏃犳暟鎹ぉ鏁�" align="center" prop="a" width="180" v-if="columns[7].visible"/>
       <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"  fixed="right">
           <template slot-scope="scope">
             <el-button
@@ -182,10 +182,10 @@
             <el-form-item label="绠$悊鍗曚綅锛�">{{ form.managementUnit }}</el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="杩囪溅鏁版嵁閲忥細">{{ form.model }}</el-form-item>
+            <el-form-item label="杩囪溅鏁版嵁閲忥細">{{ form.a }}</el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="鎸佺画鏃犳暟鎹ぉ鏁帮細">{{ form.recovery }}</el-form-item>
+            <el-form-item label="鎸佺画鏃犳暟鎹ぉ鏁帮細">{{ form.a }}</el-form-item>
           </el-col>
         </el-row>
       </el-form>
@@ -197,19 +197,32 @@
 </template>
 
 <script>
-import { listMonitor, getMonitor, delMonitor, addMonitor, updateMonitor } from "@/api/platform/monitor";
+import { videoCount, listMonitor, getMonitor, delMonitor, addMonitor, updateMonitor } from "@/api/platform/monitor";
 
 export default {
   name: "Monitor",
   dicts: ['sys_normal_disable','platform_yes_no','camera_state'],
   data() {
     return {
-      totalPosts: 1156,
-      totalMembers: 931,
-      postsPercentage: 182,
-      totalViews: 43,
-      viewsPercentage: 80.53,
-      totalCar: 2098530,
+      // 鍒椾俊鎭�
+      columns: [
+        { key: 0, label: `鏍囩`, visible: true },
+        { key: 1, label: `鍖哄煙`, visible: true },
+        { key: 2, label: `璁惧鐘舵�乣, visible: true },
+        { key: 3, label: `鏄惁鐢熸垚寮傚父宸ュ崟`, visible: true },
+        { key: 4, label: `鏁版嵁鏃堕棿`, visible: true },
+        { key: 5, label: `绠$悊鍗曚綅`, visible: true },
+        { key: 6, label: `杩囪溅鏁版嵁閲廯, visible: true },
+        { key: 7, label: `鎸佺画鏃犳暟鎹ぉ鏁癭, visible: true },
+      ],
+      count: {
+        totalPosts: 0,
+        totalMembers: 0,
+        postsPercentage: 0,
+        totalViews: 0,
+        viewsPercentage: 0,
+        totalCar: 0,
+      },
       // 閬僵灞�
       loading: true,
       // 閫変腑鏁扮粍
@@ -261,6 +274,7 @@
     };
   },
   created() {
+    this.getVideoCount();
     this.getList();
   },
   methods: {
@@ -271,6 +285,12 @@
         this.monitorList = response.rows;
         this.total = response.total;
         this.loading = false;
+      });
+    },
+    /** 鏌ヨ璁惧璧勪骇缁熻鏁� */
+    getVideoCount() {
+      videoCount('2').then(response => {
+        this.count = response.data;
       });
     },
     // 鍙栨秷鎸夐挳
@@ -301,6 +321,7 @@
       this.queryParams.pageNum = 1;
       this.queryParams.cameraFunType = 2;
       this.getList();
+      this.getVideoCount();
     },
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
diff --git a/src/views/system/face/index.vue b/src/views/system/face/index.vue
index 2755297..d571bbc 100644
--- a/src/views/system/face/index.vue
+++ b/src/views/system/face/index.vue
@@ -10,27 +10,27 @@
         <el-col :xl="14" :lg="14" :md="12" :sm="14" :xs="16">
           <div class="dashboard">
             <div class="dashboard-item">
-              <h3 style="color: #5C9BF8">{{ totalPosts }}</h3>
+              <h3 style="color: #5C9BF8">{{ count.totalPosts }}</h3>
               <p>璁惧鎬绘暟</p >
             </div>
             <div class="dashboard-item">
-              <h3 style="color: #3eba45">{{ totalMembers }}</h3>
+              <h3 style="color: #3eba45">{{ count.totalMembers }}</h3>
               <p>姝e父鏁�</p >
             </div>
             <div class="dashboard-item">
-              <h3 style="color: #fe640d">{{ postsPercentage }}</h3>
+              <h3 style="color: #fe640d">{{ count.postsPercentage }}</h3>
               <p>寮傚父鏁�</p >
             </div>
             <div class="dashboard-item">
-              <h3>{{ totalOrders }}</h3>
+              <h3>{{ count.totalViews }}</h3>
               <p>鐢熸垚寮傚父宸ュ崟鏁�</p >
             </div>
             <div class="dashboard-item">
-              <h3>{{ totalViews }}</h3>
+              <h3>{{ count.totalFace }}</h3>
               <p>鎶撴媿鏁版嵁鎬婚噺</p >
             </div>
             <div class="dashboard-item">
-              <h3>{{ viewsPercentage }}%</h3>
+              <h3>{{ count.viewsPercentage }}%</h3>
               <p>璁惧杩愯鐜�</p >
             </div>
           </div>
@@ -109,29 +109,29 @@
           @click="handleExport"
         >瀵煎嚭</el-button>
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
     </el-row>
 
     <el-table v-loading="loading" :data="monitorList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" align="center" />
       <el-table-column label="璁惧鍚嶇О" align="center" prop="name" width="280" fixed/>
       <el-table-column label="璁惧缂栫爜" align="center" prop="serialNumber" width="180"/>
-      <el-table-column label="鏍囩" align="center" prop="publicSecurity" width="180"/>
-      <el-table-column label="鍖哄煙" align="center" prop="address" width="180"/>
-      <el-table-column label="璁惧鐘舵��" align="center" prop="onState">
+      <el-table-column label="鏍囩" align="center" prop="publicSecurity" width="180" v-if="columns[0].visible"/>
+      <el-table-column label="鍖哄煙" align="center" prop="address" width="180" v-if="columns[1].visible"/>
+      <el-table-column label="璁惧鐘舵��" align="center" prop="onState" v-if="columns[2].visible">
       <template slot-scope="scope">
         <dict-tag :options="dict.type.camera_state" :value="scope.row.onState"/>
       </template>
       </el-table-column>
-      <el-table-column label="鏄惁鐢熸垚寮傚父宸ュ崟" align="center" prop="defaultOrder" width="180">
+      <el-table-column label="鏄惁鐢熸垚寮傚父宸ュ崟" align="center" prop="defaultOrder" width="180" v-if="columns[3].visible">
       <template slot-scope="scope">
         <dict-tag :options="dict.type.platform_yes_no" :value="scope.row.defaultOrder"/>
       </template>
       </el-table-column>
-      <el-table-column label="鏁版嵁鏃堕棿" align="center" prop="installedTime" width="180"/>
-      <el-table-column label="绠$悊鍗曚綅" align="center" prop="managementUnit" width="180"/>
-      <el-table-column label="鎶撴媿閲�" align="center" prop="model" width="180"/>
-      <el-table-column label="鎸佺画鏃犳暟鎹ぉ鏁�" align="center" prop="recovery" width="180"/>
+      <el-table-column label="鏁版嵁鏃堕棿" align="center" prop="installedTime" width="180" v-if="columns[4].visible"/>
+      <el-table-column label="绠$悊鍗曚綅" align="center" prop="managementUnit" width="180" v-if="columns[5].visible"/>
+      <el-table-column label="鎶撴媿閲�" align="center" prop="a" width="180" v-if="columns[6].visible"/>
+      <el-table-column label="鎸佺画鏃犳暟鎹ぉ鏁�" align="center" prop="a" width="180" v-if="columns[7].visible"/>
       <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"  fixed="right">
           <template slot-scope="scope">
             <el-button
@@ -222,10 +222,10 @@
             <el-form-item label="绠$悊鍗曚綅锛�">{{ form.managementUnit }}</el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="鎶撴媿閲忥細">{{ form.model }}</el-form-item>
+            <el-form-item label="鎶撴媿閲忥細"></el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="鎸佺画鏃犳暟鎹ぉ鏁帮細">{{ form.recovery }}</el-form-item>
+            <el-form-item label="鎸佺画鏃犳暟鎹ぉ鏁帮細"></el-form-item>
           </el-col>
         </el-row>
       </el-form>
@@ -237,20 +237,32 @@
 </template>
 
 <script>
-import { listMonitor, getMonitor, delMonitor, addMonitor, updateMonitor } from "@/api/platform/monitor";
+import { videoCount, listMonitor, getMonitor, delMonitor, addMonitor, updateMonitor } from "@/api/platform/monitor";
 
 export default {
   name: "Monitor",
   dicts: ['sys_normal_disable','platform_yes_no','camera_state'],
   data() {
     return {
-      totalPosts: 1490,
-      totalMembers: 1090,
-      postsPercentage: 319,
-      totalViews: 1200164,
-      totalOrders: 81,
-      viewsPercentage: 73.15,
-      totalErrors: 0,
+      // 鍒椾俊鎭�
+      columns: [
+        { key: 0, label: `鏍囩`, visible: true },
+        { key: 1, label: `鍖哄煙`, visible: true },
+        { key: 2, label: `璁惧鐘舵�乣, visible: true },
+        { key: 3, label: `鏄惁鐢熸垚寮傚父宸ュ崟`, visible: true },
+        { key: 4, label: `鏁版嵁鏃堕棿`, visible: true },
+        { key: 5, label: `绠$悊鍗曚綅`, visible: true },
+        { key: 6, label: `鎶撴媿閲廯, visible: true },
+        { key: 7, label: `鎸佺画鏃犳暟鎹ぉ鏁癭, visible: true }
+      ],
+      count: {
+        totalPosts: 0,
+        totalMembers: 0,
+        postsPercentage: 0,
+        totalViews: 0,
+        totalFace: 0,
+        viewsPercentage: 0
+      },
       // 閬僵灞�
       loading: true,
       // 閫変腑鏁扮粍
@@ -302,6 +314,7 @@
     };
   },
   created() {
+    this.getVideoCount();
     this.getList();
   },
   methods: {
@@ -312,6 +325,12 @@
         this.monitorList = response.rows;
         this.total = response.total;
         this.loading = false;
+      });
+    },
+    /** 鏌ヨ璁惧璧勪骇缁熻鏁� */
+    getVideoCount() {
+      videoCount('3').then(response => {
+        this.count = response.data;
       });
     },
     // 鍙栨秷鎸夐挳
@@ -337,6 +356,7 @@
       this.queryParams.pageNum = 1;
       this.queryParams.cameraFunType = 3
       this.getList();
+      this.getVideoCount();
     },
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
diff --git a/src/views/system/recovery/index.vue b/src/views/system/recovery/index.vue
index 9ec015a..29912d5 100644
--- a/src/views/system/recovery/index.vue
+++ b/src/views/system/recovery/index.vue
@@ -10,23 +10,23 @@
         <el-col :xl="14" :lg="14" :md="12" :sm="14" :xs="16">
           <div class="dashboard">
             <div class="dashboard-item">
-              <h3 style="color: #5C9BF8">{{ totalPosts }}</h3>
+              <h3 style="color: #5C9BF8">{{ count.totalPosts }}</h3>
               <p>璁惧鎬绘暟</p >
             </div>
             <div class="dashboard-item">
-              <h3 style="color: #3eba45">{{ totalMembers }}</h3>
+              <h3 style="color: #3eba45">{{ count.totalMembers }}</h3>
               <p>姝e父鏁�</p >
             </div>
             <div class="dashboard-item">
-              <h3 style="color: #fe640d">{{ postsPercentage }}</h3>
+              <h3 style="color: #fe640d">{{ count.postsPercentage }}</h3>
               <p>寮傚父鏁�</p >
             </div>
             <div class="dashboard-item">
-              <h3>{{ totalViews }}</h3>
+              <h3>{{ count.totalViews }}</h3>
               <p>鐢熸垚寮傚父宸ュ崟鏁�</p >
             </div>
             <div class="dashboard-item">
-              <h3>{{ viewsPercentage }}%</h3>
+              <h3>{{ count.viewsPercentage }}%</h3>
               <p>璁惧杩愯鐜�</p >
             </div>
           </div>
@@ -34,7 +34,7 @@
       </el-row>
     </el-card>
 
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
       <el-form-item label="鍏抽敭瀛�" prop="name">
         <el-input
           v-model="queryParams.name"
@@ -59,6 +59,17 @@
           <el-option label="瀵岄『鍘�" value="瀵岄『鍘�"/>
         </el-select>
       </el-form-item>
+      <el-form-item label="鐩戞帶绫诲瀷" prop="onState">
+        <el-select
+          v-model="queryParams.cameraFunType"
+          placeholder="璇烽�夋嫨鐩戞帶绫诲瀷"
+          clearable
+        >
+          <el-option label="瑙嗛鐩戞帶" value="1"/>
+          <el-option label="杞﹁締璇嗗埆" value="2"/>
+          <el-option label="浜哄憳璇嗗埆" value="3"/>
+        </el-select>
+      </el-form-item>
 
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
@@ -76,33 +87,29 @@
           @click="handleExport"
         >瀵煎嚭</el-button>
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
     </el-row>
 
     <el-table v-loading="loading" :data="monitorList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="璁惧鍚嶇О" align="center" prop="name" />
       <el-table-column label="璁惧缂栫爜" align="center" prop="serialNumber" width="180px" />
-      <el-table-column label="鏍囩" align="center" prop="tag" >
-        {{"鐪佸巺鑰冩牳"}}
-      </el-table-column>
-      <el-table-column label="鍖哄煙" align="center" prop="region" >
-        {{"澶у畨鍖�"}}
-      </el-table-column>
-      <el-table-column label="璁惧鐘舵��" align="center" prop="onState">
+      <el-table-column label="鏍囩" align="center" prop="publicSecurity" v-if="columns[0].visible" />
+      <el-table-column label="鍖哄煙" align="center" prop="address" v-if="columns[1].visible"/>
+      <el-table-column label="璁惧鐘舵��" align="center" prop="onState" v-if="columns[2].visible">
       <template slot-scope="scope">
         <dict-tag :options="dict.type.camera_state" :value="scope.row.onState"/>
       </template>
       </el-table-column>
-      <el-table-column label="鏄惁鐢熸垚寮傚父宸ュ崟" align="center" prop="defaultOrder">
+      <el-table-column label="鏄惁鐢熸垚寮傚父宸ュ崟" align="center" prop="defaultOrder" v-if="columns[3].visible">
       <template slot-scope="scope">
         <dict-tag :options="dict.type.platform_yes_no" :value="scope.row.defaultOrder"/>
       </template>
       </el-table-column>
-      <el-table-column label="寮傚父鍘熷洜" align="center" prop="reason" />
-      <el-table-column label="寮傚父鎭㈠鏃堕棿" align="center" prop="recoveryTime" width="180">
+      <el-table-column label="寮傚父鍘熷洜" align="center" prop="reason" v-if="columns[4].visible" />
+      <el-table-column label="寮傚父鎭㈠鏃堕棿" align="center" prop="recoveryTime" width="180" v-if="columns[5].visible">
       </el-table-column>
-      <el-table-column label="绠$悊鍗曚綅" align="center" prop="managementUnit" />
+      <el-table-column label="绠$悊鍗曚綅" align="center" prop="managementUnit" v-if="columns[6].visible" />
       <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -162,19 +169,31 @@
 </template>
 
 <script>
-import { listMonitor, getMonitor, delMonitor, addMonitor, updateMonitor } from "@/api/platform/monitor";
+import { recoveryException, listMonitor, getMonitor, delMonitor, addMonitor, updateMonitor } from "@/api/platform/monitor";
 
 export default {
   name: "Monitor",
   dicts: ['sys_normal_disable','platform_yes_no','camera_state'],
   data() {
     return {
-      totalPosts: 8896,
-      totalMembers: 8029,
-      postsPercentage: 382,
-      totalViews: 141,
-      viewsPercentage: 90.25,
-      totalErrors: 0,
+      // 鍒椾俊鎭�
+      columns: [
+        { key: 0, label: `鏍囩`, visible: true },
+        { key: 1, label: `鍖哄煙`, visible: true },
+        { key: 2, label: `璁惧鐘舵�乣, visible: true },
+        { key: 3, label: `鏄惁鐢熸垚寮傚父宸ュ崟`, visible: true },
+        { key: 4, label: `寮傚父鍘熷洜`, visible: true },
+        { key: 5, label: `寮傚父鎭㈠鏃堕棿`, visible: true },
+        { key: 6, label: `绠$悊鍗曚綅`, visible: true },
+      ],
+      count: {
+        totalPosts: 0,
+        totalMembers: 0,
+        postsPercentage: 0,
+        totalViews: 0,
+        viewsPercentage: 0,
+        totalErrors: 0,
+      },
       // 閬僵灞�
       loading: true,
       // 閫変腑鏁扮粍
@@ -205,6 +224,7 @@
         managementUnit: null,
         defaultOrder: null,
         recovery: 1,
+        cameraFunType: null
       },
       // 琛ㄥ崟鍙傛暟
       form: {},
@@ -227,6 +247,7 @@
   },
   created() {
     this.getList();
+    this.getVideoCount();
   },
   methods: {
     /** 鏌ヨ璁惧璧勪骇鍒楄〃 */
@@ -236,6 +257,12 @@
         this.monitorList = response.rows;
         this.total = response.total;
         this.loading = false;
+      });
+    },
+    /** 鏌ヨ寮傚父鎭㈠璁惧缁熻鏁� */
+    getVideoCount() {
+      recoveryException().then(response => {
+        this.count = response.data;
       });
     },
     // 鍙栨秷鎸夐挳
@@ -266,6 +293,7 @@
       this.queryParams.pageNum = 1;
       this.queryParams.recovery = 1
       this.getList();
+      this.getVideoCount();
     },
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
diff --git a/src/views/system/report/index.vue b/src/views/system/report/index.vue
index 6f360b9..0a7e73b 100644
--- a/src/views/system/report/index.vue
+++ b/src/views/system/report/index.vue
@@ -149,9 +149,9 @@
             :loading="selectLoading">
             <el-option
               v-for="item in pointList"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
+              :key="item.id"
+              :label="item.value"
+              :value="item.id">
             </el-option>
           </el-select>
         </el-form-item>
@@ -167,6 +167,17 @@
             <el-option label="璁惧鏁呴殰" value="璁惧鏁呴殰"/>
             <el-option label="璁惧閬楀け" value="璁惧閬楀け"/>
           </el-select>
+        </el-form-item>
+        <el-form-item label="鏈夋晥鏃堕棿">
+          <el-date-picker
+            v-model="expirTime"
+            style="width: 240px"
+            value-format="yyyy-MM-dd"
+            type="daterange"
+            range-separator="-"
+            start-placeholder="鐢熸晥鏃ユ湡"
+            end-placeholder="澶辨晥鏃ユ湡"
+          ></el-date-picker>
         </el-form-item>
         <el-form-item label="鎶ュ鍐呭" prop="reportContent">
           <editor v-model="form.reportContent" :min-height="192"/>
@@ -252,6 +263,7 @@
       open: false,
       // 鏁呴殰绫诲瀷鏃堕棿鑼冨洿
       daterangeCreateTime: [],
+      expirTime: [],
       // 鏁呴殰绫诲瀷鏃堕棿鑼冨洿
       daterangeAuditingTime: [],
       auditingOpen: false,
@@ -408,6 +420,12 @@
     },
     /** 鎻愪氦鎸夐挳 */
     submitForm() {
+
+      if (null != this.expirTime && '' != this.expirTime) {
+        this.form["beginCreateTime"] = this.expirTime[0];
+        this.form["endCreateTime"] = this.expirTime[1];
+      }
+
       // todo 鍒ゆ柇鏄簨鍓嶆姤澶�
 
       this.$refs["form"].validate(valid => {
diff --git a/src/views/system/video/index.vue b/src/views/system/video/index.vue
index f7c179f..22bfe76 100644
--- a/src/views/system/video/index.vue
+++ b/src/views/system/video/index.vue
@@ -12,31 +12,31 @@
         <el-col :xl="14" :lg="14" :md="12" :sm="14" :xs="16">
           <div class="dashboard">
             <div class="dashboard-item">
-              <h3 style="color: #5C9BF8">{{ totalPosts }}</h3>
+              <h3 style="color: #5C9BF8">{{ count.totalPosts }}</h3>
               <p>璁惧鎬绘暟</p >
             </div>
             <div class="dashboard-item">
-              <h3 style="color: #3eba45">{{ totalMembers }}</h3>
+              <h3 style="color: #3eba45">{{ count.totalMembers }}</h3>
               <p>姝e父鏁�</p >
             </div>
             <div class="dashboard-item">
-              <h3 style="color: #fe640d">{{ postsPercentage }}</h3>
+              <h3 style="color: #fe640d">{{ count.postsPercentage }}</h3>
               <p>寮傚父鏁�</p >
             </div>
             <div class="dashboard-item">
-              <h3>{{ totalViews }}</h3>
+              <h3>{{ count.totalViews }}</h3>
               <p>鐢熸垚寮傚父宸ュ崟鏁�</p >
             </div>
             <div class="dashboard-item">
-              <h3>{{ noStore }}</h3>
+              <h3>{{ count.noStore }}</h3>
               <p>鏃犲瓨鍌�</p >
             </div>
             <div class="dashboard-item">
-              <h3>{{ partStore }}</h3>
+              <h3>{{ count.partStore }}</h3>
               <p>閮ㄥ垎瀛樺偍</p >
             </div>
             <div class="dashboard-item">
-              <h3>{{ viewsPercentage }}%</h3>
+              <h3>{{ count.viewsPercentage }}%</h3>
               <p>璁惧杩愯鐜�</p >
             </div>
           </div>
@@ -44,7 +44,7 @@
       </el-row>
     </el-card>
 
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
       <el-form-item label="鍏抽敭瀛�" prop="name">
         <el-input
           v-model="queryParams.name"
@@ -123,8 +123,8 @@
       <el-table-column type="selection" align="center" />
       <el-table-column label="璁惧鍚嶇О" align="center" prop="name" width="280" fixed/>
       <el-table-column label="璁惧缂栫爜" align="center" prop="serialNumber" width="180"/>
-      <el-table-column label="鏍囩" align="center" prop="tag" width="180" v-if="columns[0].visible"/>
-      <el-table-column label="鍖哄煙" align="center" prop="region" width="180" v-if="columns[1].visible"/>
+      <el-table-column label="鏍囩" align="center" prop="publicSecurity" width="180" v-if="columns[0].visible"/>
+      <el-table-column label="鍖哄煙" align="center" prop="address" width="180" v-if="columns[1].visible"/>
       <el-table-column label="璁惧鐘舵��" align="center" prop="onState" v-if="columns[2].visible">
       <template slot-scope="scope">
         <dict-tag :options="dict.type.camera_state" :value="scope.row.onState"/>
@@ -167,21 +167,19 @@
           <el-col :span="12">
             <el-form-item label="璁惧缂栫爜锛�">{{ form.serialNumber }}</el-form-item>
             <el-form-item label="璁惧鍚嶇О锛�">{{ form.name }} </el-form-item>
-            <el-form-item label="鏍囩锛�">{{ form.tag }} </el-form-item>
-            <el-form-item label="鍖哄煙锛�">{{ form.region }} </el-form-item>
+            <el-form-item label="鍦板尯锛�">{{ form.address }} </el-form-item>
+            <el-form-item label="涓婃姤閮ㄩ棬锛�">{{ form.deptName }} </el-form-item>
             <el-form-item label="璁惧鐘舵�侊細">
               <div v-if="form.onState === 1">鍙敤</div>
               <div v-else-if="form.onState === 2">涓嶅彲鐢�</div>
             </el-form-item>
           </el-col>
           <el-col :span="24">
+            <el-form-item label="鍦板潃锛�">{{ form.address }}</el-form-item>
             <el-form-item label="鏄惁鐢熸垚寮傚父宸ュ崟锛�">
               <div v-if="form.defaultOrder === 1">鏄�</div>
               <div v-else-if="form.defaultOrder === 2">鍚�</div>
             </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="寮傚父鍘熷洜锛�">{{ form.reason }}</el-form-item>
           </el-col>
           <el-col :span="24">
             <el-form-item label="瀹夎鏃堕棿锛�">{{ form.installedTime }}</el-form-item>
@@ -190,13 +188,13 @@
             <el-form-item label="绠$悊鍗曚綅锛�">{{ form.managementUnit }}</el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="淇′护鏃跺欢(ms)锛�">{{ form.sipDelay }}</el-form-item>
+            <el-form-item label="淇′护鏃跺欢(ms)锛�"></el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="瑙嗛鏃跺欢(ms)锛�">{{ form.videoDelay }}</el-form-item>
+            <el-form-item label="瑙嗛鏃跺欢(ms)锛�"></el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="鍏抽敭甯ф椂寤�(ms)锛�">{{ form.iframeDelay }}</el-form-item>
+            <el-form-item label="鍏抽敭甯ф椂寤�(ms)锛�"></el-form-item>
           </el-col>
         </el-row>
       </el-form>
@@ -208,7 +206,7 @@
 </template>
 
 <script>
-import { listMonitor, getMonitor, delMonitor, addMonitor, updateMonitor } from "@/api/platform/video-monitor";
+import { videoCount, listMonitor, getMonitor, delMonitor, addMonitor, updateMonitor } from "@/api/platform/monitor";
 export default {
   name: "Monitor",
   dicts: ['sys_normal_disable', 'platform_yes_no','camera_state'],
@@ -226,14 +224,15 @@
         { key: 7, label: `瑙嗛鏃跺欢`, visible: true },
         { key: 8, label: `鍏抽敭甯ф椂寤禶, visible: true }
       ],
-      totalPosts: 6250,
-      totalMembers: 6008,
-      postsPercentage: 51,
-      totalViews: 17,
-      noStore: 47,
-      partStore: 56,
-      viewsPercentage: 96.12,
-      totalErrors: 0,
+      count: {
+        totalPosts: 0,
+        totalMembers: 0,
+        postsPercentage: 0,
+        totalViews: 0,
+        noStore: 0,
+        partStore: 0,
+        viewsPercentage: 0
+      },
       // 閬僵灞�
       loading: true,
       // 閫変腑鏁扮粍
@@ -285,9 +284,9 @@
     };
   },
   created() {
+    this.getVideoCount();
     this.getList();
     this.getCountyList();
-
   },
   methods: {
     /** 鏌ヨ璁惧璧勪骇鍒楄〃 */
@@ -297,6 +296,12 @@
         this.monitorList = response.rows;
         this.total = response.total;
         this.loading = false;
+      });
+    },
+     /** 鏌ヨ璁惧璧勪骇缁熻鏁� */
+     getVideoCount() {
+      videoCount('1').then(response => {
+        this.count = response.data;
       });
     },
     // 鍙栨秷鎸夐挳
@@ -323,6 +328,7 @@
       this.queryParams.pageNum = 1;
       this.queryParams.cameraFunType = 1;
       this.getList();
+      this.getVideoCount();
     },
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {

--
Gitblit v1.8.0