|
|
<template> <section> <!-- <div class="module-item" v-for="(item,index) in topModules" :key="index"> <div class="module-text" @click="gotolink(item)" > <div class="box-icon"> <img :src="item.icon" height="20px" /> </div> <div class="box-info">{{item.moduleName}}</div> </div> </div> --> <div class="module-item"> <div class="module-text" @click="menuVisible = true" > <div class="box-info">全部应用</div> </div> </div>
<div class="module-item"> <div class="module-text" @click="goToMyWork" > <div class="box-info">我的工作台</div> </div> </div> <div class="drawer-box"> <all-menus v-model="menuVisible"></all-menus> <!-- <el-drawer :visible.sync="drawer" :modal-append-to-body="false" :direction="direction"> <div class="drawer"> <div class="drawer-content"> <div class="drawer-content-category" v-for="(item,index) in categorys" :key="index"> <div class="category-name" v-text="item.moduleName"></div> <div class="category-list"> <div class="category-item" v-for="(module,mindex) in item.childrens" :key="index+'_'+mindex" @click="gotolink(module)" :class="{highlight : module.isHighlight }" > <div class="module-icon"> <img :src="module.icon"> </div> <div class="module-name" v-text="module.moduleName"></div> </div> </div> </div> </div> </div> </el-drawer> --> </div>
</section></template>
<script>
import NProgress from 'nprogress' // progress bar
const topModulesData = require("./top_modules_"+process.env.CONTEXT+".js") const allModulesData = require("./all_modules.js") import allMenus from '../ModulesMenu/allMenus'
export default { components: {allMenus}, created() { }, data() { return { levelList: null, drawer: false, direction: 'rtl', key:"", topModules: topModulesData.default, //模块分类
categorys:allModulesData.default, menuVisible: false, } }, watch: { key(val){ this.searchModule(); } }, methods: { goToMyWork(){ this.$router.push("/my/work/index") }, //路由跳转
gotolink(module) { this.drawer = false this.jumpToOtherSystem(module); }, //系统跳转
jumpToOtherSystem(module) { window.open(module.sysLink, module.moduleName,null,true); NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it
}, //搜索
searchModule(){ for(let i =0 ; i <this.categorys.length; i++){ for(let j =0 ; j <this.categorys[i].childrens.length; j++){ let module = this.categorys[i].childrens[j]; this.categorys[i].childrens[j].isHighlight = false; }
} if(this.key != ""){ for(let i =0 ; i <this.categorys.length; i++){ for(let j =0 ; j <this.categorys[i].childrens.length; j++){ let module = this.categorys[i].childrens[j]; if(module.moduleName.indexOf(this.key) > -1){ this.categorys[i].childrens[j].isHighlight = true; } } } } } }}</script>
<style rel="stylesheet/scss" lang="scss" scoped> .drawer-box{ .drawer{ padding-left: 10px; padding-right: 10px; display: flex; justify-content: center; align-items: center; z-index: 9 !important; .drawer-content{ width: 900px; height: 100%; .drawer-content-input{ display: flex; justify-content: center; } .drawer-content-category{ .category-name{ color: #333333; font-size: 16px; } .category-list{ display: flex; justify-content: flex-start; flex-wrap: wrap; .category-item{ height: 70px; width: 70px; margin-right: 20px; transition: all 0.3s; .module-icon{ width: 70px; height: 38px; text-align: center; display: flex; flex-direction: column; justify-content: center; align-items: center; img{ width: 20px; } } .module-name{ height: 32px; line-height: 32px; color:#666666; font-size: 12px; text-align: center; } } .category-item:hover{ background: rgb(240, 241, 245); } } } } } .highlight{ transform: scale(1.05); -webkit-box-shadow: 0 0 30px rgba(0, 0, 0, 0.1); border-radius: 50%; box-shadow: 0 0 30px rgba(0, 0, 0, 0.15); } } .module-item { display: inline-block; cursor: pointer; fill: #5a5e66; align-items: center; text-align: center; margin-right: 30px; .module-text{ line-height: 22px; font-size: 22px; } .box-icon { text-align: center; }
.box-info { text-align: center; font-size: 14px; color: #7D7D7D; font-weight: bold; }}
</style><style rel="stylesheet/scss" lang="scss"> .drawer-box{ .el-drawer{ height: 100% !important; overflow: auto; }} </style>
|