<template> <!-- 管网运行监测 --> <div class="PipelineOpera"> <div class="ListBoxHeader"> <div class="ListBoxHeader_font">管网运行监测</div> </div> <div class="Assessmentop"> <div class="tabContent"> <ul> <li class="listOne curCick" v-for="(i, index) in listData" :key="index" @click="showMapDalog(i.siteName)"> <div class="line flex flex-align-center"> <div class="lable">站点名称:</div> <div class="box flex flex-align-center flex-justcontent-center"> {{ i.siteName }} </div> <span :class="i.siteStatus == '在线' ? 'green' : 'rad'">{{ i.siteStatus }}</span> </div> <div class="line flex flex-align-center"> <div class="lable">水<i></i>深:</div> <div class="box flex flex-align-center flex-justcontent-center">{{ i.z || 0 }}米</div> </div> <div class="line flex flex-align-center"> <div class="lable">风险分析:</div> <div class="box flex flex-align-center flex-justcontent-center" :class="i.warnInfo != '无风险' ? 'cRad' : 'cGreen'"> {{ i.warnInfo }} </div> </div> </li> </ul> </div> </div> </div> <!-- 泵站运行监控 --> <div class="PumpStation"> <div class="ListBoxHeader"> <div class="ListBoxHeader_font">泵站运行监控</div> <div class="select_box flex flex-r" style="margin-bottom: 0"> <el-select class="picker" popper-class="fxddPopperClass" v-model="search.stCode" placeholder="请选择节点" size="large" style="width: 200px" > <el-option v-for="item in siteData" :key="item.stCode" :label="item.stName" :value="item.stCode" /> </el-select> </div> </div> <div class="PumpListBox"> <div class="StationMc"></div> <div class="StationList flex flex-justcontent-start"> <div class="item" v-for="item in list" :key="item.name"> <div class="img"> <img :src="bengzhanyunxing" alt="" v-if="item.status == 1" /> <img :src="bengzhantingzhi" alt="" v-else /> </div> <div class="name">{{ item.name }}</div> </div> </div> </div> </div> <!-- 入河排口运行监控 --> <div class="DischargeMonitor"> <div class="ListBoxHeader"> <div class="ListBoxHeader_font">入河排口运行监控</div> </div> <div class="JkMonitor"> <div class="tableHeader"> <span class="tableHeaderList tableList1">内涝监测点</span> <span class="tableHeaderList tableList2">风险等级</span> <span class="tableHeaderList tableList3">积水深度(cm)</span> </div> <Vue3SeamlessScroll :list="FXJCData" :singleHeight="33" :singleWaitTime="1500" :hover="true" class="tableBody"> <div class="tableBodyList" v-for="item in FXJCData"> <span class="tableBodyList_span1">{{ item.zb }}</span> <span class="tableBodyList_span2" :class="item.sz == '正常' ? 'green' : ''">{{ item.sz }} </span> <span class="tableBodyList_span3">{{ item.zt }}</span> <span class="tableBodyList_span4"> <img :src="monitor_icon" alt="" /> </span> </div> </Vue3SeamlessScroll> </div> </div> <!-- 管网监测点详情 --> <el-dialog v-model="showPipe" id="dialogContent" title="发布应急响应通知" width="900px" append-to-body :close-on-click-modal="false" > <PipeDetail v-if="showPipe"></PipeDetail> </el-dialog> </template> <script setup> import { Vue3SeamlessScroll } from 'vue3-seamless-scroll'; import { ref, reactive, toRefs, onMounted, onBeforeUnmount } from 'vue'; import monitor_icon from '@/assets/images/fhpl/monitor_icon.png'; import bengzhantingzhi from '@/assets/images/fhpl/bengzhantingzhi.png'; import bengzhanyunxing from '@/assets/images/fhpl/bengzhanyunxing.png'; import PipeDetail from './PipeDetail.vue'; const listData = ref([ { siteName: '东关大街与长青路交叉口', siteStatus: '在线', warnInfo: '无风险' }, { siteName: '大桥街与延河西路交叉口', siteStatus: '离线', warnInfo: '无风险' }, { siteName: '文化沟路与延河西路交叉口', siteStatus: '在线', warnInfo: '无风险' }, ]); const search = ref({ stCode: 1, }); const siteData = [ { stName: '仓程路泵站', stCode: 0, }, { stName: '东北部雨水泵站', stCode: 1, }, { stName: '东排雨水泵站', stCode: 2, }, { stName: '西排雨水泵站', stCode: 3, }, ]; const FXJCData = ref([ { zb: '永安路', sz: '正常', szzt: true, zt: 32.1, }, { zb: '永昌路北口', sz: '正常', szzt: false, zt: 16.1, }, { zb: '桥儿沟隧道', sz: '正常', szzt: true, zt: 8.4, }, { zb: '原水果市场', sz: '正常', szzt: true, zt: 1.5, }, { zb: '王家坪旧址门口', sz: '正常', szzt: false, zt: 2.4, }, { zb: '王家坪旧址门口', sz: '正常', szzt: true, zt: 1.5, }, ]); const list = [ { name: '1#泵', status: 1, }, { name: '2#泵', status: 0, }, { name: '3#泵', status: 0, }, { name: '5#泵', status: 1, }, ]; const showPipe = ref(false); // 弹框 function showMapDalog(params) { console.log(params, 'params'); showPipe.value = true; } </script> <style lang="scss" scoped> .PipelineOpera { width: 450px; height: 33%; // background: yellow; .Assessmentop { position: relative; margin: 0 auto; width: 440px; height: calc(100% - 60px); // background: #0fcd22; .tabContent { height: calc(100% - 1px); ul { height: 100%; // overflow: hidden; overflow-y: auto; padding: 0 16px; list-style: none; cursor: pointer; .listOne { margin-top: 5px; background: linear-gradient(0deg, #008599 0%, #08596d 100%); border-radius: 4px; padding: 2px 20px; .line { position: relative; padding: 6px 0; overflow: hidden; .lable { width: 80px; font-size: 14px; font-weight: 400; color: #39f7ff; padding-right: 4px; i { display: inline-block; width: 28px; } span { display: inline-block; width: 7px; } } .lable2 { width: 190px; } .box { // height: 26px; width: 240px; padding: 3px 0; line-height: 20px; border-radius: 2px 2px 2px 2px; border: 1px solid #1cf5fc; text-align: center; font-size: 14px; font-weight: 400; color: #ffffff; } .box2 { width: 120px; } span { display: block; padding: 0 6px; line-height: 18px; margin-left: 10px; font-size: 12px; border: 1px solid #b7b7b7; border-radius: 14px; color: #b7b7b7; background: rgba(183, 183, 183, 0.15); white-space: nowrap; &.rad { border-color: #ff3737; color: #ff3737; background: rgba(255, 55, 55, 0.15); } &.green { border-color: #0fcd22; color: #0fcd22; background: rgba(15, 205, 34, 0.15); } } } } } } } } .PumpStation { width: 450px; height: 33%; margin-top: 3px; .PumpListBox { height: calc(100% - 50px); width: 435px; margin: 3px auto; .StationMc { width: 435px; height: 50%; background: url('@/assets/images/fhpl/bzyxjk.png') no-repeat; background-size: 100% 100%; } .StationList { // width: 435px; height: 50%; // background: blue; .item { margin-top: 15px; margin-left: 50px; &:first-of-type { margin-left: 0; } .img { width: 66px; height: 66px; cursor: pointer; img { display: block; width: 100%; height: 100%; } } .name { text-align: center; color: #fff; font-size: 16px; } } } } } .DischargeMonitor { width: 450px; height: 31%; margin-top: 3px; .JkMonitor { margin: 5px auto; width: 430px; height: calc(100% - 50px); .tableHeader { width: 100%; height: 34px; background: linear-gradient(0deg, #00fbffa3 0%, #00fbff00 100%); border-radius: 2px; border: 1px solid #74dde1; display: flex; .tableHeaderList { font-family: Source Han Sans CN; font-weight: 400; font-size: 14px; color: #ffffff; height: 34px; line-height: 34px; // padding-left: 5px; // text-align: center; } .tableList1 { width: 50%; } .tableList2 { width: 15%; text-align: center; } .tableList3 { width: 25%; text-align: center; } } .tableBody { width: 100%; height: calc(100% - 35px); overflow: auto; .tableBodyList { height: 34px; line-height: 34px; width: 100%; display: flex; /* 选择偶数行 */ &:nth-child(even) { background: linear-gradient(0deg, #008599 0%, #08596d 100%); } .tableBodyList_span1 { font-family: Source Han Sans CN; font-weight: 400; font-size: 14px; color: #ffffff; height: 34px; line-height: 34px; // text-align: center; width: 50%; // background: red; // padding-left: 5px; } .tableBodyList_span2 { font-family: Source Han Sans CN; font-weight: 400; font-size: 14px; color: #ffffff; height: 34px; line-height: 34px; text-align: center; width: 15%; } .tableBodyList_span3 { font-family: Source Han Sans CN; font-weight: 400; font-size: 14px; color: #ffffff; height: 34px; line-height: 34px; text-align: center; width: 24%; } .YJClass { color: #ffe243; } .tableBodyList_span4 { font-family: Source Han Sans CN; font-weight: 400; font-size: 14px; color: #ffffff; height: 34px; line-height: 43px; text-align: center; width: 10%; cursor: pointer; } } } } } .ListBoxHeader { height: 44px; line-height: 50px; width: 98%; background: url('@/assets/newImgs/partBg.png') no-repeat; background-size: 100% 100%; display: flex; align-items: center; justify-content: space-between; margin: 7px 0px 0px 8px; .ListBoxHeader_font { font-family: PangMenZhengDao; font-weight: 400; font-size: 23px; color: #ebfeff; padding-left: 34px; } // 搜索 .select_box { width: 48%; margin-bottom: 8px; } } ::-webkit-scrollbar { width: 5px; /* 设置滚动条的宽度 */ } </style>