From 7f356bf22e4fe731e2b79ca3877e7c702eaf0704 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 03 四月 2024 14:25:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/system/face/index.vue |  201 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 148 insertions(+), 53 deletions(-)

diff --git a/src/views/system/face/index.vue b/src/views/system/face/index.vue
index 7b719d6..d571bbc 100644
--- a/src/views/system/face/index.vue
+++ b/src/views/system/face/index.vue
@@ -1,13 +1,67 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="璁惧鍚嶇О" prop="name">
+    <el-card class="box-card" >
+      <el-row type="flex" align="middle" justify="space-between">
+        <el-col :xl="8" :lg="8" :md="10" :sm="8" :xs="6">
+          <div class="icon-container" style="background-color: #5599F7">
+            <i class="el-icon-user"></i>
+          </div>
+        </el-col>
+        <el-col :xl="14" :lg="14" :md="12" :sm="14" :xs="16">
+          <div class="dashboard">
+            <div class="dashboard-item">
+              <h3 style="color: #5C9BF8">{{ count.totalPosts }}</h3>
+              <p>璁惧鎬绘暟</p >
+            </div>
+            <div class="dashboard-item">
+              <h3 style="color: #3eba45">{{ count.totalMembers }}</h3>
+              <p>姝e父鏁�</p >
+            </div>
+            <div class="dashboard-item">
+              <h3 style="color: #fe640d">{{ count.postsPercentage }}</h3>
+              <p>寮傚父鏁�</p >
+            </div>
+            <div class="dashboard-item">
+              <h3>{{ count.totalViews }}</h3>
+              <p>鐢熸垚寮傚父宸ュ崟鏁�</p >
+            </div>
+            <div class="dashboard-item">
+              <h3>{{ count.totalFace }}</h3>
+              <p>鎶撴媿鏁版嵁鎬婚噺</p >
+            </div>
+            <div class="dashboard-item">
+              <h3>{{ count.viewsPercentage }}%</h3>
+              <p>璁惧杩愯鐜�</p >
+            </div>
+          </div>
+        </el-col>
+      </el-row>
+    </el-card>
+
+    <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"
-          placeholder="璇疯緭鍏ヨ澶囧悕绉�"
+          placeholder="璇疯緭鍏ュ叧閿瓧"
           clearable
           @keyup.enter.native="handleQuery"
         />
+      </el-form-item>
+      <el-form-item label="鍖哄煙" prop="onState">
+        <el-select
+          v-model="queryParams.address"
+          placeholder="璇烽�夋嫨鍖哄煙"
+          clearable
+        >
+          <el-option label="鑷础甯�" value="鑷础甯�"/>
+          <el-option label="娌挎哗鍖�" value="娌挎哗鍖�"/>
+          <el-option label="澶у畨鍖�" value="澶у畨鍖�"/>
+          <el-option label="璐′簳鍖�" value="璐′簳鍖�"/>
+          <el-option label="鑷祦浜曞尯" value="鑷祦浜曞尯"/>
+          <el-option label="楂樻柊鍖�" value="楂樻柊鍖�"/>
+          <el-option label="鑽e幙" value="鑽e幙"/>
+          <el-option label="瀵岄『鍘�" value="瀵岄『鍘�"/>
+        </el-select>
       </el-form-item>
       <el-form-item label="璁惧鐘舵��" prop="onState">
         <el-select
@@ -23,30 +77,6 @@
           :value="dict.value"
         />
         </el-select>
-      </el-form-item>
-      <el-form-item label="鍦板潃" prop="address">
-        <el-input
-          v-model="queryParams.address"
-          placeholder="璇疯緭鍏ュ湴鍧�"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="瀹夎鏃堕棿" prop="installedTime">
-        <el-date-picker clearable
-          v-model="queryParams.installedTime"
-          type="date"
-          value-format="yyyy-MM-dd"
-          placeholder="璇烽�夋嫨瀹夎鏃堕棿">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="绠$悊鍗曚綅" prop="managementUnit">
-        <el-input
-          v-model="queryParams.managementUnit"
-          placeholder="璇疯緭鍏ョ鐞嗗崟浣�"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
       </el-form-item>
        <el-form-item label="鏄惁鐢熸垚寮傚父宸ュ崟" prop="defaultOrder" label-width="130px">
          <el-select
@@ -77,41 +107,40 @@
           icon="el-icon-download"
           size="mini"
           @click="handleExport"
-          v-hasPermi="['system:monitor:export']"
         >瀵煎嚭</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="serialNumber" />
-      <el-table-column label="璁惧鍚嶇О" align="center" prop="name" />
-      <el-table-column label="璁惧鐘舵��" align="center" prop="onState">
+      <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" 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="address" />
-      <el-table-column label="鏄惁鐢熸垚寮傚父宸ュ崟" align="center" prop="defaultOrder">
+      <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="reason" />
-      <el-table-column label="瀹夎鏃堕棿" align="center" prop="installedTime" width="180">
-      </el-table-column>
-      <el-table-column label="绠$悊鍗曚綅" align="center" prop="managementUnit" />
-      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-view"
-            @click="handleView(scope.row,scope.index)"
-            v-hasPermi="['system:monitor:query']"
-          >璇︾粏</el-button>
-        </template>
+      <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
+              size="mini"
+              type="text"
+              icon="el-icon-view"
+              @click="handleView(scope.row,scope.index)"
+            >璇︾粏</el-button>
+          </template>
       </el-table-column>
     </el-table>
 
@@ -172,6 +201,8 @@
           <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.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>
@@ -185,13 +216,16 @@
             </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>
           </el-col>
           <el-col :span="24">
             <el-form-item label="绠$悊鍗曚綅锛�">{{ form.managementUnit }}</el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="鎶撴媿閲忥細"></el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="鎸佺画鏃犳暟鎹ぉ鏁帮細"></el-form-item>
           </el-col>
         </el-row>
       </el-form>
@@ -203,13 +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 {
+      // 鍒椾俊鎭�
+      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,
       // 閫変腑鏁扮粍
@@ -261,6 +314,7 @@
     };
   },
   created() {
+    this.getVideoCount();
     this.getList();
   },
   methods: {
@@ -271,6 +325,12 @@
         this.monitorList = response.rows;
         this.total = response.total;
         this.loading = false;
+      });
+    },
+    /** 鏌ヨ璁惧璧勪骇缁熻鏁� */
+    getVideoCount() {
+      videoCount('3').then(response => {
+        this.count = response.data;
       });
     },
     // 鍙栨秷鎸夐挳
@@ -296,6 +356,7 @@
       this.queryParams.pageNum = 1;
       this.queryParams.cameraFunType = 3
       this.getList();
+      this.getVideoCount();
     },
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
@@ -368,3 +429,37 @@
   }
 };
 </script>
+
+<style lang="scss" scoped>
+
+.box-card {
+  background-color: #F5F9FE;
+  width: 100%;
+  margin-bottom: 20px;
+  height: 120px
+}
+.icon-container {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  border-radius: 20px;
+  width: 20%;
+  height: 80px;
+  margin-left: 5%;
+}
+.el-icon-user {
+  font-size: 50px;
+  color: #FFFFFF;
+}
+
+.dashboard {
+  display: flex;
+  gap: 10%;
+  align-items: center;
+  margin-left: -50%;
+}
+
+.dashboard-item {
+  text-align: center;
+}
+</style>

--
Gitblit v1.8.0