|
@@ -1,41 +1,53 @@
|
|
<template>
|
|
<template>
|
|
<div class="home">
|
|
<div class="home">
|
|
<div class="home-header">
|
|
<div class="home-header">
|
|
- <div class="head-logo" :class="{ 'head-logo-tiny': isCollapsed }">
|
|
|
|
- <!-- big logo 160*40 -->
|
|
|
|
- <h1 v-if="!isCollapsed">LOGO</h1>
|
|
|
|
- <!-- small logo 40*40 -->
|
|
|
|
- <h1 v-else>A</h1>
|
|
|
|
|
|
+ <div class="head-logo">
|
|
|
|
+ <h1>逸教云</h1>
|
|
</div>
|
|
</div>
|
|
- <div class="head-switch" @click="collapsedSider">
|
|
|
|
- <i :class="rotateIcon"></i>
|
|
|
|
- </div>
|
|
|
|
- <div class="head-info">
|
|
|
|
- <el-breadcrumb>
|
|
|
|
- <el-breadcrumb-item :to="{ name: 'Home' }">
|
|
|
|
- <i class="el-icon-s-home" style="margin-top: -4px;"></i>
|
|
|
|
- </el-breadcrumb-item>
|
|
|
|
- <el-breadcrumb-item
|
|
|
|
- v-for="(bread, index) in breadcrumbs"
|
|
|
|
|
|
+ <div class="head-menu menu-list">
|
|
|
|
+ <ul>
|
|
|
|
+ <li
|
|
|
|
+ v-for="(nav, index) in navs"
|
|
:key="index"
|
|
:key="index"
|
|
- >{{ bread.title }}</el-breadcrumb-item
|
|
|
|
|
|
+ @click="toPage(index, 0)"
|
|
|
|
+ :class="{ 'menu-item-act': curNav.title === nav.title }"
|
|
>
|
|
>
|
|
- </el-breadcrumb>
|
|
|
|
|
|
+ <div class="menu-item">
|
|
|
|
+ <i :class="['icon', `icon-${nav.type}`]"></i>
|
|
|
|
+ <span>{{ nav.title }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ </li>
|
|
|
|
+ </ul>
|
|
</div>
|
|
</div>
|
|
- <div class="head-user">
|
|
|
|
- <div class="user-avatar">
|
|
|
|
- <el-avatar icon="el-icon-user-solid"></el-avatar>
|
|
|
|
- </div>
|
|
|
|
- <span class="user-name">{{ username || "chulin" }}</span>
|
|
|
|
- <span class="user-logout" @click="logout">
|
|
|
|
- <i class="el-icon-switch-button"></i>
|
|
|
|
- </span>
|
|
|
|
|
|
+ <div class="head-user menu-list">
|
|
|
|
+ <ul>
|
|
|
|
+ <li>
|
|
|
|
+ <div class="menu-item">
|
|
|
|
+ <i class="icon icon-account"></i>
|
|
|
|
+ <span>账户设置</span>
|
|
|
|
+ </div>
|
|
|
|
+ </li>
|
|
|
|
+ <li @click="logout">
|
|
|
|
+ <div class="menu-item">
|
|
|
|
+ <i class="icon icon-shut"></i>
|
|
|
|
+ <span>退出登录</span>
|
|
|
|
+ </div>
|
|
|
|
+ </li>
|
|
|
|
+ </ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="home-navs" :class="{ 'home-navs-tiny': isCollapsed }">
|
|
<div class="home-navs" :class="{ 'home-navs-tiny': isCollapsed }">
|
|
|
|
+ <div class="nav-top">
|
|
|
|
+ <i :class="['icon', `icon-${curNav.type}-gray`]"></i>
|
|
|
|
+ <span>{{ curNav.title }}</span>
|
|
|
|
+ </div>
|
|
<ul>
|
|
<ul>
|
|
- <li class="nav-item" v-for="(nav, index) in navs" :key="index">
|
|
|
|
|
|
+ <li
|
|
|
|
+ class="nav-item"
|
|
|
|
+ v-for="(nav, index) in curNav.children"
|
|
|
|
+ :key="index"
|
|
|
|
+ >
|
|
<div
|
|
<div
|
|
:class="[
|
|
:class="[
|
|
'nav-item-main',
|
|
'nav-item-main',
|
|
@@ -58,33 +70,27 @@
|
|
></i>
|
|
></i>
|
|
</span>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
- <ul
|
|
|
|
- class="nav-item-sublist"
|
|
|
|
- :class="{ 'nav-sublist-hide': !nav.showList }"
|
|
|
|
- v-if="nav.children && nav.children.length"
|
|
|
|
- :style="{ height: nav.children.length * 40 + 'px' }"
|
|
|
|
- >
|
|
|
|
- <li
|
|
|
|
- v-for="(subnav, sindex) in nav.children"
|
|
|
|
- :key="sindex"
|
|
|
|
- :class="[
|
|
|
|
- 'nav-item-sub',
|
|
|
|
- { 'nav-item-sub-act': curSub === index + '-' + sindex }
|
|
|
|
- ]"
|
|
|
|
- @click="toPage(index, sindex)"
|
|
|
|
- >
|
|
|
|
- {{ subnav.title }}
|
|
|
|
- </li>
|
|
|
|
- </ul>
|
|
|
|
</li>
|
|
</li>
|
|
</ul>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="home-body" :class="{ 'home-body-big': isCollapsed }">
|
|
<div class="home-body" :class="{ 'home-body-big': isCollapsed }">
|
|
<div class="home-main">
|
|
<div class="home-main">
|
|
- <router-view />
|
|
|
|
|
|
+ <div class="home-breadcrumb">
|
|
|
|
+ <el-breadcrumb>
|
|
|
|
+ <el-breadcrumb-item :to="{ name: 'Home' }">
|
|
|
|
+ <i class="el-icon-s-home" style="margin-top: -4px;"></i>
|
|
|
|
+ </el-breadcrumb-item>
|
|
|
|
+ <el-breadcrumb-item
|
|
|
|
+ v-for="(bread, index) in breadcrumbs"
|
|
|
|
+ :key="index"
|
|
|
|
+ >{{ bread.title }}</el-breadcrumb-item
|
|
|
|
+ >
|
|
|
|
+ </el-breadcrumb>
|
|
|
|
+ </div>
|
|
|
|
|
|
- <view-footer></view-footer>
|
|
|
|
|
|
+ <!-- page-detail -->
|
|
|
|
+ <router-view />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -99,23 +105,12 @@ export default {
|
|
return {
|
|
return {
|
|
isCollapsed: false,
|
|
isCollapsed: false,
|
|
navs,
|
|
navs,
|
|
|
|
+ curNav: navs[0],
|
|
curMain: 0,
|
|
curMain: 0,
|
|
curSub: "",
|
|
curSub: "",
|
|
- avatar: "",
|
|
|
|
breadcrumbs: []
|
|
breadcrumbs: []
|
|
};
|
|
};
|
|
},
|
|
},
|
|
- computed: {
|
|
|
|
- rotateIcon() {
|
|
|
|
- return [
|
|
|
|
- "menu-icon",
|
|
|
|
- this.isCollapsed ? "el-icon-s-unfold" : "el-icon-s-fold"
|
|
|
|
- ];
|
|
|
|
- },
|
|
|
|
- username() {
|
|
|
|
- return this.$store.state.user.realName;
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
watch: {
|
|
watch: {
|
|
$route(val) {
|
|
$route(val) {
|
|
this.actCurNav();
|
|
this.actCurNav();
|
|
@@ -125,9 +120,6 @@ export default {
|
|
this.actCurNav();
|
|
this.actCurNav();
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
- collapsedSider() {
|
|
|
|
- this.isCollapsed = !this.isCollapsed;
|
|
|
|
- },
|
|
|
|
switchNav(item, mainIndex) {
|
|
switchNav(item, mainIndex) {
|
|
if (item.children) {
|
|
if (item.children) {
|
|
item.showList = !item.showList;
|
|
item.showList = !item.showList;
|
|
@@ -168,6 +160,7 @@ export default {
|
|
{ title: item.title, router: item.router },
|
|
{ title: item.title, router: item.router },
|
|
{ title: elem.title, router: elem.router }
|
|
{ title: elem.title, router: elem.router }
|
|
];
|
|
];
|
|
|
|
+ this.curNav = this.navs[mainIndex];
|
|
this.curMain = mainIndex;
|
|
this.curMain = mainIndex;
|
|
this.curSub = mainIndex + "-" + subIndex;
|
|
this.curSub = mainIndex + "-" + subIndex;
|
|
|
|
|