From b2ef755893a694ea07b7ca2f46e4571bbc8e9cb9 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期日, 07 四月 2024 17:09:45 +0800 Subject: [PATCH] 通知接口 --- src/views/system/recovery/index.vue | 191 ++++++++++++++++++++++++++++++++--------------- 1 files changed, 130 insertions(+), 61 deletions(-) diff --git a/src/views/system/recovery/index.vue b/src/views/system/recovery/index.vue index 628b3dd..29912d5 100644 --- a/src/views/system/recovery/index.vue +++ b/src/views/system/recovery/index.vue @@ -1,70 +1,76 @@ <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-refresh-left"></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.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-form-item label="鍖哄煙" prop="onState"> <el-select - v-model="queryParams.onState" - placeholder="璁惧鐘舵��" + v-model="queryParams.address" + placeholder="璇烽�夋嫨鍖哄煙" clearable - style="width: 100px" > - <el-option - v-for="dict in dict.type.camera_state" - :key="dict.value" - :label="dict.label" - :value="dict.value" - /> + <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="address"> - <el-input - v-model="queryParams.address" - placeholder="璇疯緭鍏ュ湴鍧�" + <el-form-item label="鐩戞帶绫诲瀷" prop="onState"> + <el-select + v-model="queryParams.cameraFunType" + placeholder="璇烽�夋嫨鐩戞帶绫诲瀷" clearable - @keyup.enter.native="handleQuery" - style="width: 170px" - /> + > + <el-option label="瑙嗛鐩戞帶" value="1"/> + <el-option label="杞﹁締璇嗗埆" value="2"/> + <el-option label="浜哄憳璇嗗埆" value="3"/> + </el-select> </el-form-item> - <el-form-item label="寮傚父鎭㈠鏃堕棿" prop="recoveryTime" label-width="130px"> - <el-date-picker clearable - v-model="queryParams.recoveryTime" - 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" - style="width: 170px" - /> - </el-form-item> - <el-form-item label="鏄惁鐢熸垚寮傚父宸ュ崟" prop="defaultOrder" label-width="130px"> - <el-select - v-model="queryParams.defaultOrder" - placeholder="鏄惁鐢熸垚寮傚父宸ュ崟" - clearable - style="width: 170px" - > - <el-option - v-for="dict in dict.type.platform_yes_no" - :key="dict.value" - :label="dict.label" - :value="dict.value" - /> - </el-select> - </el-form-item> + <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> @@ -81,28 +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="serialNumber" /> <el-table-column label="璁惧鍚嶇О" align="center" prop="name" /> - <el-table-column label="璁惧鐘舵��" align="center" prop="onState"> + <el-table-column label="璁惧缂栫爜" align="center" prop="serialNumber" width="180px" /> + <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="address" /> - <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 @@ -130,6 +137,7 @@ <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.deptName }} </el-form-item> <el-form-item label="璁惧鐘舵�侊細"> <div v-if="form.onState === 1">鍙敤</div> <div v-else-if="form.onState === 2">涓嶅彲鐢�</div> @@ -161,13 +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 { + // 鍒椾俊鎭� + 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, // 閫変腑鏁扮粍 @@ -198,6 +224,7 @@ managementUnit: null, defaultOrder: null, recovery: 1, + cameraFunType: null }, // 琛ㄥ崟鍙傛暟 form: {}, @@ -220,6 +247,7 @@ }, created() { this.getList(); + this.getVideoCount(); }, methods: { /** 鏌ヨ璁惧璧勪骇鍒楄〃 */ @@ -229,6 +257,12 @@ this.monitorList = response.rows; this.total = response.total; this.loading = false; + }); + }, + /** 鏌ヨ寮傚父鎭㈠璁惧缁熻鏁� */ + getVideoCount() { + recoveryException().then(response => { + this.count = response.data; }); }, // 鍙栨秷鎸夐挳 @@ -259,6 +293,7 @@ this.queryParams.pageNum = 1; this.queryParams.recovery = 1 this.getList(); + this.getVideoCount(); }, /** 閲嶇疆鎸夐挳鎿嶄綔 */ resetQuery() { @@ -326,3 +361,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-refresh-left { + 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