| | |
| | | <template> |
| | | <el-container class="home-container"> |
| | | <!-- 主页头部 --> |
| | | <el-header> |
| | | <div> |
| | | <img src="../assets/heima.png" alt="" /> |
| | | <span>电商后台管理系统</span> |
| | | <img src="../assets/xiaohui4.png" alt="" /> |
| | | </div> |
| | | <el-button type="info" @click="logout">退出</el-button> |
| | | <div> |
| | | <img src="../assets/bg.png" alt="" /> |
| | | </div> |
| | | </el-header> |
| | | <!-- 主页导航栏 --> |
| | | <el-row> |
| | | <el-menu mode="horizontal" background-color="rgb(64, 112, 186)" text-color="white" class="menu" active-text-color="#000000" :default-active="activeIndex" @select="handleSelect"> |
| | | <el-menu-item :key="index" v-for="(item, index) in menuList" :index="item.id.toString()"> |
| | | {{ item.name }} |
| | | </el-menu-item> |
| | | </el-menu> |
| | | </el-row> |
| | | <el-container> |
| | | <el-aside :width="isCollapse ? '64px' : '200px'"> |
| | | <div class="toggle-button" @click="toggleCollapse">|||</div> |
| | | <el-menu |
| | | background-color="rgb(50, 55, 67)" |
| | | text-color="#fff" |
| | | active-text-color="rgb(61, 159, 243)" |
| | | unique-opened |
| | | :collapse="isCollapse" |
| | | :collapse-transition="false" |
| | | router |
| | | :default-active="activePath" |
| | | > |
| | | <!-- 一级菜单 --> |
| | | <el-submenu |
| | | :index="item.id + ''" |
| | | v-for="item in menulist" |
| | | :key="item.id" |
| | | > |
| | | <template slot="title"> |
| | | <i :class="iconsObj[item.id]"></i> |
| | | <span>{{ item.authName }}</span> |
| | | </template> |
| | | <!-- 二级菜单 --> |
| | | <el-menu-item |
| | | :index="'/' + subItem.path" |
| | | v-for="subItem in item.children" |
| | | :key="subItem.id" |
| | | @click="saveNavState('/' + subItem.path)" |
| | | > |
| | | <template slot="title"> |
| | | <i class="el-icon-menu"></i> |
| | | <span>{{ subItem.authName }}</span> |
| | | </template> |
| | | </el-menu-item> |
| | | </el-submenu> |
| | | </el-menu> |
| | | </el-aside> |
| | | <el-main> |
| | | <router-view></router-view> |
| | | <!-- 更变的内容区域 --> |
| | | <el-main class="main"> |
| | | <router-view class="box"></router-view> |
| | | </el-main> |
| | | </el-container> |
| | | <el-footer>@平顶山学院科学技术协会</el-footer> |
| | | </el-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getNavList } from '../api/api' |
| | | import axios from 'axios' |
| | | export default { |
| | | name: '', |
| | | data() { |
| | | return { |
| | | //左侧菜单数据 |
| | | menulist: [], |
| | | iconsObj: { |
| | | 125: 'iconfont icon-user', |
| | | 103: 'iconfont icon-tijikongjian', |
| | | 101: 'iconfont icon-shangpin', |
| | | 102: 'iconfont icon-danju', |
| | | 145: 'iconfont icon-baobiao' |
| | | }, |
| | | isCollapse: false, |
| | | //被激活的链接地址 |
| | | activePath: '' |
| | | activeIndex: '1', |
| | | menuList: [ |
| | | { name: '首页', id: 1 }, |
| | | { name: '科协概况', id: 22 }, |
| | | { name: '政策法规', id: 23 }, |
| | | { name: '科协项目', id: 24 }, |
| | | { name: '学术交流', id: 25 }, |
| | | { name: '办事指南', id: 26 }, |
| | | { name: '科普风采', id: 27 }, |
| | | { name: '学校首页', id: 28 }, |
| | | { name: '联系我们', id: 29 } |
| | | ], |
| | | menuList2: [] |
| | | } |
| | | }, |
| | | created() { |
| | | this.getMenuLsit() |
| | | this.activePath = window.sessionStorage.getItem('activePath') |
| | | // this.getNavArr(); |
| | | }, |
| | | mounted() { |
| | | let api3 = 'http://localhost:7070/news_type/all' |
| | | axios |
| | | .get(api3) |
| | | .then(res => { |
| | | // console.log(res); |
| | | this.menuList2 = res.data.data |
| | | }) |
| | | .catch(error => { |
| | | console.log(error) |
| | | }) |
| | | }, |
| | | watch: {}, |
| | | methods: { |
| | | logout() { |
| | | //清空token |
| | | window.sessionStorage.clear() |
| | | //跳转到登录页 |
| | | this.$router.push('/login') |
| | | // //获取导航栏 |
| | | // getNavArr(){ |
| | | // const data ={}; |
| | | // getNavList(data).then(res => { |
| | | // console.log('res', res) |
| | | // if(res.code == 200){ |
| | | // this.menuList2 = res.data.data |
| | | // } |
| | | // this.menuList2 = res.data.data |
| | | // }).catch(err => { |
| | | // console.log('err', err) |
| | | // }) |
| | | // }, |
| | | |
| | | formatterTitle(t) { |
| | | switch (t) { |
| | | case '1': |
| | | return 'index' |
| | | case '22': |
| | | return 'introduce' |
| | | case '23': |
| | | return 'zhengce' |
| | | case '24': |
| | | return 'keXieXiangMu' |
| | | case '25': |
| | | return 'xueShuJiaoLiu' |
| | | case '26': |
| | | return 'banShiZhiNan' |
| | | case '27': |
| | | return 'kePuFengCai' |
| | | case '28': |
| | | return 'xueXiaoShouYe' |
| | | case '29': |
| | | return 'telephone' |
| | | } |
| | | }, |
| | | // 获取所有菜单 |
| | | async getMenuLsit() { |
| | | const { data: res } = await this.$http.get('/menus') |
| | | // 如果请求失败 把错误消息打印出来 |
| | | if (res.meta.status !== 200) return this.$message.error(res.meta.msg) |
| | | //如果请求成功,将获取的数据拿过来即可 |
| | | this.menulist = res.data |
| | | console.log(res.data) |
| | | }, |
| | | toggleCollapse() { |
| | | this.isCollapse = !this.isCollapse |
| | | }, |
| | | //保存链接的激活状态 |
| | | saveNavState(activePath) { |
| | | window.sessionStorage.setItem('activePath', activePath) |
| | | this.activePath = activePath |
| | | handleSelect(key, keyPath) { |
| | | if (key == '28') { |
| | | window.open('https://www.pdsu.edu.cn/#') |
| | | } else { |
| | | this.$router.push({ |
| | | path: '/home/' + this.formatterTitle(key), |
| | | query: { |
| | | title: this.formatterTitle(key), |
| | | id: key |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | height: 100%; |
| | | } |
| | | .el-header { |
| | | background-color: rgb(55, 61, 63); |
| | | background-color: rgb(1, 72, 153); |
| | | } |
| | | .el-header { |
| | | height: 120px !important; |
| | | padding: 0 80px 0 120px; |
| | | overflow: hidden; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding-left: 0; |
| | | align-items: center; |
| | | color: #fff; |
| | | font-size: 20px; |
| | | > div { |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | span { |
| | | margin-left: 15px; |
| | | } |
| | | } |
| | | .el-menu { |
| | | .el-menu-item { |
| | | width: 150px; |
| | | font-size: 15px; |
| | | text-align: center; |
| | | } |
| | | } |
| | | .el-aside { |
| | | background-color: rgb(50, 55, 67); |
| | | .el-menu { |
| | | border-right: none; |
| | | } |
| | | .menu { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | .el-main { |
| | | background-color: rgb(233, 237, 240); |
| | | .el-footer { |
| | | background-color: rgb(85, 81, 82); |
| | | } |
| | | .iconfont { |
| | | margin-right: 10px; |
| | | .main { |
| | | padding: 20px 5px; |
| | | } |
| | | .toggle-button { |
| | | background-color: rgb(72, 81, 98); |
| | | .el-footer { |
| | | font-size: 15px; |
| | | color: white; |
| | | text-align: center; |
| | | font-size: 10px; |
| | | line-height: 26px; |
| | | letter-spacing: 0.2em; |
| | | cursor: pointer; |
| | | line-height: 60px; |
| | | } |
| | | .box { |
| | | width: 1200px; |
| | | margin: 0 auto; |
| | | } |
| | | </style> |