个人资料和岗位列表联调,简历优化部分页面

This commit is contained in:
2026-04-01 11:41:51 +08:00
parent 0468339d23
commit 821a950df2
42 changed files with 5935 additions and 748 deletions
+9
View File
@@ -40,6 +40,15 @@ export function smsLogin(mobileNumber: string, code: string, inviteCode?: string
})
}
/**
* 检查登录状态
* GET /public/checkLogin
* 有 Cookie 且认证通过返回 data: true,否则返回 data: false
*/
export function checkLogin() {
return request.get<any, ApiResult<boolean>>('/public/checkLogin')
}
/**
* 退出登录
* POST /public/logout
+175 -2
View File
@@ -6,7 +6,7 @@ import type { ApiResult } from '@/api/auth'
/** 匹配度详情 */
export interface MatchDetail {
/** 行业匹配分 */
industryScore: number
educationScore: number
/** 技能匹配分 */
skillScore: number
/** 经验匹配分 */
@@ -79,6 +79,38 @@ export interface JobListParams {
jobIds?: number[]
/** 岗位状态过滤(0=有效 1=已下架 2=已过期,可多选,null或空=查所有) */
statusFilter?: number[]
/** 搜索关键词 */
keyword?: string
}
// ==================== 求职意向 ====================
/** 求职意向出参/入参 */
export interface JobIntention {
/** 期望岗位分类 ID 列表 */
categoryIds?: number[]
/** 期望地区编码列表 */
regionCodes?: string[]
/** 期望行业 ID 列表 */
industryIds?: number[]
/** 就业类型:0=全职,1=实习 */
employmentType?: number
}
/**
* 查询求职意向
* GET /job-intention
*/
export function fetchJobIntention() {
return request.get<any, ApiResult<JobIntention>>('/job-intention')
}
/**
* 保存求职意向
* POST /job-intention
*/
export function saveJobIntention(data: JobIntention) {
return request.post<any, ApiResult<any>>('/job-intention', data)
}
// ==================== 接口方法 ====================
@@ -96,12 +128,128 @@ export function fetchJobList(params: JobListParams = {}) {
})
}
// ==================== 收藏列表 ====================
/** 收藏列表请求参数 */
export interface FavoriteListParams {
/** 当前页码,从1开始,默认1 */
pageNum?: number
/** 每页条数,默认10 */
pageSize?: number
/** 是否只查询有效收藏(true=只查有效岗位,false=只查失效岗位,null=查所有) */
valid?: boolean | null
}
/**
* 获取收藏列表
* POST /job/favorite/list
*/
export function fetchFavoriteList(params: FavoriteListParams = {}) {
return request.post<any, ApiResult<JobPageData>>('/job/favorite/list', {
pageNum: params.pageNum ?? 1,
pageSize: params.pageSize ?? 10,
...params,
})
}
/**
* 收藏/取消收藏岗位
* POST /job/favorite?jobId=xxx
* @param jobId 岗位 ID
*/
export function toggleJobFavorite(jobId: string) {
return request.post<any, ApiResult<any>>('/job/favorite', null, {
params: { jobId },
})
}
/**
* 取消收藏岗位
* DELETE /job/favorite?jobId=xxx
* @param jobId 岗位 ID
*/
export function removeJobFavorite(jobId: string) {
return request.delete<any, ApiResult<any>>('/job/favorite', {
params: { jobId },
})
}
// ==================== 收藏统计 ====================
/** 收藏统计结果 */
export interface FavoriteCountData {
/** 收藏总数 */
totalCount: number
/** 有效收藏数(岗位status=0 */
validCount: number
/** 失效收藏数(岗位status!=0或已删除) */
invalidCount: number
}
/**
* 获取收藏统计
* GET /job/favorite/count
*/
export function fetchFavoriteCount() {
return request.get<any, ApiResult<FavoriteCountData>>('/job/favorite/count')
}
// ==================== 投递列表 ====================
/** 投递列表请求参数 */
export interface ApplyListParams {
/** 当前页码,从1开始,默认1 */
pageNum?: number
/** 每页条数,默认10 */
pageSize?: number
/** 投递状态筛选(0=已投递 1=面试中 2=有Offer 3=未通过 4=已结束) */
status?: number | null
}
/**
* 获取投递列表
* POST /job/apply/list
*/
export function fetchApplyList(params: ApplyListParams = {}) {
return request.post<any, ApiResult<JobPageData>>('/job/apply/list', {
pageNum: params.pageNum ?? 1,
pageSize: params.pageSize ?? 10,
...(params.status !== null && params.status !== undefined ? { status: params.status } : {}),
})
}
// ==================== 投递统计 ====================
/** 投递统计结果 */
export interface ApplyCountData {
/** 投递总数 */
totalCount: number
/** 已投递数(status=0 */
appliedCount: number
/** 面试中数(status=1 */
interviewingCount: number
/** 有Offer数(status=2 */
offerCount: number
/** 未通过数(status=3 */
rejectedCount: number
/** 已结束数(status=4 */
closedCount: number
}
/**
* 获取投递统计
* GET /job/apply/count
*/
export function fetchApplyCount() {
return request.get<any, ApiResult<ApplyCountData>>('/job/apply/count')
}
// ==================== 岗位详情 ====================
/** 匹配度详情(岗位详情用) */
export interface JobMatchScoreDto {
/** 行业得分(0-100 */
industryScore: number
educationScore: number
/** 技能得分(0-100 */
skillScore: number
/** 经验得分(0-100 */
@@ -180,6 +328,31 @@ export interface JobDetailData {
isFavorite: boolean
}
/**
* 从推荐列表中移除岗位
* TODO: 接口待后端提供,当前仅做前端列表移除
* POST /job/remove?jobId=xxx
* @param jobId 岗位 ID
*/
export function removeJobFromList(jobId: string) {
// TODO: 接口待对接,暂时返回模拟成功结果
return Promise.resolve({ code: '0', msg: '', data: null, timestamp: '', uuid: '' } as ApiResult<any>)
// 对接时替换为:
// return request.post<any, ApiResult<any>>('/job/remove', null, { params: { jobId } })
}
/**
* 不感兴趣
* POST /job/dislike?jobId=xxx
* @param jobId 岗位 ID
* @param reason 不感兴趣原因 0-5
*/
export function dislikeJob(jobId: string, reason: number) {
return request.post<any, ApiResult<any>>('/job/dislike', { reason }, {
params: { jobId },
})
}
/**
* 获取岗位详情
* GET /job/detail?jobId=xxx