From 0eb20ecb8d06fb2dbc0741566ebbfc1160e33ecb Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期一, 14 四月 2025 15:01:05 +0800 Subject: [PATCH] 接口对接 --- src/views/firework/alarm/index.vue | 239 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 232 insertions(+), 7 deletions(-) diff --git a/src/views/firework/alarm/index.vue b/src/views/firework/alarm/index.vue index 762e8b7..3e6b437 100644 --- a/src/views/firework/alarm/index.vue +++ b/src/views/firework/alarm/index.vue @@ -1,11 +1,236 @@ -<script setup> - -</script> - <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;" > + <el-form-item> + <el-date-picker + v-model="data.dateRange" + value-format="YYYY-MM-DD" + type="daterange" + range-separator="-" + start-placeholder="开始日期" + end-placeholder="结束日期" + style="width: 300px" + ></el-date-picker> + </el-form-item> + <el-form-item label="状态:" > + <el-select + v-model="data.queryParams.filter.alarmStatus" + placeholder="请选择" + style="width: 100%" + > + <el-option + v-for="item in data.statusList" + :key="item.id" + :label="item.name" + :value="item.id" + /> + </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-form-item> + </el-form> + </div> + <!-- 表格数据 --> + <el-table v-loading="loading" :data="dataList" :border="true"> + <el-table-column label="序号" type="index" align="center" width="80" /> + <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="alarmStatus" align="center" > + <template #default="scope"> + <span>{{scope.row.alarmStatus == 1 ? '已消警' : '未消警'}}</span> + </template> + </el-table-column> + <el-table-column label="报警图片" prop="alarmFile" align="center" > + <template #default="scope"> + <div class="demo-image__preview" v-if="scope.row.alarmFile"> + <el-image + style="width: 100px; height: 100px" + :src="scope.row.alarmFile" + :zoom-rate="1.2" + :max-scale="7" + :min-scale="0.2" + :preview-src-list="[scope.row.alarmFile]" + :initial-index="0" + fit="cover" + :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" > + <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" > + <template #default="scope"> + <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> + </el-table> + <pagination + v-show="total > 0" + :total="total" + v-model:page="queryParams.pageIndex" + v-model:limit="queryParams.pageSize" + @pagination="getList" + /> + </div> </template> -<style scoped lang="scss"> +<script setup> +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"; +import Cookies from "js-cookie"; +const { proxy } = getCurrentInstance(); +const loading = ref(false); +const dialogRef = ref(); +const createSignRef = ref(); +const data = reactive({ + queryParams: { + pageIndex: 1, + pageSize: 10, + filter: { + alarmStartTime: '', + alarmEndTime: '', + alarmStatus: null, + companyCode: '', + } + }, + total: 0, + dataList: [], + statusList: [ + { + id: 1, + name: '已消警' + }, + { + id: 0, + name: '未消警' + }, + ], + dateRange:[] +}); -</style> +const { queryParams, total, dataList } = toRefs(data); +const classHourRef = ref(); +onMounted(()=>{ + const info = JSON.parse(Cookies.get('userInfo')) + data.queryParams.filter.companyCode = info.companynumber + getList() +}) + +onUnmounted(()=>{ + +}) + +const addProject = (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) + if(res.code == 200){ + data.dataList = res.result.records + // .map(item => { + // return { + // ...item, + // alarmFile: '' + // } + // }) + data.total = res.result.total + }else{ + ElMessage.warning(res.message) + } + loading.value = false +} + + + +/** 重置新增的表单以及其他数据 */ +function reset() { + data.queryParams = { + pageIndex: 1, + pageSize: 10, + filter: { + alarmStartTime: '', + alarmEndTime: '', + alarmStatus: null, + companyCode: '', + } + } + data.dateRange = [] + getList() +} +const handleDelete = (val) => { + ElMessageBox.confirm( + '确定删除此条数据?', + '提示', + { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }) + .then( async() => { + const res = await delTemplate(val.id) + if(res.code == 200){ + ElMessage.success('数据删除成功') + await getList() + }else{ + ElMessage.warning(res.message) + } + }) +} + +const handelAlarm = (val) => { + ElMessageBox.confirm( + '确定对此条数据消警?', + '提示', + { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }) + .then( async() => { + const param = { + id: val.id + } + const res = await editAlarm(param) + if(res.code == 200){ + ElMessage.success('消警成功') + await getList() + }else{ + ElMessage.warning(res.message) + } + }) +} + + +const getRowKeys = (row) => { + return row.name +} +</script> -- Gitblit v1.9.2