<script lang="ts" setup name="SocketModal"> import { defineExpose, defineProps, ref } from 'vue' defineProps({ data: { type: Object, default: () => { return {} }, }, }) const dialogTableVisible = ref(false) const number = ref(-1) function initDialog() { number.value = -1; dialogTableVisible.value = true; const timer = setInterval(() => { console.log(number.value); number.value++; if (number.value >= 3) { clearInterval(timer); closeDialog(); } }, 1000); } function closeDialog() { dialogTableVisible.value = false number.value = -1 } defineExpose({ initDialog, closeDialog, }) </script> <template> <el-dialog :style="`z-index:2222`" v-if="dialogTableVisible" v-model="dialogTableVisible" width="600px" top="5vh" title="告警消息提醒" :close-on-click-modal="false" append-to-body > <el-descriptions title="监控信息" border :column="2" style="margin-bottom: 20px;"> <el-descriptions-item label="监控点名称"> {{ data.monitorName }} </el-descriptions-item> <el-descriptions-item label="告警类型"> {{ data.deviceStatusName }} </el-descriptions-item> <el-descriptions-item label="甲烷浓度"> {{ data.concentration }} </el-descriptions-item> <el-descriptions-item label="水平角度"> {{ data.alarmDirection }} </el-descriptions-item> <el-descriptions-item label="垂直角度"> {{ data.alarmPitch }} </el-descriptions-item> <el-descriptions-item label="告警时间"> {{ data.alarmTime }} </el-descriptions-item> </el-descriptions> <el-image class="image-wrap" :src="data.url"> <template #error> <div class="image-slot"> <el-icon><icon-picture /></el-icon> </div> </template> </el-image> </el-dialog> </template> <style scoped> .image-wrap { width: 100%; height: 400px; } </style>