|
@@ -18,6 +18,7 @@
|
|
v-for="child in item.children"
|
|
v-for="child in item.children"
|
|
:key="child.label"
|
|
:key="child.label"
|
|
class="sub-menu-item"
|
|
class="sub-menu-item"
|
|
|
|
+ :class="{ 'active': activeMenuItem === child }"
|
|
>
|
|
>
|
|
<span v-if="child.icon" class="menu-icon">
|
|
<span v-if="child.icon" class="menu-icon">
|
|
<i :class="child.icon"></i>
|
|
<i :class="child.icon"></i>
|
|
@@ -42,6 +43,7 @@ const props = defineProps({
|
|
// const { props1 } = toRefs(props);
|
|
// const { props1 } = toRefs(props);
|
|
|
|
|
|
const openMenus = ref([]);
|
|
const openMenus = ref([]);
|
|
|
|
+const activeMenuItem = ref(null);
|
|
|
|
|
|
// 切换子菜单展开/收起
|
|
// 切换子菜单展开/收起
|
|
const toggleSubMenu = (item) => {
|
|
const toggleSubMenu = (item) => {
|
|
@@ -64,7 +66,9 @@ const emit = defineEmits(['update:currentUrl'])
|
|
|
|
|
|
// 点击菜单项处理
|
|
// 点击菜单项处理
|
|
const onClickMenuNode = (item) => {
|
|
const onClickMenuNode = (item) => {
|
|
-// props.currentUrl = item;
|
|
|
|
|
|
+ // 设置当前选中的菜单项
|
|
|
|
+ activeMenuItem.value = item;
|
|
|
|
+ // 发送事件到父组件
|
|
emit('update:currentUrl', item);
|
|
emit('update:currentUrl', item);
|
|
console.log("item====",item);
|
|
console.log("item====",item);
|
|
};
|
|
};
|
|
@@ -123,4 +127,9 @@ toggleSubMenu(props.menuData[0]);
|
|
.sub-menu-item:hover {
|
|
.sub-menu-item:hover {
|
|
background-color: rgba(0, 0, 0, 0.1);
|
|
background-color: rgba(0, 0, 0, 0.1);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+.sub-menu-item.active {
|
|
|
|
+ background-color: rgba(0, 0, 0, 0.15);
|
|
|
|
+ font-weight: bold;
|
|
|
|
+}
|
|
</style>
|
|
</style>
|