|
@@ -0,0 +1,223 @@
|
|
|
+<template>
|
|
|
+ <div class="home">
|
|
|
+ <header class="header">
|
|
|
+ <div class="left">
|
|
|
+ 苏尼特羊区块链平台
|
|
|
+ <el-button
|
|
|
+ @click="onMenuCollapse"
|
|
|
+ circle
|
|
|
+ style="font-size: 20px"
|
|
|
+ :icon="menuCollapse ? 'el-icon-s-unfold' : 'el-icon-s-fold'"
|
|
|
+ ></el-button>
|
|
|
+ </div>
|
|
|
+ <div class="right">
|
|
|
+ <span class="warp">
|
|
|
+ <el-dropdown @command="onLogOut">
|
|
|
+ <span class="el-dropdown-link">
|
|
|
+ 账号管理
|
|
|
+ <i class="el-icon-arrow-down el-icon--right"></i>
|
|
|
+ </span>
|
|
|
+ <el-dropdown-menu slot="dropdown">
|
|
|
+ <el-dropdown-item>退出登录</el-dropdown-item>
|
|
|
+ <el-dropdown-item>切换账号</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ </span>
|
|
|
+ <span>
|
|
|
+ <el-dropdown @command="onLogOut">
|
|
|
+ <span class="el-dropdown-link">
|
|
|
+ 权限切换
|
|
|
+ <i class="el-icon-arrow-down el-icon--right"></i>
|
|
|
+ </span>
|
|
|
+ <el-dropdown-menu slot="dropdown">
|
|
|
+ <el-dropdown-item disabled>权限一</el-dropdown-item>
|
|
|
+ <el-dropdown-item divided>权限二</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </header>
|
|
|
+ <section class="section">
|
|
|
+ <div class="col1">
|
|
|
+ <el-menu
|
|
|
+ class="el-menu-vertical-demo"
|
|
|
+ @open="handleOpen"
|
|
|
+ @select="handleSelect"
|
|
|
+ @close="handleClose"
|
|
|
+ :collapse="menuCollapse"
|
|
|
+ :unique-opened="true"
|
|
|
+ :default-active="defaultActiveMenu"
|
|
|
+ select="1-1"
|
|
|
+ background-color="#545c64"
|
|
|
+ text-color="#eee"
|
|
|
+ active-text-color="#ffd04b"
|
|
|
+ >
|
|
|
+ <div v-for="(item, index1) in menuData" :key="index1">
|
|
|
+ <el-submenu
|
|
|
+ v-if="item.childList && item.childList.length > 0"
|
|
|
+ :index="`${index1}`"
|
|
|
+ >
|
|
|
+ <template slot="title">
|
|
|
+ <i :class="item.iconClassName"></i>
|
|
|
+ <span slot="title">{{
|
|
|
+ !menuCollapse ? item.optionName : ""
|
|
|
+ }}</span>
|
|
|
+ </template>
|
|
|
+ <el-menu-item
|
|
|
+ v-for="(item1, index2) in item.childList"
|
|
|
+ :key="`${index1}-${index2}`"
|
|
|
+ :index="`${index1}-${index2}`"
|
|
|
+ :routerName="item1.routerName"
|
|
|
+ @click="onClickMenu(item1)"
|
|
|
+ >{{ item1.optionName }}</el-menu-item
|
|
|
+ >
|
|
|
+ </el-submenu>
|
|
|
+ <el-menu-item
|
|
|
+ v-else
|
|
|
+ :index="`${index1}`"
|
|
|
+ :disabled="item.disabled"
|
|
|
+ :routerName="item.routerName"
|
|
|
+ @click="onClickMenu(item)"
|
|
|
+ >
|
|
|
+ <i :class="item.iconClassName"></i>
|
|
|
+ <span slot="title">{{
|
|
|
+ !menuCollapse ? item.optionName : ""
|
|
|
+ }}</span>
|
|
|
+ </el-menu-item>
|
|
|
+ </div>
|
|
|
+ </el-menu>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="col2">
|
|
|
+ <div class="warp">
|
|
|
+ <router-view />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </section>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { menuData } from "./mencCofig.js";
|
|
|
+
|
|
|
+export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ // 菜单配置
|
|
|
+ menuData,
|
|
|
+ menuCollapse: false, //是否水平折叠收起菜单
|
|
|
+ defaultActiveMenu: '0-0', //是否水平折叠收起菜单
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.defaultActiveMenu = localStorage.getItem("defaultActiveMenu")
|
|
|
+ this.menuCollapse = JSON.parse(localStorage.getItem("menuCollapse"));
|
|
|
+ },
|
|
|
+ mounted() {},
|
|
|
+ methods: {
|
|
|
+ // 收取菜单按钮
|
|
|
+ onMenuCollapse() {
|
|
|
+ this.menuCollapse = !this.menuCollapse;
|
|
|
+ localStorage.setItem("menuCollapse", this.menuCollapse);
|
|
|
+ },
|
|
|
+ // 菜单展开
|
|
|
+ handleOpen(key, keyPath) {},
|
|
|
+ // 菜单选中
|
|
|
+ handleSelect(index) {
|
|
|
+ localStorage.setItem("defaultActiveMenu", index);
|
|
|
+ },
|
|
|
+ // 菜单收取
|
|
|
+ handleClose(key, keyPath) {},
|
|
|
+ // 点击菜单项
|
|
|
+ onClickMenu(item) {
|
|
|
+ // 如果要跳转的路由和当前路由一致就 return
|
|
|
+ if (this.$router.history.current.name == item.routerName) return;
|
|
|
+ this.$router.push({
|
|
|
+ name: item.routerName,
|
|
|
+ });
|
|
|
+ },
|
|
|
+ onLogOut() {
|
|
|
+ this.$router.replace("login");
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.home {
|
|
|
+ height: 100%;
|
|
|
+ min-width: 800px;
|
|
|
+ overflow: hidden;
|
|
|
+ box-sizing: border-box;
|
|
|
+ background-color: #eee;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ > .header {
|
|
|
+ background-color: #4b545e;
|
|
|
+ height: 40px;
|
|
|
+ padding: 10px 20px;
|
|
|
+ margin-bottom: 5px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ .left {
|
|
|
+ font-size: 25px;
|
|
|
+ color: #fff;
|
|
|
+ /deep/ .is-circle {
|
|
|
+ margin-left: 40px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .right {
|
|
|
+ .warp {
|
|
|
+ margin-right: 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .section {
|
|
|
+ flex-grow: 1;
|
|
|
+ box-sizing: border-box;
|
|
|
+ overflow: auto;
|
|
|
+ display: flex;
|
|
|
+ box-sizing: border-box;
|
|
|
+ .col1 {
|
|
|
+ margin-right: 5px;
|
|
|
+ background-color: #545c64;
|
|
|
+ border-radius: 15px;
|
|
|
+ overflow: auto;
|
|
|
+ /deep/ .el-menu-vertical-demo {
|
|
|
+ border: #545c64 1px solid;
|
|
|
+ -webkit-user-select: none;
|
|
|
+ -moz-user-select: none;
|
|
|
+ -ms-user-select: none;
|
|
|
+ user-select: none;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .col2 {
|
|
|
+ flex: 1;
|
|
|
+ background-color: #fff;
|
|
|
+ padding: 0 15px 0px 15px;
|
|
|
+ border-radius: 5px;
|
|
|
+ margin-right: 5px;
|
|
|
+ height: 100%;
|
|
|
+ overflow: auto;
|
|
|
+ .warp {
|
|
|
+ margin: 15px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // border: 1px solid #f00;
|
|
|
+}
|
|
|
+
|
|
|
+.el-menu-vertical-demo:not(.el-menu--collapse) {
|
|
|
+ width: 200px;
|
|
|
+ min-height: 400px;
|
|
|
+}
|
|
|
+// 下拉菜单
|
|
|
+.el-dropdown-link {
|
|
|
+ cursor: pointer;
|
|
|
+ color: #fff;
|
|
|
+}
|
|
|
+.el-icon-arrow-down {
|
|
|
+ font-size: 12px;
|
|
|
+}
|
|
|
+</style>
|