diff --git a/ui/dasadmin/src/api/backend/index.ts b/ui/dasadmin/src/api/backend/index.ts index fcbd965a..0cf324d7 100644 --- a/ui/dasadmin/src/api/backend/index.ts +++ b/ui/dasadmin/src/api/backend/index.ts @@ -137,3 +137,12 @@ export function allRoleQuery(params: object = {}) { }) } +// 获取绑定菜单 +export function menuTree(params: object = {}) { + return createAxios({ + url: '/api/menus/tree', + method: 'POST', + data: params, + }) +} + diff --git a/ui/dasadmin/src/layouts/backend/index.vue b/ui/dasadmin/src/layouts/backend/index.vue index d862a4eb..dc974e22 100644 --- a/ui/dasadmin/src/layouts/backend/index.vue +++ b/ui/dasadmin/src/layouts/backend/index.vue @@ -25,6 +25,7 @@ import { BEFORE_RESIZE_LAYOUT } from '/@/stores/constant/cacheKey' import { isEmpty } from 'lodash-es' import { setNavTabsWidth } from '/@/utils/layout' import { id } from 'element-plus/es/locales.mjs' +import { menuTree } from '/@/api/backend' defineOptions({ components: { Default, Classic, Streamline, Double }, @@ -350,7 +351,54 @@ const menu = [ }, ] +function transformNode(node: any) { + return { + id: Number(node.id), + pid: node.parentMenuId, + type: node.parentMenuId == 0 ? 'menu_dir' : 'menu', + title: node.menuName, + name: node.menuName.replace(/\s+/g, ''), + path: node.parentMenuId == 0 ? '测试菜单' : node.menuName, + icon: node.menuIcon, + menu_type: node.parentMenuId == 0 ? null : 'tab', + component: node.parentMenuId == 0 ? '' : `/src/views/backend/测试菜单${node.funParam.replace(/\s+/g, '')}/index.vue`, + extend: 'none', + children: node.children.map(transformNode), + } +} const init = () => { + menuTree().then((res: any) => { + console.log('🚀 ~ menusLoginTree ~ res:', res) + const menu = transformNode(res.data) + console.log('🚀 ~ menusLoginTree ~ menu:', menu) + handleAdminRoute(menu) + if (route.params.to) { + const lastRoute = JSON.parse(route.params.to as string) + if (lastRoute.path != adminBaseRoutePath) { + let query = !isEmpty(lastRoute.query) ? lastRoute.query : {} + routePush({ path: lastRoute.path, query: query }) + return + } + } + + // 跳转到第一个菜单 + let firstRoute = getFirstRoute(navTabs.state.tabsViewRoutes) + if (firstRoute) routePush(firstRoute.path) + }) + // handleAdminRoute(menu) + // if (route.params.to) { + // const lastRoute = JSON.parse(route.params.to as string) + // if (lastRoute.path != adminBaseRoutePath) { + // let query = !isEmpty(lastRoute.query) ? lastRoute.query : {} + // routePush({ path: lastRoute.path, query: query }) + // return + // } + // } + + // // 跳转到第一个菜单 + // let firstRoute = getFirstRoute(navTabs.state.tabsViewRoutes) + // if (firstRoute) routePush(firstRoute.path) + /** * 后台初始化请求,获取站点配置,动态路由等信息 */ @@ -366,21 +414,9 @@ const init = () => { // } // if (res.data) { - handleAdminRoute(menu) // 预跳转到上次路径 - if (route.params.to) { - const lastRoute = JSON.parse(route.params.to as string) - if (lastRoute.path != adminBaseRoutePath) { - let query = !isEmpty(lastRoute.query) ? lastRoute.query : {} - routePush({ path: lastRoute.path, query: query }) - return - } - } - // 跳转到第一个菜单 - let firstRoute = getFirstRoute(navTabs.state.tabsViewRoutes) - if (firstRoute) routePush(firstRoute.path) // } // }) } diff --git a/ui/dasadmin/src/views/backend/测试菜单/userManagement/index.vue b/ui/dasadmin/src/views/backend/测试菜单/userManagement/index.vue new file mode 100644 index 00000000..c2bb75ba --- /dev/null +++ b/ui/dasadmin/src/views/backend/测试菜单/userManagement/index.vue @@ -0,0 +1,424 @@ + + + + +