<template> <div class="pageMenu" v-bind:class="{ widthFold: menuFold }"> <div class="panel"> <div class="icon" v-show="!menuFold" @click="menuFoldHandle()"> <b></b> </div> <div class="iconFold" v-show="menuFold" @click="menuFoldHandle(1)"> <b></b> </div> <ul class="menuFold" v-show="menuFold"> <li @click="menuFoldHandle(1)" v-bind:class="{ isOpened: opened === 'modelLibrary' }" > <b class="my-icon-menuA is"></b> </li> <li @click="menuFoldHandle(1)" v-bind:class="{ isOpened: opened === 'algorithmsLibrary' }" > <b class="my-icon-menuB"></b> </li> <li @click="menuFoldHandle(1)" v-bind:class="{ isOpened: opened === 'sceneLibrary' }" > <b class="my-icon-menuC"></b> </li> <li @click="menuFoldHandle(1)" v-bind:class="{ isOpened: opened === 'systemManagement' }" > <b class="my-icon-menuD"></b> </li> <li @click="menuFoldHandle(1)" v-bind:class="{ isOpened: opened === 'systemManagement' }" > <b class="my-icon-menuE"></b> </li> <li @click="menuFoldHandle(1)" v-bind:class="{ isOpened: opened === 'systemManagement' }" > <b class="my-icon-menuF"></b> </li> </ul> <div class="menuList" v-show="!menuFold"> <el-menu default-active="modelLibrary" class="el-menu-vertical-demo" background-color="#3397FF" :router="true" @select="menuSel" > <!-- active-text-color="#ffffff" --> <el-submenu index="modelLibrary"> <template slot="title"> <i class="my-icon-menuA"></i> <span>模型库</span> </template> <el-menu-item index="sensorModel" >传感器模型</el-menu-item > <el-menu-item index="vehicleModel" >车辆模型</el-menu-item > <el-menu-item index="vehicleConfigurationList" >车辆配置</el-menu-item > </el-submenu> <el-submenu index="algorithmsLibrary"> <template slot="title"> <i class="my-icon-menuB"></i> <span>算法库</span> </template> <el-menu-item index="algorithmsLibraryList" >算法库列表</el-menu-item > </el-submenu> <el-submenu index="sceneLibrary"> <template slot="title"> <i class="my-icon-menuC"></i> <span>场景库</span> </template> <el-menu-item index="naturalDrivingScenarioList" >自然驾驶场景</el-menu-item > <el-menu-item index="standardRegulationSimulationScenarioList" >标准法规仿真场景</el-menu-item > <el-menu-item index="trafficAccidentSimulationScenarioList" >交通事故仿真场景</el-menu-item > <el-menu-item index="scenarioTestPackageManagementList" >场景测试包管理</el-menu-item > <el-menu-item index="gradingRulesList" >打分规则</el-menu-item > </el-submenu> <el-submenu index="workManagement"> <template slot="title"> <i class="my-icon-menuD"></i> <span>工作管理</span> </template> <el-menu-item index="manualRunProjectList" >手动运行项目</el-menu-item > </el-submenu> <!-- <el-submenu index="systemManagement"> <template slot="title"> <i class="my-icon-menuF"></i> <span>系统管理</span> </template> <el-menu-item index="accountManagement" >账户管理</el-menu-item > </el-submenu> --> </el-menu> </div> </div> <div class="fold" v-show="menuFold"> <img :src="imgSrc" width="100%" height="100%" /> </div> <div class="unfold" v-show="!menuFold"> <img :src="imgSrc" width="100%" height="100%" /> </div> </div> </template> <script> export default { name: "pageMenu", data() { return { menuFold: false, // menu是否折叠 opened: false, imgSrc: require("@/assets/common/image/photoF.png"), }; }, methods: { menuFoldHandle(val) { if (val) { this.menuFold = false; } else { this.menuFold = true; } this.$emit("menuFold", this.menuFold); }, menuSel(index, indexPath) { // console.log(index, indexPath); this.opened = indexPath[0]; }, }, created() { localStorage.setItem( "Authorization", "Bearer fd135698-d12d-43de-b923-1585c2a3d07c" ); // document.cookie = 'Authorization=Bearer 52de2c22-c2f9-4307-b49d-5b5593792352' // console.log(this.$route); /* let { code, ticket } = this.$route.query; if (code && ticket) { this.$axios({ method: "post", url: this.$api.common.single, data: { code, ticket }, }).then((res) => { if (res.code == 200 && !!res.info.access_token) { localStorage.setItem( "Authorization", "Bearer " + res.info.access_token ); } else { alert(res); } }); } else { console.log(66); } */ }, }; </script> <style scoped lang="less"> .pageMenu { position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 6; width: 150px; height: 100%; [class^="my-icon-"] { vertical-align: middle; text-align: center; font-size: 18px; background-size: contain; } } .widthFold { width: 60px; } .panel { position: absolute; left: 0; top: 0; bottom: 0; z-index: 9; width: 100%; height: 100%; background: @themeColor; } .icon, .iconFold { display: flex; align-items: center; justify-content: center; height: 61px; border-bottom: 1px solid #ffffff; cursor: pointer; b { display: block; background-size: contain; } } .iconFold { width: 60px; b { width: 28px; height: 38px; background: url("../../assets/common/image/menu/iconFold.png") center no-repeat; } } .icon { width: 150px; b { width: 98px; height: 27px; background: url("../../assets/common/image/menu/icon.png") center no-repeat; } } .el-submenu [class^="my-icon-"] { width: 24px; height: 18px; margin-right: 5px; } .my-icon-menuA { background: url("../../assets/common/image/menu/menuA.png") center no-repeat; } .my-icon-menuB { background: url("../../assets/common/image/menu/menuB.png") center no-repeat; } .my-icon-menuC { background: url("../../assets/common/image/menu/menuC.png") center no-repeat; } .my-icon-menuD { background: url("../../assets/common/image/menu/menuD.png") center no-repeat; } .my-icon-menuE { background: url("../../assets/common/image/menu/menuE.png") center no-repeat; } .my-icon-menuF { background: url("../../assets/common/image/menu/menuF.png") center no-repeat; } .menuFold { li { display: flex; align-items: center; justify-content: center; height: 40px; margin-top: 20px; cursor: pointer; b { display: block; width: 20px; height: 20px; } } .isOpened { background-color: #2979cc; } } .el-menu { // background: @themeColor; /deep/ .el-submenu__title, .el-menu-item { color: #ffffff; } /deep/ .el-submenu__title { padding-left: 15px !important; padding-right: 10px; } /deep/ .el-submenu__icon-arrow { right: 10px; } /deep/ .el-submenu__title i, /deep/ .el-menu-item i { color: #ffffff; } /deep/ .el-submenu .el-menu-item { min-width: auto; width: 100%; padding: 0; padding-left: 30px !important; } } .el-submenu.is-active { /deep/ .el-submenu__title { background-color: #2979cc !important; } } .el-submenu.is-active.is-opened { /deep/ .el-submenu__title { background-color: @themeColor !important; } } .el-submenu.is-opened { .el-menu, .el-menu-item { background-color: #2979cc !important; } } .hasList { // /deep/ .el-submenu__title /deep/ .el-menu-item { color: #d7e7fe; } /deep/ .is-active { background-color: #3982eb !important; color: #ffffff; } } .userIcon { > div { position: fixed; bottom: 30px; } } .fold, .unfold { position: fixed; bottom: 30px; z-index: 12; border-radius: 50%; cursor: pointer; overflow: hidden; } .fold { width: 36px; height: 36px; left: 12px; } .unfold { width: 60px; height: 60px; left: 35px; } </style>