From 010ce04ba6e27f2bd603cec692d2695d7a8a3c1f Mon Sep 17 00:00:00 2001 From: web <candymxq888@outlook.com> Date: 星期三, 07 五月 2025 08:38:18 +0800 Subject: [PATCH] fix:修改水温深度监测 --- src/views/screen/temperature/home/index.vue | 159 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 117 insertions(+), 42 deletions(-) diff --git a/src/views/screen/temperature/home/index.vue b/src/views/screen/temperature/home/index.vue index 8ba481c..8bfe5d4 100644 --- a/src/views/screen/temperature/home/index.vue +++ b/src/views/screen/temperature/home/index.vue @@ -2,22 +2,42 @@ <div class="home"> <div class="home-bg"></div> <div class="home-c"> - <div class="point"> - <div class="point-address"></div> - <div class="point-message"> - <div class="msg-t">电站尾水出口水温监测点</div> - <div class="num"> - <div class="item"> - <div class="item-t">水温:</div> - <div class="item-num"><span>10</span>°C</div> + <div class="point" v-for="(item, index) in monitorList" :key="index" + :style="{left: item.left, top: item.top}"> + <div class="point-address" @click="handleShow(index)"></div> + <div class="point-message" v-show="item.showMsg"> + <div class="msg-box"> + <div class="msg-t">{{ item.pointName }}</div> + <div class="num"> + <div class="item"> + <div class="item-t">水温:</div> + <div class="item-num"><span>{{ item?.dataList?.find(f => f.code === selectDeep[index]).value }}</span>°C</div> + </div> + <div class="item"> + <div class="item-t">水位:</div> + <div class="item-num"> + <el-select + v-model="selectDeep[index]" + class="val-select" + placeholder="Select" + style="width: 10rem" + > + <el-option + v-for="item in item?.dataList" + :key="item.code" + :label='item.code' + :value="item.code" + /> + </el-select> + m + </div> + </div> </div> - <div class="item"> - <div class="item-t">水位:</div> - <div class="item-num"><span>1000</span>m</div> + <div class="shebei"> + 监测设备: + <span v-if="item.isOnline === 1">设备运作正常</span> + <span v-else style="color: red">设备运作异常</span> </div> - </div> - <div class="shebei"> - 监测设备: <span>监测设备运行正常(点击跳转)</span> </div> </div> </div> @@ -27,72 +47,127 @@ <script setup> +import pointApi from '@/api/facility/point.js' +import {ref, onMounted} from "vue"; +const monitorList = ref([]) +const selectDeep = ref([]) + +// 标点配置 +const config = [ + {left: '15%', top: '53%', showMsg: false}, + {left: '12%', top: '68%', showMsg: false}, +] + +// 获取监控点列表 +const getMonitorList = () => { + pointApi().search({type: 1, page: 1, limit: 3}).then(res => { + let data = res.data.list.filter(el => el.parentId !== 0) + if (data.length > 2) data = data.splice(0, 1) + monitorList.value = data.map((item, index) => { + selectDeep.value[index] = item?.dataList[0].code + return { + ...item, + ...config[index] + } + }) + }) +} + +const handleShow = (index) => { + monitorList.value[index].showMsg = !monitorList.value[index].showMsg; +} + +onMounted(() => { + getMonitorList() +}) </script> <style scoped lang="scss"> -.home{ +.home { height: 100%; - .home-bg{ + + .home-bg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; - background: url("@/assets/images/map-bg.png") no-repeat; + background: url("@/assets/images/tempture-bg.png") no-repeat; background-size: 100% 100%; - z-index: -1; + z-index: 11; } - .home-c{ + + .home-c { width: 100%; height: 100%; position: relative; - .point{ + z-index: 20; + + .point { position: absolute; - left: 58%; - bottom: 10%; - .point-address{ + + .point-address { width: 35px; height: 40px; background: url("@/assets/images/point.png") no-repeat; background-size: 100% 100%; } - .point-message{ + + .point-message { width: 500px; - height: 200px; - background: url("@/assets/images/messageInfo-box.png") no-repeat; + height: 180px; + background: url("@/assets/images/messageInfo-right.png") no-repeat; background-size: 100% 100%; position: absolute; - left: -500px; - top: -100px; + left: 30px; + top: -60px; padding: 30px 50px; color: #fff; - display: flex; - flex-direction: column; - justify-content: space-between; - .msg-t{ + + .msg-box { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + justify-content: space-between; + } + + .msg-t { font-size: 26px; font-weight: bold; } - .num{ + + .num { display: flex; align-items: center; - gap: 50px; - .item{ + gap: 30px; + + .item { display: flex; align-items: center; - span{ + + span { display: inline-block; - padding: 0 30px; + padding: 0 20px; font-size: 22px; font-weight: bold; } - } - } - .shebei{ - span{ - color: #1ab394; + .val-select{ + padding: 0 20px; + :deep(.el-select__wrapper){ + background-color: transparent; + box-shadow: 0 0 0 1px #fff inset; + font-size: 20px; + .el-select__caret{ + color: #fff; + } + .el-select__placeholder{ + color: #fff; + } + } + } } } } -- Gitblit v1.9.3