/** * 同岗位竞争力排名相关类型定义 */ /** 排名总览(岗位维度头信息 + 综合排名指标) */ export interface RankData { /** 当前排名名次,如 127 */ rank: number; /** 岗位名称,如 "高级前端工程师" */ jobTitle: string; /** 公司名,如 "字节跳动" */ company: string; /** 候选人总数,如 1286 */ totalCandidates: number; /** 超越的候选人百分比,如 90.1 */ percentile: number; /** 综合评分,如 88 */ overallScore: number; /** 评分等级,如 "优秀" */ scoreLevel: string; /** 百分位排名文案,如 "前 9.9%" */ rankPosition: string; } /** 维度百分位 */ export interface DimensionPercentile { id: string; /** 维度名称,如 "专业技能" */ name: string; /** 百分位排名文案,如 "前 15%" */ percentile: string; /** 该项评分,如 92 */ score: number; } /** TOP 候选人 */ export interface TopCandidate { id: string; /** 候选人名称,如 "候选人 A" */ name: string; /** 分数,如 96 */ score: number; /** 候选标签,如 ["清华硕士", "5 年大厂"] */ tags: string[]; } /** 提升建议 */ export interface ImprovementTip { id: string; /** 建议主标题,如 "补充项目经验可提升 5-8 个百分位" */ title: string; /** 建议描述,如 "完善你的项目经历描述" */ description: string; /** tip=普通建议,action=可点击操作 */ type: 'tip' | 'action'; /** * 可点击建议的目标路由(type='action' 时由接口层下发)。 * 缺省时页面按普通建议渲染 —— 不给「点了没反应」的入口。 */ route?: string; } /** 简历完善进度步骤 */ export interface ResumeProgressStep { /** 步骤 id */ id: string; /** 步骤名称 */ label: string; /** 是否已完成 */ completed: boolean; /** 补充提示 */ tip?: string; } /** 竞争力排名空状态 */ export interface RankEmptyState { /** 空状态标题 */ title: string; /** 空状态副标题 */ subtitle: string; /** 按钮文案 */ actionText: string; /** 简历完善进度 */ resumeProgress: ResumeProgressStep[]; } /** 竞争力排名聚合数据(含数据态与空状态) */ export interface RankOverview { /** 是否有排名数据 */ hasData: boolean; /** 数据态:排名总览 */ rankData?: RankData; /** 数据态:维度百分位 */ dimensions?: DimensionPercentile[]; /** 数据态:TOP 候选人 */ candidates?: TopCandidate[]; /** 数据态:提升建议 */ tips?: ImprovementTip[]; /** 空状态 */ emptyState?: RankEmptyState; }