web
2025-04-02 e9acb0939e7a471a3c4e7d5af3e98d14e2030bbb
src/views/screen/flow/home/index.vue
@@ -2,34 +2,36 @@
    <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="video-box">
                        <el-icon><VideoPlay /></el-icon>
                    </div>
                    <div class="info-box">
                        <div class="info-t">水电站流量监测点</div>
                        <div class="info-sw">水位:<span>500</span>m</div>
                        <div class="info-ls">流速:<span>15</span>m/s</div>
                        <div class="info-ssls">瞬时流速:<span>150</span>m/s</div>
                        <div class="info-ljll">
                            累计流量:
                            <el-select
                                v-model="selectll"
                                class="m-2"
                                placeholder="Select"
                                size="small"
                                style="width: 240px"
                            >
                                <el-option
                                    v-for="(item, idx) in liuliangOptions"
                                    :key="idx"
                                    :label="item.label"
                                    :value="idx"
                                />
                            </el-select>
                            <span>{{ liuliangOptions[selectll].value }}</span>m/s
            <div class="point" v-for="(item, index) in pointList" :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="video-box">
                            <el-icon><VideoPlay /></el-icon>
                        </div>
                        <div class="info-box">
                            <div class="info-t">{{ item.name }}</div>
                            <div class="info-sw">水位:<span>{{ item.shuiwei }}</span>m</div>
                            <div class="info-ls">流速:<span>{{item.liushu}}</span>m/s</div>
                            <div class="info-ssls">瞬时流速:<span>{{ item.ssls }}</span>m/s</div>
                            <div class="info-ljll">
                                累计流量:
                                <el-select
                                    v-model="selectll"
                                    class="m-2"
                                    placeholder="Select"
                                    size="small"
                                    style="width: 240px"
                                >
                                    <el-option
                                        v-for="(item, idx) in item.liuliangOptions"
                                        :key="idx"
                                        :label="item.label"
                                        :value="idx"
                                    />
                                </el-select>
                                <span>{{ item.liuliangOptions[selectll].value }}</span>m/s
                            </div>
                        </div>
                    </div>
                </div>
@@ -40,18 +42,34 @@
<script setup>
import {ref} from "vue";
const selectll = ref(0)
const liuliangOptions = [
    { label: '总计流量', value: 500 },
    { label: '日累计流量', value: 1000 },
    { label: '周累计流量', value: 10000 },
    { label: '月累计流量', value: 300000 },
    { label: '年累计流量', value: 3600000 },
]
const pointList = reactive([
    { name: '新扎沟口流量监测点', liushu: 22, ssls: '38', shuiwei: 1000, device: 1, left: '18%', top: '67%', showMsg: false,
        liuliangOptions: [
            { label: '总计流量', value: 500 },
            { label: '日累计流量', value: 1000 },
            { label: '周累计流量', value: 10000 },
            { label: '月累计流量', value: 300000 },
            { label: '年累计流量', value: 3600000 },
        ]
    },
    { name: '电站尾水出口水温监测点', liushu: 22, ssls: '38', shuiwei: 1000, device: 2, left: '60%', top: '12.5%', showMsg: false,
        liuliangOptions: [
            { label: '总计流量', value: 500 },
            { label: '日累计流量', value: 1000 },
            { label: '周累计流量', value: 10000 },
            { label: '月累计流量', value: 300000 },
            { label: '年累计流量', value: 3600000 },
        ]
    },
])
const handleShow = (index) => {
    pointList[index].showMsg = !pointList[index].showMsg;
}
</script>
@@ -65,7 +83,7 @@
        top: 0;
        width: 100%;
        height: 100%;
        background: url("@/assets/images/map-bg.png") no-repeat;
        background: url("@/assets/images/flow-bg.png") no-repeat;
        background-size: 100% 100%;
        z-index: 11;
    }
@@ -76,8 +94,6 @@
        z-index: 20;
        .point{
            position: absolute;
            left: 58%;
            top: 30%;
            .point-address{
                width: 35px;
                height: 40px;
@@ -87,16 +103,20 @@
            .point-message{
                width: 600px;
                height: 200px;
                background: url("@/assets/images/messageInfo-box.png") no-repeat;
                background: url("@/assets/images/messageInfo-right.png") no-repeat;
                background-size: 100% 100%;
                position: absolute;
                left: -600px;
                top: -100px;
                padding: 30px 50px 30px 30px;
                left: 30px;
                top: -70px;
                padding: 30px 30px 30px 60px;
                color: #fff;
                display: flex;
                align-items: center;
                gap: 20px;
                .msg-box{
                    width: 100%;
                    height: 100%;
                    display: flex;
                    align-items: center;
                    gap: 20px;
                }
                .video-box{
                    flex-shrink: 0;
                    width: 200px;