|
|
@@ -100,6 +100,8 @@ export const MENUS_CODE = {
|
|
|
'visualization/Screen': 'visualization/Screen',
|
|
|
};
|
|
|
|
|
|
+const isRedirect = false;
|
|
|
+
|
|
|
/**
|
|
|
* 根据url获取映射的组件
|
|
|
* @param files
|
|
|
@@ -137,24 +139,34 @@ const getRoutes = (extraRoutes: MenuItem[], level: number = 1) => {
|
|
|
const Menus: IRouteProps[] = [];
|
|
|
extraRoutes.forEach((route) => {
|
|
|
const component = allComponents[route.code] || null;
|
|
|
- if (level === 1) {
|
|
|
- Menus.push({
|
|
|
- key: route.url,
|
|
|
- name: route.name,
|
|
|
- path: route.url,
|
|
|
- children: getRoutes(flatRoute(route.children || []), level + 1),
|
|
|
- });
|
|
|
+ const _route: IRouteProps = {
|
|
|
+ key: route.url,
|
|
|
+ name: route.name,
|
|
|
+ path: route.url,
|
|
|
+ };
|
|
|
+ if (level === 1 && route.children) {
|
|
|
+ _route.children = [
|
|
|
+ ...getRoutes(flatRoute(route.children || []), level + 1),
|
|
|
+ {
|
|
|
+ path: _route.path,
|
|
|
+ redirect: route.children[0].url,
|
|
|
+ },
|
|
|
+ ];
|
|
|
+ Menus.push(_route);
|
|
|
}
|
|
|
if (component) {
|
|
|
- Menus.push({
|
|
|
- key: route.url,
|
|
|
- name: route.name,
|
|
|
- path: route.url,
|
|
|
- exact: true,
|
|
|
- component,
|
|
|
- });
|
|
|
+ _route.component = component;
|
|
|
+ _route.exact = true;
|
|
|
+ Menus.push(_route);
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
+ if (level === 1 && !isRedirect && extraRoutes.length) {
|
|
|
+ Menus.push({
|
|
|
+ path: '/',
|
|
|
+ redirect: extraRoutes[0].url,
|
|
|
+ });
|
|
|
+ }
|
|
|
return Menus;
|
|
|
};
|
|
|
|
|
|
@@ -196,10 +208,22 @@ export const saveMenusCache = (routes: MenuItem[]) => {
|
|
|
* 通过缓存的数据取出相应的路由url
|
|
|
* @param code
|
|
|
*/
|
|
|
-export const getMenuPathBuCode = (code: string): string => {
|
|
|
+export const getMenuPathByCode = (code: string): string => {
|
|
|
const menusStr = localStorage.getItem(MENUS_DATA_CACHE) || '{}';
|
|
|
const menusData = JSON.parse(menusStr);
|
|
|
+ console.log(code, menusData);
|
|
|
return menusData[code];
|
|
|
};
|
|
|
|
|
|
+/**
|
|
|
+ * 通过缓存的数据取出相应的路由url
|
|
|
+ * @param code 路由Code
|
|
|
+ * @param id 路由携带参数
|
|
|
+ * @param regStr 路由参数code
|
|
|
+ */
|
|
|
+export const getMenuPathByParams = (code: string, id: string, regStr: string = ':id') => {
|
|
|
+ const menusData = getMenuPathByCode(code);
|
|
|
+ return menusData.replace(regStr, id);
|
|
|
+};
|
|
|
+
|
|
|
export default getRoutes;
|