style: 菜单样式

This commit is contained in:
From-wh 2023-02-23 12:08:41 +08:00
parent a937e300ce
commit 6b74aeacaf
11 changed files with 81 additions and 31 deletions

View File

@ -1,7 +1,7 @@
<template>
<div v-if="showFullScreenBtn" class="full-screen-btn-con">
<Tooltip :content="value ? '退出全屏' : '全屏'" placement="bottom">
<Icon @click.native="handleChange" :type="value ? 'ios-contract' : 'ios-qr-scanner'" :size="23"></Icon>
<Icon @click.native="handleChange" :type="value ? 'ios-contract' : 'ios-qr-scanner'" :size="22"></Icon>
</Tooltip>
</div>
</template>

View File

@ -4,12 +4,9 @@
@size: 40px;
.sider-trigger-a {
padding: 6px;
width: @size;
height: @size;
display: inline-block;
text-align: center;
// color: #fff;
margin-top: 5px;
cursor: pointer;
z-index: 9999;
.iconcaidanshouqi {

View File

@ -33,18 +33,16 @@ export default {
max-width: 90px;
left: 0;
bottom: 0;
height: 50px;
height: 40px;
display: flex;
justify-content: center;
align-items: center;
border-top: 1px solid #d9dadd;
border-top: 1px solid #f2f2f2;
color: #515a6e;
}
@import './sider-trigger.less';
.sider-trigger-a {
padding: 14px 6px;
margin-left: 10px;
line-height: 16px;
}
.iconcaidanshouqi {
font-size: 16px;

View File

@ -3,7 +3,7 @@
<Dropdown @on-click="jumpUrl" :transfer="true">
<div>
<Badge dot :count="needList.length ? needList.length : 0">
<Icon type="ios-notifications-outline" size="26"></Icon>
<Icon type="ios-notifications-outline" size="24"></Icon>
</Badge>
</div>
<DropdownMenu slot="list">
@ -24,7 +24,7 @@
font-size: 14px !important;
font-weight: 400;
line-height: 22px;
color: #fff;
color: #515a6e;
}
.header-notice .ivu-dropdown-item ~ .ivu-dropdown-item {
border-top: 1px solid #e8eaec;

View File

@ -1,6 +1,6 @@
<template>
<div class="full-screen-btn-con" @click="handleReload">
<Icon class="icon" type="md-refresh" color='#fff' />
<div class="refresh-btn-con" @click="handleReload">
<Icon class="icon" type="ios-refresh" color="rgba(255,255,255,.8)" />
</div>
</template>
@ -18,10 +18,11 @@ export default {
};
</script>
<style scoped lang="less">
.full-screen-btn-con {
.refresh-btn-con {
margin-right: 17px !important;
cursor: pointer;
font-size: 20px;
font-size: 28px;
color: #f2f2f2;
}
.icon:hover{
animation: rotate 6s linear infinite;

View File

@ -66,8 +66,8 @@ export default {
},
methods: {
handleClick(name) {
console.log(name)
this.$emit('on-click', name);
console.log(name, this.activeMenuPath);
this.$emit('on-click', name, this.activeMenuPath);
},
handleMousemove(event, children) {
const { pageY } = event;

View File

@ -35,9 +35,7 @@
color: #495060;
}
}
.ivu-select-dropdown{
// left: 95px !important;
}
.menu-title {
// padding-left: 6px;
}

View File

@ -176,6 +176,10 @@ export default {
console.log(newRoute, 'newRoutenewRoute');
this.activePath = newRoute.path;
// this.activeMenuPath = newRoute.matched[0].path;
if (this.collapsed) {
sessionStorage.setItem('menuActive', newRoute.matched[0].path);
this.activeMenuPath = newRoute.matched[0].path;
}
this.handleUpdateMenuState();
},
immediate: true,
@ -185,9 +189,9 @@ export default {
console.log(this.menuList);
this.openedNames = getUnion(this.openedNames, this.getOpenedNamesByActiveName());
if (sessionStorage.getItem('menuActive')) {
this.activeMenuPath = sessionStorage.getItem('menuActive');
this.catName = sessionStorage.getItem('menuActiveTitle');
this.getChildrenList(sessionStorage.getItem('menuActive'));
// this.activeMenuPath = sessionStorage.getItem('menuActive');
// this.catName = sessionStorage.getItem('menuActiveTitle');
// this.getChildrenList(sessionStorage.getItem('menuActive'));
} else {
this.handleSelect(this.openedNames[0]);
}
@ -202,9 +206,9 @@ export default {
},
handleCollpasedChange(state) {
console.log(state);
this.collapsed = state;
// this.collapsed = state;
this.$emit('on-coll-change', state);
setCookies('collapsed', state);
// setCookies('collapsed', state);
},
handleSelect(name, type) {
this.childOptions = [];
@ -252,8 +256,44 @@ export default {
this.turnToPage(name);
},
collHandleSelect(name) {
this.activeMenuPath = this.findParentById(this.menuList, name);
this.turnToPage(name);
},
findParentById(arr, path) {
var parentId = '没有父元素',
hasParentId = (function loop(arr) {
return arr.some((item) => {
if (item.path === path) {
return true;
} else if (Array.isArray(item.children)) {
parentId = item.path;
return loop(item.children);
} else {
return false;
}
});
})(arr);
return hasParentId ? parentId : '未找到对应父元素';
},
// findParentsById(arr, id) {
// var parentIds = [],
// index = 0,
// hasParentId = (function loop(arr, index) {
// return arr.some((item) => {
// if (item.MENU_ID === id) {
// parentIds = parentIds.slice(0, index);
// return true;
// } else if (Array.isArray(item.MENU_INFO)) {
// parentIds[index] = item.MENU_ID;
// return loop(item.MENU_INFO, index + 1);
// } else {
// return false;
// }
// });
// })(arr, index);
// return hasParentId ? parentIds : [];
// },
turnToPage(route, all) {
let { path, name, params, query } = {};
if (typeof route === 'string' && !all) path = route;
@ -298,6 +338,7 @@ export default {
</script>
<style lang="less">
@import './side-menu.less';
.ivu-menu {
.side-menu-wrapper {
position: relative;
@ -340,6 +381,7 @@ export default {
background-color: #2d8cf0 !important;
color: #fff !important;
}
.ivu-select-dropdown.ivu-dropdown-transfer
.collased-menu-dropdown:hover
> .ivu-dropdown-rel
@ -393,8 +435,8 @@ export default {
display: flex;
align-items: center;
.title {
font-size: 14px;
line-height: 14px;
font-size: 13px;
line-height: 13px;
}
}
.ivu-menu-vertical .ivu-menu-item:first-child {
@ -432,8 +474,8 @@ export default {
line-height: 16px;
font-weight: 600;
color: #303133;
padding: 18px;
border-bottom: 1px solid #eee;
padding: 15px;
border-bottom: 1px solid #f2f2f2;
}
}
> .ivu-menu {
@ -447,8 +489,22 @@ export default {
width: 0px;
}
}
/deep/ .ivu-select-dropdown {
left: 95px !important;
}
.ivu-dropdown-rel {
min-width: 75px !important;
}
.menu-collapsed {
padding: 0 8px;
.drop-menu-a:hover {
color: #1890ff;
background-color: rgba(24, 144, 255, 0.1) !important;
border-radius: 4px;
.ivu-icon {
color: #1890ff !important;
}
}
.drop-menu-a.on {
background-color: #1890ff !important;
color: #fff !important;

View File

@ -31,7 +31,7 @@
position: absolute;
top: 0px;
height: 100%;
// background: #fff;
background: #f5f7f9;
padding-top: 3px;
z-index: 10;
button {

View File

@ -9,8 +9,9 @@
<user :message-unread-count="unreadCount" :user-avatar="userAvatar" />
<language v-if="$config.useI18n" @on-lang-change="setLocal" style="margin-right: 10px" :lang="local" />
<header-notice></header-notice>
<fullscreen v-model="isFullscreen" style="margin-right: 10px" />
<Reload @on-reload="handleReload"></Reload>
<fullscreen v-model="isFullscreen" style="margin-right: 10px" />
<error-store
v-if="$config.plugin['error-store'] && $config.plugin['error-store'].showInHeader"
:has-read="hasReadErrorPage"

View File

@ -500,7 +500,6 @@ body {
.ivu-mb-16 {
margin-bottom: 16px !important;
}
.ivu-mt,
.ivu-mt-16 {
margin-top: 16px !important;
}