时间:2021-05-26
本文实例为大家分享了vue.js左边导航切换右边内容的具体代码,供大家参考,具体内容如下
<template> <div class="layout-container"> <y-header> <div slot="nav"></div> </y-header> <div class="w"> <div class="content"> <div class="account-sidebar"> <div class="gray-box "> <div class="box-inner"> <ul class="account-nav"> <li v-for="(item,i) in nav" :key='i'> <a href="javascript:;" > <div class="account-nav-primary" @click="tabPrimary(item)" :class="{active:item.isActive}"> <span>{{item.name}}</span> <i class="el-icon-arrow-right"></i> </div> </a> <div v-if="item.secondNav==true"> <ul class="account-nav-second" v-show="show"> <li v-for="(itemT,j) in item.navSecond" :key='j' :class="{active:itemT.name===title}" @click="tabSecond(itemT)"> <span>{{itemT.name}}</span> </li> </ul> </div> </li> </ul> </div> </div> <div class="gray-box sidebar-bottom content-center"> <div class="img-code"> <img src="../../assets/static/img-code.png" width="100"/> </div> <span>扫一扫下载APP</span> </div> </div> <div class="account-content"> <router-view></router-view> </div> </div> </div> <y-footer></y-footer> </div></template><script> import YFooter from '/common/footer' import YHeader from '/common/header' export default { data () { return { show: true, title: '学院介绍', nav: [ {name: '学院介绍', isActive: false, secondNav: true, // 是否存在二级菜单,true为存在 // path: 'background', navSecond: [ {name: '创建背景', path: 'background'}, {name: '创建单位', path: 'unit'}, {name: '创建目的'}, {name: '管理单位'}, {name: '运行主体'} ] }, {name: '关于我们', path: 'aboutMe', isActive: false, secondNav: false} ] } }, computed: { }, methods: { tabSecond (e) { this.$router.push({path: '/college/' + e.path}) }, tabPrimary (e) { let path = this.$route.path.split('/')[2] if (e.secondNav) { // this.show = !this.show if (path === 'aboutMe') { this.$router.push({path: '/college/' + e.navSecond[0].path}) } } else { this.$router.push({path: '/college/' + e.path}) } } }, created () { let path = this.$route.path.split('/')[2] this.nav.forEach(item => { item.isActive = false if (item.secondNav) { item.navSecond.forEach(itemT => { if (itemT.path === path) { this.title = itemT.name if (itemT.name === this.title) { item.isActive = true // 当属于子菜单时,父菜单高亮 } } }) } else { if (item.path === path) { this.title = item.name item.isActive = true } } }) }, components: { YFooter, YHeader }, watch: { $route (to) { let path = to.path.split('/')[2] this.nav.forEach(item => { item.isActive = false if (item.secondNav) { item.navSecond.forEach(itemT => { if (itemT.path === path) { this.title = itemT.name if (itemT.name === this.title) { item.isActive = true // 当属于子菜单时,父菜单高亮 } } }) } else { if (item.path === path) { this.title = item.name item.isActive = true } } }) } } }</script><style lang="scss" rel="stylesheet/scss" scoped> @import "../../assets/style/mixin"; .main { background: #fff; color: #000; } a { color: #000; } .w { padding-top: 40px; } .img-code { margin: 0px auto 12px; } .content { display: flex; height: 100%; font-size: 16px; } .sidebar-bottom { margin-top: 20px; padding: 16px; } .content-center { text-align: center; } .account-sidebar { width: 210px; border-radius: 6px; .account-nav { padding: 15px 0; .active { color: #0156AC; } .active a{ color: #0156AC; } li:hover { a{ color: #0156AC; } } li { position: relative; line-height: 48px; .account-nav-primary { padding: 0px 20px; height: 48px; span { float: left; } i { float: right; line-height: 48px; font-size: 14px; } } .account-nav-second { li { list-style: disc; list-style-position: inside; height: 48px; padding: 0 26px; text-align: left; color: #5B6976; cursor: pointer; span { margin-left: -14px; color: #A9B2BC; } &:hover{ color: #0156AC; span { color: #0156AC; } } } .active { color: #0156AC; span { color: #0156AC; } } } a { display: block; } &.current { a { position: relative; z-index: 1; height: 50px; background-color: #98AFEE; line-height: 50px; color: #FFF; } } } } } .account-content { margin-left: 24px; flex: 1; }</style>效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
现在很多的后台管理系统都采用tab选项卡的布局,左边是导航栏固定,右边是对应的页面,每次点击左边的导航标题,只有右面的对应页面再切换,而vue要做tab选项卡,
本文实例为大家分享了Vue.js实现分页查询的具体代码,供大家参考,具体内容如下vue.js的使用如下:1、引入vue.jsa、分页条b、分页条js、css2、
本文实例为大家分享了vue.js实现二级菜单效果的具体代码,供大家参考,具体内容如下主要是对二级菜单和当前点击的处理:点击导航时,如果有二级菜单,就切换二级菜单
vue实现菜单切换,点击菜单导航切换不同的内容以及为当前点击的选项添加样式,或者组件。method里:css:html代码:学校新闻就业新闻行业新闻js代码:d
本文实例为大家分享了vue.js实现简单购物车的具体代码,供大家参考,具体内容如下这次我将给大家带来一个vue.js实现购物车的小项目,如有不足请严厉指出。购物