| | |
| | | <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"> |
| | | <div class="text">{{text}}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script setup> |
| | | import{ useRouter,useRoute } from 'vue-router' |
| | | import useUserStore from '@/store/modules/user.js' |
| | | import {onMounted, ref, watch} from "vue"; |
| | | import { getUserType } from '@/utils/auth' |
| | | |
| | | const userStore = useUserStore() |
| | | |
| | | 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:'/user'}, |
| | | {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) |
| | | } |
| | | |
| | | onMounted(() => { |
| | | if(userStore.userType == 1) { |
| | | btnList.value.push({name:'系统管理',url:'/user'}) |
| | | } |
| | | }) |
| | | |
| | | </script> |
| | | |
| | |
| | | .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%; |
| | |
| | | .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> |