feat: 一级菜单重定向为空,分栏模式下,点击一次菜单时现在会切换子菜单列表,而不是打开空白页

This commit is contained in:
许俊杰 2023-03-19 17:53:29 +08:00
parent ccca4cd355
commit a91f84e3a1

View File

@ -48,7 +48,6 @@
import { reactive, ref, onMounted, nextTick, watch, onUnmounted } from 'vue'; import { reactive, ref, onMounted, nextTick, watch, onUnmounted } from 'vue';
import { useRoute, useRouter, onBeforeRouteUpdate, RouteRecordRaw } from 'vue-router'; import { useRoute, useRouter, onBeforeRouteUpdate, RouteRecordRaw } from 'vue-router';
import { storeToRefs } from 'pinia'; import { storeToRefs } from 'pinia';
import pinia from '/@/stores/index';
import { useRoutesList } from '/@/stores/routesList'; import { useRoutesList } from '/@/stores/routesList';
import { useThemeConfig } from '/@/stores/themeConfig'; import { useThemeConfig } from '/@/stores/themeConfig';
import mittBus from '/@/utils/mitt'; import mittBus from '/@/utils/mitt';
@ -81,8 +80,22 @@ const setColumnsAsideMove = (k: number) => {
// //
const onColumnsAsideMenuClick = async (v: RouteItem) => { const onColumnsAsideMenuClick = async (v: RouteItem) => {
let { path, redirect } = v; let { path, redirect } = v;
if (redirect) router.push(redirect); if (redirect) {
else router.push(path); onColumnsAsideDown(v.k);
if (route.path.startsWith(redirect)) mittBus.emit('setSendColumnsChildren', setSendChildren(redirect));
else router.push(redirect);
} else {
if (!v.children) {
router.push(path);
} else {
//
const resData: MittMenu = setSendChildren(path);
if (Object.keys(resData).length <= 0) return false;
onColumnsAsideDown(resData.item?.k);
mittBus.emit('setSendColumnsChildren', resData);
}
}
// //
// https://gitee.com/lyt-top/vue-next-admin/issues/I6HW7H // https://gitee.com/lyt-top/vue-next-admin/issues/I6HW7H
if (!v.children) themeConfig.value.isCollapse = true; if (!v.children) themeConfig.value.isCollapse = true;
@ -123,7 +136,10 @@ const setFilterRoutes = () => {
// //
// https://gitee.com/lyt-top/vue-next-admin/issues/I6HW7H // https://gitee.com/lyt-top/vue-next-admin/issues/I6HW7H
resData.children.length <= 1 ? (themeConfig.value.isCollapse = true) : (themeConfig.value.isCollapse = false); resData.children.length <= 1 ? (themeConfig.value.isCollapse = true) : (themeConfig.value.isCollapse = false);
// 500 aside.vue setSendColumnsChildren
setTimeout(() => {
mittBus.emit('setSendColumnsChildren', resData); mittBus.emit('setSendColumnsChildren', resData);
}, 500);
}; };
// //
const setSendChildren = (path: string) => { const setSendChildren = (path: string) => {
@ -181,10 +197,10 @@ onBeforeRouteUpdate((to) => {
}); });
// //
watch( watch(
pinia.state, [() => themeConfig.value.columnsAsideStyle, isColumnsMenuHover, isColumnsNavHover],
(val) => { () => {
val.themeConfig.themeConfig.columnsAsideStyle === 'columnsRound' ? (state.difference = 3) : (state.difference = 0); themeConfig.value.columnsAsideStyle === 'columnsRound' ? (state.difference = 3) : (state.difference = 0);
if (!val.routesList.isColumnsMenuHover && !val.routesList.isColumnsNavHover) { if (!isColumnsMenuHover.value && !isColumnsNavHover.value) {
state.liHoverIndex = null; state.liHoverIndex = null;
mittBus.emit('setSendColumnsChildren', setSendChildren(route.path)); mittBus.emit('setSendColumnsChildren', setSendChildren(route.path));
} else { } else {