<template> <el-row class="container darkmenu" style="margin-top: 0px;"> <el-col :span="24" class="header" style="background-position: center"> <el-col :span="14" class="logo" :class="collapsed?'logo-collapse-width':'logo-width'"> {{collapsed?'':sysName}} </el-col> <el-col :span="6"> <div class="tools" @click.prevent="collapse" style="width: 15px;margin-top: 72px;margin-left:-2px;z-index:9999;position:absolute;"> <!-- ;margin-top: 80px;z-index:9999;margin-left: 170px--> <!-- <i class="el-icon-s-operation" style="color: rgb(38,56,76)"></i>--> <img :class="[rotate?'go':'aa']" @click="start" width="20" height="44" src="data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAABCCAYAAABAfGYuAAAArklEQVRYhe3YIQ4CMRBG4b+IOhyS26DXEjySBE6A4QSINasRSAx3guBJECTdLMn6dtp0Be8loz/Tjhh3OLVBEzSbAhUwMDAwMDAwMDAw8B/A5+PuNzEtF/NycGwDut9u6sIj6r2vB6eiRWALmg1b0SzYOWndrExoFhyC1F3vejxfdeGh9+er9nIz4dmPy4oX+U4WvNgCScWLrswRj4k7FzAwMDAwMDAwMDBwYnLqAfLHOpMP7/PBAAAAAElFTkSuQmCC"> </div> <!-- 标签i的图标 fa-align-justify--> </el-col> <!-- <el-col :span="4" class="userinfo">--> <!-- <el-dropdown trigger="hover" >--> <!-- <span class="el-dropdown-link userinfo-inner">{{sysUserName}}<img :src="this.sysUserAvatar"/></span>--> <!-- <el-dropdown-menu slot="dropdown">--> <!-- <el-dropdown-item>我的消息</el-dropdown-item>--> <!-- <el-dropdown-item @click.native="editPass">修改密码</el-dropdown-item>--> <!-- <el-dropdown-item @click.native="updateCache">更新缓存</el-dropdown-item>--> <!-- <el-dropdown-item divided @click.native="logout">退出登录</el-dropdown-item>--> <!-- </el-dropdown-menu>--> <!-- </el-dropdown>--> <!-- </el-col>--> </el-col> <!-- <el-col>--> <!-- <el-dialog title="修改密码" :visible.sync="dialogFormVisible">--> <!-- <el-form :model="resetForm" status-icon :rules="resetFormRules" ref="resetForm" label-width="100px">--> <!-- <el-form-item label="用户名" prop="name">--> <!-- <span>{{sysUserName}}</span>--> <!-- </el-form-item>--> <!-- <el-form-item label="新密码" prop="newpwd">--> <!-- <el-input type="password" v-model="resetForm.newpwd" autocomplete="off" placeholder="8-20位字符在数字、小写、大写字母以及特殊字符中四选三"></el-input>--> <!-- </el-form-item>--> <!-- <el-form-item label="确认密码" prop="renewpwd">--> <!-- <el-input type="password" v-model="resetForm.renewpwd" auto-complete="off"></el-input>--> <!-- </el-form-item>--> <!-- <el-form-item>--> <!-- <el-button type="primary" @click="submitEdit('resetForm')" style="float:right">提 交</el-button>--> <!-- </el-form-item>--> <!-- </el-form>--> <!-- </el-dialog>--> <!-- </el-col>--> <el-col :span="24" class="main"> <NavMenu :collapsed="collapsed"></NavMenu> <!-- <aside :class="collapsed?'menu-collapsed':'menu-expanded'">--> <!-- <!–导航菜单–>--> <!-- <el-menu :default-active="$route.path" class="el-menu-vertical-demo" @open="handleopen"--> <!-- @close="handleclose" @select="handleselect" unique-opened router v-show="!collapsed"--> <!-- style="width: 380px;height: 100%;margin-right: -18px">--> <!-- <!– ;overflow: scroll–>--> <!-- <div align="center" style="background-color: #2b2f3a;height: 67px">--> <!-- <img src="./logo1.png">--> <!-- <h1 style="color:white;display: inline-block">航空物流公共信息服务平台</h1>--> <!-- <!– ;font-weight: 600;font-size: 15px;line-height: 50px–>--> <!-- </div>--> <!-- <template v-for="(item,index) in $router.options.routes" v-if="!item.hidden">--> <!-- <el-submenu :index="index+''" v-if="!item.leaf">--> <!-- <template slot="title"><i :class="item.iconCls"></i>{{item.name}}</template>--> <!-- <el-menu-item v-for="child in item.children" :index="child.path" :key="child.path" v-if="!child.hidden">{{child.name}}</el-menu-item>--> <!-- </el-submenu>--> <!-- <el-menu-item v-if="item.leaf&&item.children.length>0" :index="item.children[0].path"><i :class="item.iconCls"></i>{{item.children[0].name}}</el-menu-item>--> <!-- </template>--> <!-- </el-menu>--> <!-- <!–导航菜单-折叠后–>--> <!-- <ul class="el-menu el-menu-vertical-demo collapsed" v-show="collapsed" ref="menuCollapsed">--> <!-- <li v-for="(item,index) in $router.options.routes" v-if="!item.hidden" class="el-submenu item">--> <!-- <template v-if="!item.leaf">--> <!-- <div class="el-submenu__title" style="padding-left: 20px;" @mouseover="showMenu(index,true)" @mouseout="showMenu(index,false)"><i :class="item.iconCls"></i></div>--> <!-- <ul class="el-menu submenu" :class="'submenu-hook-'+index" @mouseover="showMenu(index,true)" @mouseout="showMenu(index,false)">--> <!-- <li v-for="child in item.children" v-if="!child.hidden" :key="child.path" class="el-menu-item" style="padding-left: 40px;" :class="$route.path==child.path?'is-active':''" @click="$router.push(child.path)">{{child.name}}</li>--> <!-- </ul>--> <!-- </template>--> <!-- <template v-else>--> <!-- <li class="el-submenu">--> <!-- <div class="el-submenu__title el-menu-item" style="padding-left: 20px;height: 56px;line-height: 56px;padding: 0 20px;" :class="$route.path==item.children[0].path?'is-active':''" @click="$router.push(item.children[0].path)"><i :class="item.iconCls"></i></div>--> <!-- </li>--> <!-- </template>--> <!-- </li>--> <!-- </ul>--> <!-- </aside>--> <div class="center"> </div> <div class="tabM" > <TabMenu></TabMenu> </div> <div class="side"> </div> </el-col> </el-row> </template> <script> import rt from '../routes' import { editPass,resetToken} from '../api/user'; import ElFormItem from "element-ui/packages/form/src/form-item"; import TabMenu from "@/components/TabMenu" import NavMenu from "@/components/NavMenu" export default { provide() { return { reload: this.reload } }, components: {ElFormItem,TabMenu,NavMenu}, data() { // var validatePass = (rule, value, callback) => { // if (!value) { // callback(new Error('请输入新密码')); // }else { // var ls=0; // if(value.match(/([a-z])+/)){ // ls++; // } if(value.match(/([0-9])+/)){ // ls++; // } if(value.match(/([A-Z])+/)){ // ls++; // } if((/([\W])+/) && !value.match(/(![\u4E00-\u9FA5])+/)){ // ls++; // } if (value.toString().length < 8 || value.toString().length > 20) { // callback(new Error('密码长度为8 - 20个字符')); // ls=0; // } if(value.match(/([\u4E00-\u9FA5])+/)){ // callback(new Error('不能包含中文字符')); // ls=0; // } // switch (ls) { // case 0: this.passwordPercent = 0;callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));break; // case 1: this.passwordPercent = 33;callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));break; // case 2: this.passwordPercent = 66;callback(new Error('数字、小写字母 、大写字母以及特殊字符中四选三'));break; // case 3: // case 4: this.passwordPercent = 100;break; // default: this.passwordPercent = 0;break; // } // callback(); // } // // }; // // var validatePass2 = (rule, value, callback) => { // if (value === '') { // callback(new Error('请再次输入密码')); // } else if (value !== this.resetForm.newpwd) { // callback(new Error('两次输入密码不一致!')); // } else { // callback(); // } // }; return { rotate:false, sysName:'', collapsed:false, // sysUserName: '', sysUserId:'', // sysUserAvatar: '', isRouterAlive: true, form: { name: '', region: '', date1: '', date2: '', delivery: false, type: [], resource: '', desc: '' }, // dialogFormVisible:false, // resetForm: { // newpwd: '', // renewpwd: '', // }, // resetFormRules: { // newpwd: [ // { required: true, validator: validatePass, trigger: 'blur' } // ], // renewpwd: [ // { required: true, validator: validatePass2, trigger: 'blur' } // ] // }, editForm: { userId: '', password: '', }, } }, methods: { start(){ this.rotate=!this.rotate; console.log(this.rotate) }, reload() { this.$nextTick(function () { this.$router.push({ path: this.$router.path, query:{ t: new Date().getTime() } }) }) }, // editPass:function(){ // this.dialogFormVisible=true; // }, // updateCache:function(){ // resetToken().then( res =>{ // let response = res.data; // if (response.code === '200'){ // this.$notify({ // title: '成功', // message: '缓存更新成功', // type: 'success' // }); // }else{ // this.$notify.error({ // title: '失败', // message: '缓存更新失败' // }); // } // }) // }, // submitEdit(formName){ // this.$refs[formName].validate((valid) => { // if (valid) { // this.editForm.userId=this.sysUserId; // this.editForm.password=this.resetForm.renewpwd; // editPass(this.editForm).then(res=>{ // let response=res.data; // if(response.code=='200'){ // this.$notify({ // title: '密码修改成功', // message: '密码修改成功,退出请重新登录', // type: 'success' // }); // this.dialogFormVisible=false; // }else{ // this.$notify.error({ // title: '密码修改失败', // message: '密码修改失败!!!' // }); // } // }); // } else { // console.log('error submit!!'); // return false; // } // }); // }, onSubmit() { console.log('submit!'); }, handleopen() { console.log('handleopen'); }, handleclose() { console.log('handleclose'); }, handleselect: function (a, b) { this.reload() }, // 退出登录 logout: function () { var _this = this; this.$confirm('确认退出吗?', '提示', { //type: 'warning' }).then(() => { sessionStorage.removeItem('user'); sessionStorage.removeItem('menu'); //退出后初始化原来的路由 let sysRoutes = JSON.parse(sessionStorage.getItem('sysMenu')); console.log(sysRoutes); _this.$router.options.routes = sysRoutes; _this.$router.push('/login'); }).catch(() => { }); }, //折叠导航栏 collapse:function(){ this.collapsed=!this.collapsed; }, showMenu(i,status){ this.$refs.menuCollapsed.getElementsByClassName('submenu-hook-'+i)[0].style.display=status?'block':'none'; }, }, mounted() { var _this = this; var user = sessionStorage.getItem('user'); if (user) { user = JSON.parse(user); this.sysUserName = user.username || ''; this.sysUserId=user.userId||''; this.sysUserAvatar = user.userface || '~img/faceDefault.jpg'; } //操作路由,判断本地存储的用户栏目列表是否存在,如果存在则加载路由 var userRouters = sessionStorage.getItem('menu'); if (userRouters) { userRouters = JSON.parse(userRouters); _this.$router.options.routes = userRouters; console.log("home:"); console.log(_this.$router.options.routes); } } } </script> <style scoped lang="scss"> @import '~scss_vars'; .container { position: absolute; top: 0px; bottom: 0px; width: 100%; .header { height: 70px; line-height: 70px; background: $color-primary url("~img/air-banner.png"); color:#fff; .userinfo { text-align: right; padding-right: 125px; padding-top: 21px; float: right; /*.userinfo-inner {*/ /* cursor: pointer;*/ /* color:rgb(180,150,121);*/ /* img {*/ /* width: 40px;*/ /* height: 40px;*/ /* border-radius: 20px;*/ /* margin: 10px 0px 10px 10px;*/ /* float: right;*/ /* }*/ /*}*/ } .logo { //width:230px; height:60px; font-size: 22px; padding-left:10px; padding-right:10px; border-color: rgba(238,241,146,0.3); border-right-width: 0px; border-right-style: solid; /*border-right-style: solid;*/ img { width: 40px; float: left; margin: 10px 10px 10px 18px; } .txt { color:#fff; } } .logo-width{ width:17%; } .logo-collapse-width{ width:60px } .tools{ /*padding: 0px 13px;*/ /*width:14px;*/ height: 50px; line-height: 40px; cursor: pointer; /*padding-left: 180px;*/ /*padding-top: 60px;*/ /*color: rgb(111,130,148);*/ } } .main { display: flex; // background: #324057; position: absolute; top: 70px; bottom: 0px; overflow: hidden; aside { flex:0 0 380px; width: 380px; overflow-x: hidden; overflow-y: scroll; position: relative; background: rgb(38,56,76); // position: absolute; // top: 0px; // bottom: 0px; .collapsed{ width:60px; .item{ position: relative; } .submenu{ position:absolute; top:0px; left:60px; z-index:99999; height:auto; display:none; } } } aside::-webkit-scrollbar { width: 0 !important; } aside::-webkit-scrollbar { width: 0 !important;height: 0; } .menu-collapsed{ flex:0 0 60px; width: 230px; } .menu-expanded{ /*底层滚动框宽度*/ flex:0 0 380px; width: 230px; } .menu-expanded ul{ width: 230px; } .content-container { // background: #f1f2f7; flex:1; // position: absolute; // right: 0px; // top: 0px; // bottom: 0px; // left: 230px; overflow-y: scroll; padding: 10px; .breadcrumb-container { //margin-bottom: 15px; .title { width: 200px; float: left; color: #475669; margin-left: 10px; } .breadcrumb-inner { float: right; margin-right:10px; } .el-breadcrumb{ line-height:36px; } } .content-wrapper { background-color: #fff; box-sizing: border-box; } } } } </style> <style lang="scss"> .darkmenu{ .main { aside { .el-menu{ /*height: 100%;*/ /*width: 300px!important;*/ background: #26384c; .el-menu-item { i{ color: white; } color: white; } /*.el-menu-item.is-active{*/ /* color:#e6a23c;*/ /*}*/ .el-menu-item:hover,.el-menu-item:focus{ background-color: #4f6273; /*border-left: 3px solid #be1fd9;*/ } .el-submenu { ul.el-menu.el-menu--inline{ background: #303030; } .el-submenu__title { color: white; i{ color: white; } } .el-submenu__title:hover { background-color: #4f6273; border-left: 3px solid #be1fd9logo-width } } } } } } .center{ display: inline-block; width: 35px; background-color: white; z-index: 999; } .side{ display: inline-block; width: 23px; background-color: white; z-index: 999; } .tabM{ display: inline-block; /*min-width: 758px;*/ /*max-width: 1190px;*/ overflow-y: scroll; width: 100%; /*z-index: 999;*/ margin-right: -25px; background-color: white; } .go{ transform:rotate(-180deg); } </style>