fix:修改样式 增加默认打开选中

This commit is contained in:
orgin 2023-06-09 15:28:15 +08:00
parent 4a9d6fffea
commit f680ef1860

View File

@ -1,16 +1,17 @@
<template> <template>
<a-card :bordered="false"> <a-card :bordered="false">
<a-layout id="components-layout-demo-custom-trigger" style="height: 100%"> <a-layout id="components-layout-demo-custom-trigger" style="height: 100%">
<a-layout-sider theme="light" v-model="collapsed" :trigger="null" collapsible width="292px"> <a-layout-sider theme="light" v-model="collapsed" :trigger="null" collapsible width="320px">
<div> <div>
<a-menu <a-menu
id="dddddd" id="dddddd"
:default-selected-keys="['1']" :defaultSelectedKeys="defaultSelectedKeys"
:default-open-keys="['2']" :defaultOpenKeys="defaultOpenKeys"
mode="inline" mode="inline"
:inline-collapsed="collapsed" :inline-collapsed="collapsed"
@openChange="onOpenChange" @openChange="onOpenChange"
@click="menuClick" @click="menuClick"
:inlineIndent="13"
> >
<!-- 菜单遍历的开始 --> <!-- 菜单遍历的开始 -->
<template v-for="(item, index) in menus"> <template v-for="(item, index) in menus">
@ -18,7 +19,6 @@
<a-menu-item v-if="!item.children" :key="item.path"> <a-menu-item v-if="!item.children" :key="item.path">
<span>{{ item.meta.title }}</span> <span>{{ item.meta.title }}</span>
<div class="line"></div> <div class="line"></div>
<div class="line-base"></div>
</a-menu-item> </a-menu-item>
<!-- 否则视为子菜单传入菜单信息并且运用下面定义的函数式组件 --> <!-- 否则视为子菜单传入菜单信息并且运用下面定义的函数式组件 -->
<sub-menu v-else :key="item.path" :menu-info="item" :menu-index="index" /> <sub-menu v-else :key="item.path" :menu-info="item" :menu-index="index" />
@ -43,7 +43,6 @@ const SubMenu = {
<span slot="title" > <span slot="title" >
<span>{{ menuInfo.meta.title }}</span> <span>{{ menuInfo.meta.title }}</span>
<div class="line"></div> <div class="line"></div>
<div class="line-right"></div>
<img src="@/assets/images/global/delete.png" alt="" /> <img src="@/assets/images/global/delete.png" alt="" />
</span> </span>
<template v-for="item in menuInfo.children"> <template v-for="item in menuInfo.children">
@ -91,19 +90,19 @@ export default {
// //
openKeys: [], openKeys: [],
// //
defaultSelectedKeys: [this.$route.path], defaultSelectedKeys: [],
defaultOpenKeys: [],
rootSubmenuKeys: ['/istatistics/imsData', '/istatistics'], rootSubmenuKeys: ['/istatistics/imsData', '/istatistics'],
} }
}, },
created() { created() {
console.info(this.$store.getters.permissionList)
var permissionList = this.$store.getters.permissionList var permissionList = this.$store.getters.permissionList
permissionList.forEach((f) => { permissionList.forEach((f) => {
if (f.name === 'istatistics') { if (f.name === 'istatistics') {
this.menus = f.children this.menus = f.children
} }
}) })
console.info(this.menus) this.initDefaultKeys(this.menus[0])
// openKeys // openKeys
const openKeys = window.sessionStorage.getItem('openKeys') const openKeys = window.sessionStorage.getItem('openKeys')
if (openKeys) { if (openKeys) {
@ -119,6 +118,20 @@ export default {
path: key, path: key,
}) })
}, },
initDefaultKeys(data) {
this.defaultOpenKeys.push(data.path)
data.children.some((f) => {
if (f.children) {
//
this.defaultOpenKeys.push(f.path)
this.initDefaultKeys(f.children[0])
} else {
//
this.defaultSelectedKeys.push(f.path)
return true;
}
})
},
onOpenChange(openKeys) { onOpenChange(openKeys) {
// //
window.sessionStorage.setItem('openKeys', JSON.stringify(openKeys)) window.sessionStorage.setItem('openKeys', JSON.stringify(openKeys))
@ -141,7 +154,7 @@ export default {
} }
} }
.ant-menu { .ant-menu {
width: 292px; width: 320px;
height: 939px; height: 939px;
background-color: #022024; background-color: #022024;
border: solid 1px #0c6a66; border: solid 1px #0c6a66;
@ -200,9 +213,8 @@ export default {
color: #ffffff !important; color: #ffffff !important;
height: 50px; height: 50px;
.line { .line {
width: 92%; width: 96%;
height: 5px; height: 5px;
// background-color: #0cebc9;
background-image: linear-gradient( background-image: linear-gradient(
to right, to right,
#0cebc9 70px, #0cebc9 70px,