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