From e8acf56b807be105702321a0be2119963fa69e03 Mon Sep 17 00:00:00 2001 From: web <candymxq888@outlook.com> Date: 星期四, 24 四月 2025 17:27:10 +0800 Subject: [PATCH] fix:修改水温监控参数 --- src/screen/flow.vue | 132 +++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 123 insertions(+), 9 deletions(-) diff --git a/src/screen/flow.vue b/src/screen/flow.vue index 942f633..e37bbb9 100644 --- a/src/screen/flow.vue +++ b/src/screen/flow.vue @@ -1,32 +1,98 @@ <template> <div class="main"> <div class="header"> - <div class="top">金川水电站生态流量监测系统 </div> + <div class="top"> + <div class="top-exit" v-if="userType === '1'" @click="() => { router.push('/screen') }"> + <img src="@/assets/images/exit.png" alt="" /> + <span>选择系统</span> + </div> + <div class="top-name">金川水电站生态流量监测系统</div> + <div class="top-modal"> + 公告弹窗提示 + <el-switch v-model="openWarn" /> + </div> + </div> <div class="nav"> - <div v-for="(item,index) in btnList" :key="index" @click="navTo(item)" class="plain" :class="item.url === route.path ? 'active' : ''">{{ item.name }}</div> + <div v-for="(item,index) in btnList" :key="index" @click="navTo(item)" class="plain" :class="item.url === route.path ? 'active' : ''"> + <span>{{ item.name }}</span> + </div> </div> </div> <div class="content"> <router-view></router-view> + <div class="warningBox" v-if="openWarn"> + <img src="@/assets/images/flow/warn-icon.png" alt=""> + <div class="text">{{text}}</div> + </div> </div> </div> </template> <script setup> import{ useRouter,useRoute } from 'vue-router' +import {onMounted, ref, watch, onUnmounted} from "vue"; +import { getUserType } from '@/utils/auth' +import { warnHistory } from '@/api/screen/warning/index.js' + const router = useRouter() const route = ref(useRoute()) const btnList = ref([ - {name:'总览',url:'/flow/home'}, - {name:'生态流量',url:''}, - {name:'图像监测', url:''}, - {name:'设备管理',url:''}, - {name:'报警管理',url:''}, - {name:'报表管理',url:''}, + {name:'首页总览',url:'/flow/home'}, + {name:'生态流量',url:'/flow/ecology'}, + {name:'图像监测', url:'/flow/graphic'}, + {name:'设备管理',url:'/flow/shebei'}, + {name:'报警管理',url:'/flow/warning'}, + {name:'报表管理',url:'/flow/report'}, ]) +const userType = ref(getUserType()) + +const openWarn = ref(false) +const text = ref('') +let timer = null; + +watch(openWarn, (newVal) => { + if(newVal){ + splitText() + } else { + clearInterval(timer) + } +}) + +// 设置警告滚动 +const splitText = () => { + timer = setInterval(function () { + const val = text.value.substring(1) + text.value.substring(0,1) + text.value = val + }, 300) +} + const navTo = (item) =>{ router.push(item.url) } + +// 获取报警内容 +const getWarnList = () => { + let str = '' + warnHistory({limit: 10, page: 1, monitorType: 2}).then(res => { + res.data.list?.forEach((item)=>{ + str += item.description + ',' + }) + text.value = str + }) +} + +onMounted(() => { + getWarnList() + if(userType.value == 1) { + btnList.value.push({name:'系统管理',url:'/user'}) + } +}) + +onUnmounted(() => { + if(timer){ + clearInterval(timer) + } +}) </script> @@ -37,18 +103,42 @@ .header{ width: 100%; height: 14%; + background-color: rgb(82, 120, 128); + position: relative; .top{ height: 60%; display: flex; align-items: center; justify-content: center; - font-size: 38px; font-weight: 700; color: #fff; + position: relative; + z-index: 100; + .top-exit{ + position: absolute; + left: 100px; + cursor: pointer; + font-size: 20px; + img{ + width: 30px; + vertical-align: top; + margin-right: 10px; + } + } + .top-name{ + font-size: 48px; + } + .top-modal{ + position: absolute; + right: 100px; + cursor: pointer; + } } .nav{ display: flex; height: 40%; + position: relative; + z-index: 100; .plain{ flex-grow: 1; height: 100%; @@ -69,6 +159,30 @@ .content{ width: 100%; height: 86%; + .warningBox{ + position: absolute; + left: 0; + top: 15.5%; + z-index: 100; + width: 100%; + padding: 0 150px; + height: 100px; + display: flex; + align-items: center; + background: linear-gradient( 270deg, + rgba(255,74,74,0) 0%, + rgba(255,74,74,0.5) 8%, + rgba(255,74,74,0.5) 50%, + rgba(255,74,74,0.5) 92%, + rgba(255,74,74,0) 100%); + .text{ + margin: 0 30px; + color: #fff; + font-size: 36px; + overflow: hidden; + white-space: nowrap; + } + } } } </style> \ No newline at end of file -- Gitblit v1.9.3