| | |
| | | <template> |
| | | <div class="header"> |
| | | <div class="h-left"> |
| | | <div class="left-item active" @click="router.push('/')">首页</div> |
| | | <div class="left-item">集群调度</div> |
| | | <div class="left-item" @click="router.push('/taskManage')">任务管理</div> |
| | | <div class="left-item">航线规划</div> |
| | | <div |
| | | v-for="(item, index) in leftList" |
| | | :key="index" |
| | | class="left-item" |
| | | :class="{ active: item.active }" |
| | | @click="handleClick(item)" |
| | | > |
| | | {{ item.name }} |
| | | </div> |
| | | </div> |
| | | <div class="big-title">江西省指挥调度平台</div> |
| | | <div class="h-right"> |
| | | <div class="right-item">AI识别分析</div> |
| | | <div class="right-item">综合分析</div> |
| | | <div class="right-item">数据中心</div> |
| | | <div class="right-item">系统运维</div> |
| | | <div |
| | | v-for="(item, index) in rightList" |
| | | :key="index" |
| | | class="right-item" |
| | | :class="{ active: item.active }" |
| | | @click="handleClick(item)" |
| | | > |
| | | {{ item.name }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | const router = useRouter() |
| | | import { ref, onMounted } from 'vue'; |
| | | import { useRouter, useRoute } from 'vue-router'; |
| | | import { Message } from '@element-plus/icons-vue'; |
| | | import { ElMessage } from 'element-plus'; |
| | | |
| | | const router = useRouter(); |
| | | const route = useRoute(); |
| | | |
| | | const leftList = ref([ |
| | | { name: '首页', active: true, path: '/index' }, |
| | | { name: '集群调度', active: false, path: '/clusterScheduling' }, |
| | | { name: '任务管理', active: false, path: '/taskManage' }, |
| | | { name: '航线规划', active: false, path: '/routePlanning' }, |
| | | ]); |
| | | |
| | | const rightList = ref([ |
| | | { name: 'AI识别分析', active: false, path: '/aiAnalysis' }, |
| | | { name: '综合分析', active: false, path: '/comprehensiveAnalysis' }, |
| | | { name: '数据中心', active: false, path: '/dataCenter' }, |
| | | { name: '系统运维', active: false, path: '/systemMaintenance' }, |
| | | ]); |
| | | |
| | | const handleClick = ({ path, name }) => { |
| | | if (!['首页', '任务管理'].includes(name)) return ElMessage.warning('正在开发中'); |
| | | // 更新 leftList 的 active 状态 |
| | | leftList.value.forEach(item => { |
| | | item.active = item.router === path; |
| | | }); |
| | | |
| | | // 更新 rightList 的 active 状态 |
| | | rightList.value.forEach(item => { |
| | | item.active = item.router === path; |
| | | }); |
| | | console.log(path); |
| | | // 跳转到指定页面 |
| | | router.push(path); |
| | | }; |
| | | |
| | | onMounted(() => { |
| | | // 初始化 leftList 的 active 状态 |
| | | const currentPath = route.path; |
| | | leftList.value.forEach(item => { |
| | | item.active = item.router === currentPath; |
| | | }); |
| | | |
| | | // 初始化 rightList 的 active 状态 |
| | | rightList.value.forEach(item => { |
| | | item.active = item.router === currentPath; |
| | | }); |
| | | }); |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | |
| | | background: url(@/assets/images/header-left.png) no-repeat; |
| | | background-size: 100% 100%; |
| | | margin-right: 3px; |
| | | font-family: YouSheBiaoTiHei, YouSheBiaoTiHei,serif; |
| | | font-family: YouSheBiaoTiHei, YouSheBiaoTiHei, serif; |
| | | font-weight: 400; |
| | | font-size: 18px; |
| | | color: #ffffff; |
| | |
| | | text-align: center; |
| | | font-style: normal; |
| | | text-transform: none; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .active { |
| | |
| | | background-size: 100% 100%; |
| | | } |
| | | } |
| | | |
| | | .big-title { |
| | | position: relative; |
| | | top: -12px; |
| | |
| | | font-family: YouSheBiaoTiHei, YouSheBiaoTiHei; |
| | | font-weight: 400; |
| | | font-size: 45px; |
| | | color: #FFFFFF; |
| | | color: #ffffff; |
| | | line-height: 53px; |
| | | letter-spacing: 11px; |
| | | text-shadow: 0px 4px 1px rgba(19,80,143,0.66), 0px 0px 18px rgba(130,165,255,0.4), inset 0px 0px 2px rgba(255,255,255,0.8); |
| | | text-shadow: 0px 4px 1px rgba(19, 80, 143, 0.66), 0px 0px 18px rgba(130, 165, 255, 0.4), |
| | | inset 0px 0px 2px rgba(255, 255, 255, 0.8); |
| | | text-align: center; |
| | | font-style: normal; |
| | | text-transform: none; |
| | | } |
| | | |
| | | .h-right { |
| | | display: flex; |
| | | justify-content: space-between; |
| | |
| | | background: url(@/assets/images/header-right.png) no-repeat; |
| | | background-size: 100% 100%; |
| | | margin-right: 3px; |
| | | font-family: YouSheBiaoTiHei, YouSheBiaoTiHei,serif; |
| | | font-family: YouSheBiaoTiHei, YouSheBiaoTiHei, serif; |
| | | font-weight: 400; |
| | | font-size: 18px; |
| | | color: #ffffff; |