| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div style="display: flex;justify-content: space-between;margin-bottom: 10px"> |
| | | <el-form :inline="true" style="display: flex;align-items: center;flex-wrap: wrap;" > |
| | | <div |
| | | style="display: flex; justify-content: space-between; margin-bottom: 10px" |
| | | > |
| | | <el-form |
| | | :inline="true" |
| | | style="display: flex; align-items: center; flex-wrap: wrap" |
| | | > |
| | | <el-form-item> |
| | | <el-date-picker |
| | | v-model="data.dateRange" |
| | |
| | | <el-form-item label="报警类型:" > |
| | | <el-select |
| | | clearable |
| | | v-model="data.queryParams.filter.alarmType" |
| | | v-model="data.queryParams.filter.algoModel" |
| | | placeholder="请选择" |
| | | style="width: 100%" |
| | | > |
| | |
| | | v-for="item in data.typeList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | :value="item.name" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item > |
| | | <el-button |
| | | type="primary" |
| | | @click="getList" |
| | | >查询</el-button> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | @click="reset" |
| | | >重置</el-button> |
| | | <el-button type="primary" @click="getList">查询</el-button> |
| | | <el-button type="primary" plain @click="reset">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | |
| | | <el-table-column label="企业" prop="companyName" align="center" /> |
| | | <el-table-column label="仓库" prop="storeName" align="center" /> |
| | | <el-table-column label="库房" prop="storeroomName" align="center" /> |
| | | <el-table-column label="报警类型" prop="alarmType" align="center" > |
| | | <template #default="scope"> |
| | | <span>{{scope.row.alarmType == 1 ? '超员作业' : scope.row.alarmType == 2?'堵塞通道':scope.row.alarmType == 3?'超高超量':scope.row.alarmType == 4?'非法入侵':scope.row.alarmType == 5?'摄像头遮挡偏移':scope.row.alarmType == 6?'温度':scope.row.alarmType == 7?'湿度':'--'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="报警类型" prop="algoModel" align="center"></el-table-column> |
| | | <el-table-column label="报警状态" prop="alarmStatus" align="center" > |
| | | <template #default="scope"> |
| | | <span>{{scope.row.alarmStatus == 1 ? '已消警' : '未消警'}}</span> |
| | | <span>{{ scope.row.alarmStatus == 1 ? "已消警" : "未消警" }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="报警图片" prop="alarmFile" align="center" width="120" > |
| | | <el-table-column |
| | | label="报警图片" |
| | | prop="alarmFile" |
| | | align="center" |
| | | width="120" |
| | | > |
| | | <template #default="scope"> |
| | | <div class="demo-image__preview" v-if="scope.row.alarmFile"> |
| | | <el-image |
| | |
| | | :preview-src-list="[scope.row.alarmFile]" |
| | | :initial-index="0" |
| | | fit="cover" |
| | | :preview-teleported= true |
| | | :preview-teleported="true" |
| | | /> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="报警时间" prop="warningDate" align="center" width="120" /> |
| | | <el-table-column label="消警时间" prop="clearDate" align="center" width="120" > |
| | | <el-table-column |
| | | label="报警时间" |
| | | prop="warningDate" |
| | | align="center" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="消警时间" |
| | | prop="clearDate" |
| | | align="center" |
| | | width="120" |
| | | > |
| | | <template #default="scope"> |
| | | <span v-if="scope.row.clearDate">{{scope.row.clearDate}}</span> |
| | | <span v-else>—</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width" > |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template #default="scope"> |
| | | <el-button link type="primary" v-if="scope.row.alarmStatus == 0" @click="handelAlarm(scope.row)">消警</el-button> |
| | | <el-button |
| | | link |
| | | type="primary" |
| | | v-if="scope.row.alarmStatus == 0" |
| | | @click="handelAlarm(scope.row)" |
| | | >消警</el-button |
| | | > |
| | | <span v-else>—</span> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import {getCurrentInstance, onMounted, onUnmounted, reactive, ref, toRefs} from "vue"; |
| | | import { |
| | | getCurrentInstance, |
| | | onMounted, |
| | | onUnmounted, |
| | | reactive, |
| | | ref, |
| | | toRefs, |
| | | } from "vue"; |
| | | import {ElMessage, ElMessageBox} from "element-plus"; |
| | | import {delTemplate, getTemplate} from "@/api/signAgreement/template"; |
| | | import {editAlarm, getAlarm} from "@/api/company/alarm"; |
| | |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | filter: { |
| | | alarmStartTime: '', |
| | | alarmEndTime: '', |
| | | alarmStartTime: "", |
| | | alarmEndTime: "", |
| | | alarmStatus: null, |
| | | companyCode: '', |
| | | alarmType: null |
| | | } |
| | | companyCode: "", |
| | | algoModel: '', |
| | | }, |
| | | }, |
| | | total: 0, |
| | | dataList: [], |
| | | statusList: [ |
| | | { |
| | | id: 1, |
| | | name: '已消警' |
| | | name: "已消警", |
| | | }, |
| | | { |
| | | id: 0, |
| | | name: '未消警' |
| | | name: "未消警", |
| | | }, |
| | | ], |
| | | dateRange:[], |
| | | typeList: [ |
| | | { |
| | | id: 1, |
| | | name: '超员作业' |
| | | name: "吸烟检测", |
| | | }, |
| | | { |
| | | id: 2, |
| | | name: '堵塞通道' |
| | | name: "逃生通道堵塞", |
| | | }, |
| | | { |
| | | id: 3, |
| | | name: '超高超量' |
| | | name: "区域入侵", |
| | | }, |
| | | { |
| | | id: 4, |
| | | name: '非法入侵' |
| | | name: "人员数量超限", |
| | | }, |
| | | { |
| | | id: 5, |
| | | name: '摄像头遮挡偏移' |
| | | name: "明火检测", |
| | | }, |
| | | { |
| | | id: 6, |
| | | name: '温度' |
| | | name: "预置标记检测", |
| | | }, |
| | | { |
| | | id: 7, |
| | | name: '湿度' |
| | | }, |
| | | ] |
| | | ], |
| | | }); |
| | | |
| | | const { queryParams, total, dataList } = toRefs(data); |
| | | const classHourRef = ref(); |
| | | onMounted(()=>{ |
| | | const info = JSON.parse(Cookies.get('userInfo')) |
| | | data.queryParams.filter.companyCode = info.companynumber |
| | | getList() |
| | | }) |
| | | const info = JSON.parse(Cookies.get("userInfo")); |
| | | data.queryParams.filter.companyCode = info.companynumber; |
| | | getList(); |
| | | }); |
| | | |
| | | onUnmounted(()=>{ |
| | | |
| | | }) |
| | | onUnmounted(() => {}); |
| | | |
| | | const addProject = (type,value) => { |
| | | dialogRef.value.openDialog(type,value) |
| | | } |
| | | dialogRef.value.openDialog(type, value); |
| | | }; |
| | | |
| | | const getList = async () => { |
| | | loading.value = true |
| | | data.queryParams.filter.alarmStartTime = data.dateRange[0] |
| | | data.queryParams.filter.alarmEndTime = data.dateRange[1] |
| | | const res = await getAlarm(data.queryParams) |
| | | loading.value = true; |
| | | data.queryParams.filter.alarmStartTime = data.dateRange[0]; |
| | | data.queryParams.filter.alarmEndTime = data.dateRange[1]; |
| | | const res = await getAlarm(data.queryParams); |
| | | if(res.code == 200){ |
| | | data.dataList = res.result.records |
| | | .map(item => { |
| | | data.dataList = res.result.records.map((item) => { |
| | | return { |
| | | ...item, |
| | | alarmFile:item.alarmFile ? import.meta.env.VITE_APP_BASE_API+ '/upload/'+ item.alarmFile: '' |
| | | } |
| | | }) |
| | | data.total = res.result.total |
| | | alarmFile: item.alarmFile |
| | | ? import.meta.env.VITE_APP_BASE_API + "/upload/" + item.alarmFile |
| | | : "", |
| | | }; |
| | | }); |
| | | data.total = res.result.total; |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | ElMessage.warning(res.message); |
| | | } |
| | | loading.value = false |
| | | } |
| | | |
| | | |
| | | loading.value = false; |
| | | }; |
| | | |
| | | /** 重置新增的表单以及其他数据 */ |
| | | function reset() { |
| | |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | filter: { |
| | | alarmStartTime: '', |
| | | alarmEndTime: '', |
| | | alarmStartTime: "", |
| | | alarmEndTime: "", |
| | | alarmStatus: null, |
| | | companyCode: '', |
| | | alarmType: null |
| | | } |
| | | } |
| | | data.dateRange = [] |
| | | getList() |
| | | companyCode: "", |
| | | algoModel: '', |
| | | }, |
| | | }; |
| | | data.dateRange = []; |
| | | getList(); |
| | | } |
| | | const handleDelete = (val) => { |
| | | ElMessageBox.confirm( |
| | | '确定删除此条数据?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | }) |
| | | .then( async() => { |
| | | const res = await delTemplate(val.id) |
| | | ElMessageBox.confirm("确定删除此条数据?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }).then(async () => { |
| | | const res = await delTemplate(val.id); |
| | | if(res.code == 200){ |
| | | ElMessage.success('数据删除成功') |
| | | await getList() |
| | | ElMessage.success("数据删除成功"); |
| | | await getList(); |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | ElMessage.warning(res.message); |
| | | } |
| | | }) |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | const handelAlarm = (val) => { |
| | | ElMessageBox.confirm( |
| | | '确定对此条数据消警?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | }) |
| | | .then( async() => { |
| | | ElMessageBox.confirm("确定对此条数据消警?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }).then(async () => { |
| | | const param = { |
| | | id: val.id |
| | | } |
| | | const res = await editAlarm(param) |
| | | id: val.id, |
| | | }; |
| | | const res = await editAlarm(param); |
| | | if(res.code == 200){ |
| | | ElMessage.success('消警成功') |
| | | await getList() |
| | | ElMessage.success("消警成功"); |
| | | await getList(); |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | ElMessage.warning(res.message); |
| | | } |
| | | }) |
| | | } |
| | | |
| | | }); |
| | | }; |
| | | |
| | | const getRowKeys = (row) => { |
| | | return row.name |
| | | } |
| | | return row.name; |
| | | }; |
| | | </script> |