|
|
|
|
@ -11,7 +11,8 @@ |
|
|
|
|
|
|
|
|
|
<left-menu :menulist="menu" v-if="setting.styleRadio == '2'"></left-menu> |
|
|
|
|
<leftMenuSec :menulist="menu" v-if="setting.styleRadio == '5'"></leftMenuSec> |
|
|
|
|
<div class="left_menu_box" :class="leftMenu[selectIndex].children ? 'right_box' : ''" style="display: flex;height: 100%;background: #fff;" v-if="setting.styleRadio == '3'"> |
|
|
|
|
<div class="left_menu_box" :class="leftMenu[selectIndex].children ? 'right_box' : ''" style="display: flex;height: 100%;background: #fff;" |
|
|
|
|
v-if="setting.styleRadio == '3'"> |
|
|
|
|
<div :class="leftMenu.find(item => item.children) ? 'children' : 'no_child'"> |
|
|
|
|
<!-- <div class="top_title">{{ this.menu.find(item => item.id == this.leftMenu[selectIndex].parentId).name }}</div> --> |
|
|
|
|
<div class="left_menu" @click="clickItem(item, index)" v-for="(item, index) in leftMenu" :key="item.id" @mouseenter="mouseEnter(item,index)" |
|
|
|
|
@ -23,7 +24,6 @@ |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div style="flex: 1;height: 100%;background: #fff;" v-show="leftMenu[selectIndex].children" @mouseleave="mouseleave(leftMenu[selectIndex])"> |
|
|
|
|
|
|
|
|
|
<div |
|
|
|
|
v-if="leftMenu && leftMenu.length != 0 && leftMenu[selectIndex].children && leftMenu[selectIndex].children.length != 0"> |
|
|
|
|
<div class="left_top">{{ leftMenu[selectIndex].name }} </div> |
|
|
|
|
@ -64,6 +64,54 @@ |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div v-if="setting.styleRadio == '6'" class="left_menu_box six"> |
|
|
|
|
<div class="left_menu six_menu"> |
|
|
|
|
<div class="left_menu_item" v-for="(item,index) in menu" :key="item.id" @click="clickMenu(item,index)" :class="activeIndex == index ? 'hover' : ''"> |
|
|
|
|
<i :class="item.source" style="font-size: 20px;"></i> |
|
|
|
|
<span class="name_text">{{ item.name.substring(0,2) }}</span> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div style="flex: 1;height: 100%;" v-show="menu[activeIndex].children" @mouseleave="mouseleave(menu[activeIndex])"> |
|
|
|
|
<div |
|
|
|
|
v-if="menu && menu.length != 0 && menu[activeIndex].children && menu[activeIndex].children.length != 0"> |
|
|
|
|
<div class="left_top">{{ menu[activeIndex].name }} </div> |
|
|
|
|
<div class="right_menu" v-for="item in menu[activeIndex].children" :key="item.id" @mouseenter="mounseEnter(item)" @mouseleave="mounseLeave(menu[activeIndex],item)"> |
|
|
|
|
<div class="right_menu_item"> |
|
|
|
|
<el-popover placement="right-start" :show-arrow="false" :offset="0" :hide-after='0' |
|
|
|
|
popper-class="log-popover" |
|
|
|
|
popper-style="visibility: visible;width:auto;border:none; transform-origin: left center; z-index: 2051;padding:0;offset:0 !important;" |
|
|
|
|
@hide="hidePopover(menu[activeIndex],item)"> |
|
|
|
|
<template #reference> |
|
|
|
|
<div class="right_menu_item_box" @click='clickPage(item)'> |
|
|
|
|
<div class="second_name">{{ item.name }}</div> |
|
|
|
|
<el-icon v-if="item.children && item.children.length != 0"> |
|
|
|
|
<ArrowRight /> |
|
|
|
|
</el-icon> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
<template #default > |
|
|
|
|
<div class="third_box" v-if="item.children && item.children.length != 0 && !item.children.find(item1 => item1.children)"> |
|
|
|
|
<div class="third_box_item" v-for="third in item.children" :key="third.id" @click="handleClick(third)"> |
|
|
|
|
{{ third.name }} |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div class="four_box" v-if="item.children && item.children.length != 0 && item.children.find(item1 => item1.children)"> |
|
|
|
|
<div class="four_box_item" v-for="third in item.children" :key="third.id"> |
|
|
|
|
<div class="third_name" @click="handleClick(third)"><span></span>{{ third.name }}</div> |
|
|
|
|
<div class="four_con_box" v-if="third.children"> |
|
|
|
|
<div class="four_con_item" v-for="four in third.children" :key="four.id" @click="handleClick(four)"> |
|
|
|
|
{{ four.name }} |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
</el-popover> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
|
@ -79,7 +127,8 @@ export default { |
|
|
|
|
data() { |
|
|
|
|
return { |
|
|
|
|
isCollapse: false, |
|
|
|
|
showRight:false |
|
|
|
|
showRight:false, |
|
|
|
|
activeIndex:0, |
|
|
|
|
// selectIndex:0 |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
@ -106,6 +155,9 @@ export default { |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
methods: { |
|
|
|
|
clickMenu(item,index){ |
|
|
|
|
this.activeIndex = index |
|
|
|
|
}, |
|
|
|
|
clickItem(item, index) { |
|
|
|
|
if (!item.children) { |
|
|
|
|
this.$router.push({ |
|
|
|
|
@ -190,6 +242,9 @@ export default { |
|
|
|
|
}; |
|
|
|
|
</script> |
|
|
|
|
<style lang="scss" scoped> |
|
|
|
|
.left_menu_box_six{ |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.left_menu_box{ |
|
|
|
|
width: 70px !important; |
|
|
|
|
@ -198,6 +253,13 @@ export default { |
|
|
|
|
width: 200px !important; |
|
|
|
|
background: #fff; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
&.six{ |
|
|
|
|
width: 215px !important; |
|
|
|
|
background: #f7fafc !important; |
|
|
|
|
display: flex; |
|
|
|
|
height: 100%; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.no_child { |
|
|
|
|
width: 70px; |
|
|
|
|
@ -238,6 +300,20 @@ export default { |
|
|
|
|
background: #0066ff; |
|
|
|
|
color: #fff; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
&.six_menu{ |
|
|
|
|
display: flex; |
|
|
|
|
height: 100%; |
|
|
|
|
flex-direction: column; |
|
|
|
|
justify-content: flex-start; |
|
|
|
|
width: 60px; |
|
|
|
|
color: #0066ff; |
|
|
|
|
|
|
|
|
|
&:hover{ |
|
|
|
|
transition: all .5s; |
|
|
|
|
box-shadow: 5px 5px 30px #afaeae; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.left_menu_item { |
|
|
|
|
@ -278,6 +354,17 @@ export default { |
|
|
|
|
text-overflow: ellipsis; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
&.hover { |
|
|
|
|
background: #0066ff; |
|
|
|
|
color: #fff; |
|
|
|
|
|
|
|
|
|
.img_box{ |
|
|
|
|
width: 14px; |
|
|
|
|
height: 14px; |
|
|
|
|
background: url('@/assets/right_pull_white.png'); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
&:hover { |
|
|
|
|
@ -290,19 +377,21 @@ export default { |
|
|
|
|
background: url('@/assets/right_pull_white.png'); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.left_top { |
|
|
|
|
font-size: 14px; |
|
|
|
|
font-family: Microsoft YaHei-Bold, Microsoft YaHei; |
|
|
|
|
font-weight: 700; |
|
|
|
|
text-align: center; |
|
|
|
|
height: 48px; |
|
|
|
|
display: flex; |
|
|
|
|
color: #5a6f82; |
|
|
|
|
align-items: center; |
|
|
|
|
justify-content: center; |
|
|
|
|
font-family: Microsoft YaHei-Bold, Microsoft YaHei; |
|
|
|
|
font-weight: 700; |
|
|
|
|
text-align: center; |
|
|
|
|
height: 48px; |
|
|
|
|
display: flex; |
|
|
|
|
color: #5a6f82; |
|
|
|
|
align-items: center; |
|
|
|
|
justify-content: center; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.right_menu { |
|
|
|
|
@ -337,6 +426,21 @@ export default { |
|
|
|
|
display: flex; |
|
|
|
|
justify-content: space-between; |
|
|
|
|
align-items: center; |
|
|
|
|
color: #333; |
|
|
|
|
|
|
|
|
|
.second_name{ |
|
|
|
|
width: 100%; |
|
|
|
|
height: 46px; |
|
|
|
|
font-size: 14px; |
|
|
|
|
line-height: 46px; |
|
|
|
|
cursor: pointer; |
|
|
|
|
padding: 0 10px; |
|
|
|
|
box-sizing: border-box; |
|
|
|
|
overflow: hidden; |
|
|
|
|
display: flex; |
|
|
|
|
justify-content: space-between; |
|
|
|
|
align-items: center; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
&:hover { |
|
|
|
|
background: #0066ff; |
|
|
|
|
|