diff --git a/config/HomePage/router_home.ts b/config/HomePage/router_home.ts
index dc02a47..3186226 100644
--- a/config/HomePage/router_home.ts
+++ b/config/HomePage/router_home.ts
@@ -1,5 +1,6 @@
export default [
{
+ name: '首页',
path: '/Dashboard',
component: './MainPage/ProjectManager',
},
diff --git a/config/proxy.ts b/config/proxy.ts
index 9aac713..8a2014b 100644
--- a/config/proxy.ts
+++ b/config/proxy.ts
@@ -14,7 +14,7 @@ export default {
},
UAT: {
'/api/sys-manager-ebtp-project': {
- target: 'http://localhost:18030',
+ target: 'http://192.168.110.231:18030',
changeOrigin: true,
pathRewrite: { '/api/sys-manager-ebtp-project': '' },
},
@@ -58,7 +58,11 @@ export default {
changeOrigin: true,
pathRewrite: { '/api/biz-supplier-manage': '' },
},
-
+ '/api/biz-service-ebtp-resps': {
+ target: 'http://192.168.110.51:18013',
+ changeOrigin: true,
+ pathRewrite: { '/api/biz-service-ebtp-resps': '' },
+ },
// '/api/wfap/v1/audit/bill/find/by/procid': {
// target: 'http://10.242.31.158:8891/',//审批单 uat环境自动审批,暂时用不到
// changeOrigin: true,
diff --git a/package.json b/package.json
index 6c56a81..9567b17 100644
--- a/package.json
+++ b/package.json
@@ -98,6 +98,7 @@
"devDependencies": {
"@alita/plugins": "^3.5.5",
"@types/classnames": "^2.2.7",
+ "@types/cookie": "0.5.4",
"@types/express": "^4.17.0",
"@types/history": "^4.7.2",
"@types/jest": "^26.0.0",
diff --git a/src/app.tsx b/src/app.tsx
index bbc867b..66063c0 100644
--- a/src/app.tsx
+++ b/src/app.tsx
@@ -50,7 +50,8 @@ function TabLayout({
const items = Object.entries(keepElements.current).map(
([pathname]: any) => {
const pathnameLowerCase = pathname.toLowerCase();
- const label = pathKeyMap.get(pathnameLowerCase)?.name || 'Unknown';
+ const pathKeyMapItem = pathKeyMap.get(pathnameLowerCase);
+ const label = pathKeyMapItem?.name || pathKeyMapItem?.routeName || 'Unknown';
const active = pathnameLowerCase === activeKeyLowerCase;
return ({ label, key: pathnameLowerCase, closeIcon: })
},
@@ -61,7 +62,8 @@ function TabLayout({
{
- navigate(key);
+ const { pathname, search } = keepElements.current[key].location;
+ navigate(`${pathname}${search}`);
}}
activeKey={activeKeyLowerCase}
type="editable-card"
@@ -79,12 +81,14 @@ function TabLayout({
return
}
dropByCacheKey(targetKey)
- if (targetKey === activeKey) {
+ if (targetKey === activeKey?.toLowerCase()) {
// 删除当前选中的tab时:
// 1.如果当前tab是第一个时自动选中后一个
// 2.不是第一个时自动选中前一个
const i = pathList.indexOf(targetKey)
- navigate(pathList[i === 0 ? i + 1 : i - 1])
+ const to = pathList[i === 0 ? i + 1 : i - 1]
+ const { pathname, search } = keepElements.current[to].location;
+ navigate(`${pathname}${search}`)
}
}}
items={items}
diff --git a/src/layouts/BasicLayout.tsx b/src/layouts/BasicLayout.tsx
index 1fe5aa0..d201261 100644
--- a/src/layouts/BasicLayout.tsx
+++ b/src/layouts/BasicLayout.tsx
@@ -4,7 +4,7 @@ import ProLayout, {
Settings,
} from '@ant-design/pro-layout';
import React, { useEffect, useMemo, useRef, useState } from 'react';
-import { Link, connect, Dispatch, history, Outlet, useLocation, useKeepOutlets } from '@umijs/max';
+import { Link, connect, Dispatch, history, useLocation, useKeepOutlets, useAppData } from '@umijs/max';
import { Result, Button, message } from 'antd';
import Authorized from '@/utils/Authorized';
import RightContent from '@/components/GlobalHeader/RightContent';
@@ -105,6 +105,8 @@ const BasicLayout: React.FC = (props) => {
const mall3_token: any = sessionStorage.getItem('Authorization');//当前登录token
const userData: any = getSessionUserData();//当前登录人信息
const children = useKeepOutlets();
+ const routeData = useAppData();
+
useEffect(() => {
if (getSessionRoleData()?.roleId) {
let params = {
@@ -116,7 +118,10 @@ const BasicLayout: React.FC = (props) => {
if (dispatch) {
dispatch({
type: 'user/saveMenuData',
- payload: res.data || [],
+ payload: {
+ menuData: res.data || [],
+ routeData: routeData.routes,
+ },
});
}
setmenuShow(true)
diff --git a/src/models/user.ts b/src/models/user.ts
index 5e802c8..72cba41 100644
--- a/src/models/user.ts
+++ b/src/models/user.ts
@@ -16,10 +16,16 @@ export interface CurrentUser {
unreadCount?: number;
}
+export interface PathKeyMap {
+ name: string;
+ icon?: string;
+ routeName?: string;
+}
+
export interface UserModelState {
currentUser?: CurrentUser;
menuData?: any[];
- pathKeyMap?: Map;
+ pathKeyMap?: Map;
}
export interface UserModelType {
@@ -42,7 +48,7 @@ const UserModel: UserModelType = {
state: {
currentUser: {},
menuData: [],
- pathKeyMap: new Map(),
+ pathKeyMap: new Map(),
},
effects: {
@@ -70,8 +76,9 @@ const UserModel: UserModelType = {
};
},
saveMenuData(state, action) {
- const menuData = action.payload || [];
- const pathKeyMap = new Map();
+ const menuData = action.payload.menuData || [];
+ const routeData = action.payload.routeData || [];
+ const pathKeyMap = new Map();
// 将menuData转换为pathKeyMap 递归处理
const convertToPathKeyMap = (menuData: any[]) => {
menuData.forEach((item: any) => {
@@ -83,7 +90,24 @@ const UserModel: UserModelType = {
});
};
convertToPathKeyMap(menuData);
- pathKeyMap.set('/dashboard', { name: '首页' });
+ let i = 1;
+ while (routeData[i]) {
+ const item = routeData[i];
+ if (item.name) {
+ const pathname = item.path.toLowerCase();
+ if (pathKeyMap.has(pathname)) {
+ const target = pathKeyMap.get(pathname)!;
+ const newItem = {
+ ...target,
+ routeName: item.name,
+ }
+ pathKeyMap.set(pathname, newItem);
+ } else {
+ pathKeyMap.set(pathname, { name: item.name, icon: item.icon });
+ }
+ }
+ i++;
+ }
return {
...state,
menuData: action.payload || [],
diff --git a/tsconfig.json b/tsconfig.json
index 814972c..7184137 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -11,7 +11,6 @@
"moduleResolution": "node",
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": true,
- "suppressImplicitAnyIndexErrors": true,
"noUnusedLocals": true,
"allowJs": true,
"skipLibCheck": true,