diff --git a/config/router.config.ts b/config/router.config.ts index fa3858e..0a80479 100644 --- a/config/router.config.ts +++ b/config/router.config.ts @@ -39,6 +39,12 @@ export default [ icon: 'icon-shouye', component: '@/pages/index', }, + { + path: '/PersonalInfo', + name: "个人中心", + icon: 'icon-shouye', + component: '@/pages/PersonalInfo', + }, // 供应商评价分组 { name: '供应商评价', diff --git a/src/layouts/BasicLayout.tsx b/src/layouts/BasicLayout.tsx index eef1045..52c90db 100644 --- a/src/layouts/BasicLayout.tsx +++ b/src/layouts/BasicLayout.tsx @@ -168,7 +168,16 @@ const BasicLayout: React.FC = (props) => { const menus = JSON.parse(menuStr); const filteredMenus = filterMenusByLocalConfig(routes, menus); console.log(filteredMenus,'filteredMenus'); - + const hasPersonalInfo = filteredMenus.some(item => item.path === '/PersonalInfo'); + if (!hasPersonalInfo) { + filteredMenus.push({ + path: '/PersonalInfo', + name: "个人中心", + icon: 'icon-shouye', + component: '@/pages/PersonalInfo', + hideInMenu: true + }); + } setMenuRoutes(convertMenuData(filteredMenus)); } }, []); diff --git a/src/layouts/User.tsx b/src/layouts/User.tsx index c190e62..021830b 100644 --- a/src/layouts/User.tsx +++ b/src/layouts/User.tsx @@ -55,9 +55,7 @@ const User: React.FC = ({ user, dispatch }) => { }, }); } else if(e.key === 'profile') { - console.log(111); - - // history.push('/profile'); + history.push('/PersonalInfo'); } }; return ( diff --git a/src/locales/en-US/menu.ts b/src/locales/en-US/menu.ts index 665e8b7..6f20726 100644 --- a/src/locales/en-US/menu.ts +++ b/src/locales/en-US/menu.ts @@ -1,6 +1,6 @@ export default { 'menu.首页': 'Home', - + 'menu.个人中心': 'Personal Center', // 供应商评价模块 'menu.供应商评价': 'Supplier Evaluation', 'menu.模板管理': 'Template Management', diff --git a/src/locales/zh-CN/menu.ts b/src/locales/zh-CN/menu.ts index 192fa63..87daf94 100644 --- a/src/locales/zh-CN/menu.ts +++ b/src/locales/zh-CN/menu.ts @@ -1,5 +1,6 @@ export default { 'menu.首页': '首页', + 'menu.个人中心': '个人中心', // 供应商评价模块 'menu.供应商评价': '供应商评价', diff --git a/src/pages/PersonalInfo/index.tsx b/src/pages/PersonalInfo/index.tsx new file mode 100644 index 0000000..bdc81be --- /dev/null +++ b/src/pages/PersonalInfo/index.tsx @@ -0,0 +1,65 @@ +import React, { useEffect, useState } from 'react'; +import { Descriptions, Spin, message } from 'antd'; +import { useIntl } from 'umi'; +import { getUserInfo } from './services'; + +// 性别转中文 +const getGenderLabel = (sex: string | number | undefined) => { + if (sex === '1' || sex === 1) return '男'; + if (sex === '0' || sex === 0) return '女'; + return ''; +}; + +const PersonalInfo: React.FC = () => { + const intl = useIntl(); + const [userInfo, setUserInfo] = useState({}); + const [loading, setLoading] = useState(true); + + useEffect(() => { + setLoading(true); + getUserInfo() + .then(res => { + if (res.code === 200 && res.data) { + setUserInfo(res.data); + } else { + message.error('获取用户信息失败'); + } + }) + .catch(() => { + message.error('获取用户信息失败'); + }) + .finally(() => { + setLoading(false); + }); + }, []); + + return ( + +
+ + + + {userInfo.contactsName || '-'} + + + {getGenderLabel(userInfo.sex)} + + + {userInfo.mobile || userInfo.contactsPhone || '-'} + + + {userInfo.contactsEmail || '-'} + + + {userInfo.orgName || '-'} + + + {userInfo.position || '-'} + + + +
+ ); +}; + +export default PersonalInfo; diff --git a/src/pages/PersonalInfo/services.ts b/src/pages/PersonalInfo/services.ts new file mode 100644 index 0000000..9debc89 --- /dev/null +++ b/src/pages/PersonalInfo/services.ts @@ -0,0 +1,11 @@ +import request from '@/utils/request'; + +/** + * 用户信息 + */ +export async function getUserInfo() { + return request('/coscoSupplierUser/user/info', { + method: 'GET' + }); +} + \ No newline at end of file