From c635d78b479510ebe2556a420948effcd30a0731 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期六, 21 十二月 2024 18:40:43 +0800 Subject: [PATCH] 新建德森项目分支 --- zy-asrs-flow/src/services/route.js | 270 +++++++++++++++++++++++++++--------------------------- 1 files changed, 135 insertions(+), 135 deletions(-) diff --git a/zy-asrs-flow/src/services/route.js b/zy-asrs-flow/src/services/route.js index 1221444..08d02a4 100644 --- a/zy-asrs-flow/src/services/route.js +++ b/zy-asrs-flow/src/services/route.js @@ -1,136 +1,136 @@ -import { request } from '@umijs/max'; -import React from 'react'; -import { createIcon } from '@/utils/icon-util'; - -let remoteMenu = null; - -export function getRemoteMenu() { - return remoteMenu; -} - -export function setRemoteMenu(data) { - remoteMenu = data; -} - -export async function getUserInfo(options) { - return request('/api/auth/user', { - method: 'GET', - ...(options || {}), - }); -} - -export async function getRouters() { - return request('/api/auth/menu', { - }); -} - -export async function getRoutersInfo() { - return getRouters().then((res) => { - if (res.code === 200) { - // return res.data; - const routersInfo = convertCompatRouters(res.data); - return routersInfo; - } else { - return []; - } - }); -} - -export function convertCompatRouters(childrens) { - const result = childrens.map((item) => { - return { - name: item.name, - path: item.route, - component: item.component ? '.' + item.component : null, - icon: createIcon(item.icon), - // icon: item.icon, - // hideChildrenInMenu: item.hidden, - // hideInMenu: item.hidden, - // authority: item.perms, - routes: item.children ? convertCompatRouters(item.children) : undefined, - }; - }); - return result; -} - -export function patchRouteWithRemoteMenus(routes) { - if (remoteMenu === null) { return; } - let proLayout = null; - for (const routeItem of routes) { - if (routeItem.id === 'ant-design-pro-layout') { - proLayout = routeItem; - break; - } - } - - const rootMenu = { routes: [], children: [] } - addHomeMenu(remoteMenu); - addUserSettingMenu(remoteMenu); - patchRouteItems(rootMenu, remoteMenu); - - proLayout.children = proLayout.children.concat(rootMenu.routes); - proLayout.routes = proLayout.routes.concat(rootMenu.routes); -} - -function patchRouteItems(parent, children) { - for (const menu of children) { - if (menu.component !== null && menu.component !== undefined) { - // children - const Component = require(`@/pages${menu.path}/index.jsx`).default - const newRoute = { - name: menu.name, - path: menu.path, - element: <Component />, - } - parent.routes.push(newRoute); - parent.children.push(newRoute); - } else { - // parent - const newRoute = { - name: menu.name, - path: menu.path, - routes: [], - children: [], - } - parent.routes.push(newRoute); - parent.children.push(newRoute); - if (menu.routes && menu.routes.length > 0) { - for (const route of menu.routes) { - patchRouteItems(newRoute, [route]); - }; - - } - } - } -} - -function addHomeMenu(remoteMenu) { - remoteMenu.unshift({ - name: "棣栭〉", - path: "/home", - component: "/home", - icon: createIcon('HomeOutlined') - }) -} - -function addUserSettingMenu(remoteMenu) { - // const settingRoute = { - // name: "涓汉璁剧疆", - // path: "/account/setting", - // component: "/account/setting" - // } - // remoteMenu.push({ - // name: "涓汉涓績", - // path: "/account", - // component: null, - // routes: [settingRoute], - // icon: createIcon('UserOutlined') - // }) - - remoteMenu.push({ - name: "涓汉涓績", - path: "/account/setting", - component: "/account/setting", - icon: createIcon('UserOutlined') - }) +import { request } from '@umijs/max'; +import React from 'react'; +import { createIcon } from '@/utils/icon-util'; + +let remoteMenu = null; + +export function getRemoteMenu() { + return remoteMenu; +} + +export function setRemoteMenu(data) { + remoteMenu = data; +} + +export async function getUserInfo(options) { + return request('/api/auth/user', { + method: 'GET', + ...(options || {}), + }); +} + +export async function getRouters() { + return request('/api/auth/menu', { + }); +} + +export async function getRoutersInfo() { + return getRouters().then((res) => { + if (res.code === 200) { + // return res.data; + const routersInfo = convertCompatRouters(res.data); + return routersInfo; + } else { + return []; + } + }); +} + +export function convertCompatRouters(childrens) { + const result = childrens.map((item) => { + return { + name: item.name, + path: item.route, + component: item.component ? '.' + item.component : null, + icon: createIcon(item.icon), + // icon: item.icon, + // hideChildrenInMenu: item.hidden, + // hideInMenu: item.hidden, + // authority: item.perms, + routes: item.children ? convertCompatRouters(item.children) : undefined, + }; + }); + return result; +} + +export function patchRouteWithRemoteMenus(routes) { + if (remoteMenu === null) { return; } + let proLayout = null; + for (const routeItem of routes) { + if (routeItem.id === 'ant-design-pro-layout') { + proLayout = routeItem; + break; + } + } + + const rootMenu = { routes: [], children: [] } + addHomeMenu(remoteMenu); + addUserSettingMenu(remoteMenu); + patchRouteItems(rootMenu, remoteMenu); + + proLayout.children = proLayout.children.concat(rootMenu.routes); + proLayout.routes = proLayout.routes.concat(rootMenu.routes); +} + +function patchRouteItems(parent, children) { + for (const menu of children) { + if (menu.component !== null && menu.component !== undefined) { + // children + const Component = require(`@/pages${menu.path}/index.jsx`).default + const newRoute = { + name: menu.name, + path: menu.path, + element: <Component />, + } + parent.routes.push(newRoute); + parent.children.push(newRoute); + } else { + // parent + const newRoute = { + name: menu.name, + path: menu.path, + routes: [], + children: [], + } + parent.routes.push(newRoute); + parent.children.push(newRoute); + if (menu.routes && menu.routes.length > 0) { + for (const route of menu.routes) { + patchRouteItems(newRoute, [route]); + }; + + } + } + } +} + +function addHomeMenu(remoteMenu) { + remoteMenu.unshift({ + name: "棣栭〉", + path: "/home", + component: "/home", + icon: createIcon('HomeOutlined') + }) +} + +function addUserSettingMenu(remoteMenu) { + // const settingRoute = { + // name: "涓汉璁剧疆", + // path: "/account/setting", + // component: "/account/setting" + // } + // remoteMenu.push({ + // name: "涓汉涓績", + // path: "/account", + // component: null, + // routes: [settingRoute], + // icon: createIcon('UserOutlined') + // }) + + remoteMenu.push({ + name: "涓汉涓績", + path: "/account/setting", + component: "/account/setting", + icon: createIcon('UserOutlined') + }) } \ No newline at end of file -- Gitblit v1.9.1