From 58e841720c0b1f56ba15a1f1ecdb26c8158c4db1 Mon Sep 17 00:00:00 2001 From: 李旭东 <woaiguo66@sina.com> Date: 星期三, 08 十一月 2023 08:56:07 +0800 Subject: [PATCH] 智慧监控页面增加 --- web/src/api/modules/safety.js | 13 +++ web/src/views/SecureManage/WisdomVideo.vue | 180 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 192 insertions(+), 1 deletions(-) diff --git a/web/src/api/modules/safety.js b/web/src/api/modules/safety.js index 963b9c4..b0e824c 100644 --- a/web/src/api/modules/safety.js +++ b/web/src/api/modules/safety.js @@ -277,5 +277,16 @@ delete: params => axios.get('/secure/tRegionWarranty/delete', { params }), } - } + }, + + + /** + * 安全管理模块 - 智慧监控 + */ + // 查询智慧监控信息列表 + searchWisdomVideoList: (params) => + axios.post('/materials/helmet/dataAIList', params), + // 获取全部预警消息类型 + getAllWaringData: () => + axios.get('/materials/helmet/dataAIType'), } \ No newline at end of file diff --git a/web/src/views/SecureManage/WisdomVideo.vue b/web/src/views/SecureManage/WisdomVideo.vue new file mode 100644 index 0000000..fe3e90c --- /dev/null +++ b/web/src/views/SecureManage/WisdomVideo.vue @@ -0,0 +1,180 @@ +<template> + <div class="main"> + <div class="main_header"> + <div class="header_item"> + <span class="header_label">时间范围:</span> + <el-date-picker + v-model="timeData" + type="datetimerange" + range-separator="至" + start-placeholder="开始日期" + end-placeholder="结束日期" + value-format="yyyy-MM-dd HH:mm:ss"> + </el-date-picker> + </div> + <div class="header_item"> + <span class="header_label">预警消息类型:</span> + <el-select v-model="messageId" clearable placeholder="请选择预警消息类型"> + <el-option + v-for="item in messageData" + :key="item.type" + :label="item.typeName" + :value="item.type"> + </el-option> + </el-select> + </div> + <div class="header_item"> + <el-button icon="el-icon-search" v-if="showButton('search')" @click="searchWisdomVideoList(true)">查询</el-button> + <el-button class="search_btn" icon="el-icon-message" v-if="showButton('insert')" @click="asyncConfig = true;">短信设置</el-button> + </div> + </div> + <div class="main_content"> + <el-table + v-loading="loading" + :data="wisdomVideoList" + height="100%"> + <el-table-column label="序号" width="55" align="center"> + <template #default="scope"> + <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span> + </template> + </el-table-column> + <el-table-column prop="signTime" label="预警时间" align="center" width="200"></el-table-column> + <el-table-column prop="boxName" label="盒子的名称" align="center" width="200"></el-table-column> + <el-table-column prop="deviceName" label="摄像头的名称" align="center" width="200"></el-table-column> + <el-table-column prop="type" label="预警消息类型" align="center" width="200"></el-table-column> + <el-table-column prop="typeName" label="预警消息名称" align="center"></el-table-column> + <el-table-column prop="useYearMonth" label="抓拍大图" align="center"></el-table-column> + <el-table-column prop="signTime" label="抓拍时间" align="center"></el-table-column> + </el-table> + </div> + <div class="main_footer"> + <el-pagination + background + @current-change="changePageNum" + @size-change="changePageSize" + :current-page="pageNum" + :page-sizes="[10, 20, 50, 100]" + :page-size="pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="total"> + </el-pagination> + </div> + <el-dialog + class="prop_dialog" + title="短信设置" + :visible.sync="asyncConfig" + width="35%"> + <el-form ref="form" :model="formConfig" :rules="rulesConfig" label-width="auto" class="rule_form"> + <el-form-item label="短信内容:" prop="content"> + <el-input + type="textarea" + v-model="formConfig.content" + clearable + placeholder="请输入短信息内容"> + </el-input> + </el-form-item> + <el-form-item label="备注:"> + <el-input + type="textarea" + v-model="formConfig.remark" + clearable + placeholder="请输入短信息内容"> + </el-input> + </el-form-item> + </el-form> + <div slot="footer"> + <el-button @click="asyncConfig = false">取 消</el-button> + <el-button class="submit_btn" @click="asyncConfig = false">提 交</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { buttonPinia } from '../../pinia'; + export default { + data() { + return { + timeData: '', + messageId: '', + messageData: [], + total: 0, + pageNum: 1, + pageSize: 10, + loading: false, + wisdomVideoList: [], + asyncConfig: false, + formConfig: {}, + rulesConfig: { + content: [{ + required: true, + message: '请输入短信信息', + trigger: 'blur' + }] + }, + personnelData: [], + } + }, + mounted() { + this.searchWisdomVideoList(true); + this.getAllWaringData(); + }, + methods: { + // 获取预警消息类型 + async getAllWaringData() { + const { data } = await this.$api.Safety.getAllWaringData(); + this.messageData = data; + }, + // 查询智慧监控信息 + searchWisdomVideoList(bol) { + if(bol) { + this.pageNum = 1; + } + this.loading = true; + this.wisdomVideoList = []; + this.$api.Safety.searchWisdomVideoList({ + pageNum: this.pageNum, + pageSize: this.pageSize, + type: this.messageId, + strTime: this.timeData ? this.timeData[0] : '', + endTime: this.timeData ? this.timeData[1] : '' + }).then((res) => { + if(res.success) { + this.total = res.data.total; + this.wisdomVideoList = res.data.list; + } + this.loading = false; + }).catch(() => { + this.loading = false; + }) + }, + // 判断按钮权限信息 + showButton(str) { + const pinia = buttonPinia(); + return pinia.$state.buttonInfo.includes(str); + }, + // 切换页数 + changePageNum(page) { + this.pageNum = page; + this.searchWisdomVideoList(); + }, + // 切换每页条数 + changePageSize(size) { + this.pageSize = size; + this.searchWisdomVideoList(); + } + }, + watch: { + asyncConfig(bol) { + if(!bol) { + this.formConfig = {}; + this.$refs.form.resetFields(); + } + } + } + } +</script> + +<style lang="scss" scoped> + @import '~@/style/layout-main.scss'; +</style> \ No newline at end of file -- Gitblit v1.9.3