dl_site_nuxt/components/menu-drawer.vue

55 lines
927 B
Vue
Raw Normal View History

2025-07-06 18:38:53 +08:00
<template>
<el-drawer
:visible.sync="drawer"
direction="ltr"
:with-header="false"
size="50%"
>
<div class="p-4">
<img class="mb-3" src="../assets/image/mob-logo.png" alt="logo" />
<el-tree
:data="menuTree"
2025-07-06 18:38:53 +08:00
node-key="id"
highlight-current
@node-click="handleNodeClick"
:props="{
children: 'children',
label: 'label'
2025-07-06 18:38:53 +08:00
}"
/>
</div>
</el-drawer>
</template>
<script>
import { mapState } from 'vuex';
2025-07-06 18:38:53 +08:00
export default {
name: 'MenuDrawer',
data() {
return {
drawer: false,
}
},
computed: {
...mapState(['menuTree'])
},
2025-07-06 18:38:53 +08:00
methods: {
handleNodeClick(data) {
if (data.to) {
this.$router.push(data.to)
2025-07-06 18:38:53 +08:00
this.drawer = false
}
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .is-current {
> .el-tree-node__content {
color: #015fe8;
}
}
</style>