|
|
|
@ -60,6 +60,7 @@ import type { |
|
|
|
OnboardingChecklist, |
|
|
|
JobProgress, |
|
|
|
IdentityOption, |
|
|
|
AppRole, |
|
|
|
AIInterviewData, |
|
|
|
InterviewSession, |
|
|
|
HREvaluation, |
|
|
|
@ -609,8 +610,12 @@ const MOCK_USER_STATS: UserStats = { |
|
|
|
offers: 3, |
|
|
|
}; |
|
|
|
|
|
|
|
/** 功能菜单列表(设置类入口已移至设置页,这里只保留业务功能) */ |
|
|
|
const MOCK_MENU_ITEMS: MenuItem[] = [ |
|
|
|
/** |
|
|
|
* 求职者端功能菜单 |
|
|
|
* 只含求职者相关功能;「企业入驻」作为切换到企业端的入口保留在此。 |
|
|
|
* 企业侧功能(发布岗位 / 岗位管理等)一律不在此下发,避免角色混淆。 |
|
|
|
*/ |
|
|
|
const MOCK_CANDIDATE_MENU_ITEMS: MenuItem[] = [ |
|
|
|
{ id: 'resume', title: '我的简历', icon: 'document-text-outline', route: '/resume' }, |
|
|
|
{ id: 'favorites', title: '我的收藏', icon: 'heart-outline', route: '/favorites' }, |
|
|
|
{ id: 'history', title: '浏览历史', icon: 'time-outline', route: '/history' }, |
|
|
|
@ -627,14 +632,22 @@ const MOCK_MENU_ITEMS: MenuItem[] = [ |
|
|
|
{ id: 'game', title: '通关小游戏', icon: 'trophy-outline', route: '/game' }, |
|
|
|
{ id: 'legal', title: '阿布阿诺法律服务', icon: 'shield-checkmark-outline', route: '/legal' }, |
|
|
|
{ id: 'enterprise-certification', title: '企业入驻', icon: 'business-outline', route: '/enterprise-certification' }, |
|
|
|
]; |
|
|
|
|
|
|
|
/** |
|
|
|
* 企业端功能菜单 |
|
|
|
* 只含企业 / HR 相关功能,在企业端「我的 - 更多服务」下发。 |
|
|
|
* 不设「候选人详情」菜单入口:该页需要候选人 id,独立入口会落到兜底数据, |
|
|
|
* 正确路径是「人才推荐 → 列表点击 → 带 id 进详情」。 |
|
|
|
* 运营规则配置 / 数据审计等后台项见 MOCK_ENTERPRISE_MANAGE_ACTIONS。 |
|
|
|
*/ |
|
|
|
const MOCK_ENTERPRISE_MENU_ITEMS: MenuItem[] = [ |
|
|
|
{ id: 'job-publish', title: '发布岗位', icon: 'add-circle-outline', route: '/job-publish' }, |
|
|
|
{ id: 'job-evaluations', title: '岗位评价管理', icon: 'chatbubbles-outline', route: '/job-evaluations' }, |
|
|
|
{ id: 'candidate-detail', title: '候选人详情', icon: 'person-outline', route: '/candidate-detail' }, |
|
|
|
{ id: 'interview-score', title: '面试评分', icon: 'create-outline', route: '/interview-score' }, |
|
|
|
{ id: 'job-management', title: '岗位管理', icon: 'business-outline', route: '/job-management' }, |
|
|
|
{ id: 'job-evaluations', title: '岗位评价管理', icon: 'chatbubbles-outline', route: '/job-evaluations' }, |
|
|
|
{ id: 'talent-recommendation', title: '人才推荐', icon: 'people-outline', route: '/talent-recommendation' }, |
|
|
|
{ id: 'interview-score', title: '面试评分', icon: 'create-outline', route: '/interview-score' }, |
|
|
|
{ id: 'enterprise-chat', title: '企业沟通', icon: 'chatbubble-outline', route: '/enterprise-chat' }, |
|
|
|
// 注:运营规则配置 / 数据审计报告属后台管理术语,已迁至企业端「我的-管理后台」,不在此暴露给求职者
|
|
|
|
]; |
|
|
|
|
|
|
|
/** 企业端入口 */ |
|
|
|
@ -1093,11 +1106,13 @@ export async function fetchUserStats(): Promise<UserStats> { |
|
|
|
* 获取个人中心功能菜单列表 |
|
|
|
* @method GET |
|
|
|
* @url /api/user/menus |
|
|
|
* @param role { AppRole } 当前角色(端),按角色下发不同菜单,避免求职者端出现企业功能、反之亦然 |
|
|
|
* @returns Promise<MenuItem[]> 菜单数组 |
|
|
|
*/ |
|
|
|
export async function fetchMenuItems(): Promise<MenuItem[]> { |
|
|
|
// TODO: const res = await fetch(`${API_BASE_URL}/api/user/menus`, { method: 'GET' }); return res.json();
|
|
|
|
return mockRequest(MOCK_MENU_ITEMS); |
|
|
|
export async function fetchMenuItems(role: AppRole = 'candidate'): Promise<MenuItem[]> { |
|
|
|
// TODO: const res = await fetch(`${API_BASE_URL}/api/user/menus?role=${role}`, { method: 'GET' }); return res.json();
|
|
|
|
const items = role === 'enterprise' ? MOCK_ENTERPRISE_MENU_ITEMS : MOCK_CANDIDATE_MENU_ITEMS; |
|
|
|
return mockRequest(items); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
@ -2396,6 +2411,7 @@ const MOCK_ENTERPRISE_OVERVIEW: EnterpriseOverview = { |
|
|
|
jobEvaluations: MOCK_JOB_EVALUATION_SUMMARIES, |
|
|
|
quickActions: MOCK_ENTERPRISE_QUICK_ACTIONS, |
|
|
|
manageActions: MOCK_ENTERPRISE_MANAGE_ACTIONS, |
|
|
|
menuItems: MOCK_ENTERPRISE_MENU_ITEMS, |
|
|
|
}; |
|
|
|
|
|
|
|
/** |
|
|
|
|