205 lines
4.6 KiB
TypeScript
205 lines
4.6 KiB
TypeScript
import request from '@/utils/request'
|
||
|
||
/**
|
||
* 分页查询导师列表请求参数
|
||
*/
|
||
export interface MentorListParams {
|
||
/** 页码,>= 1 */
|
||
page: number
|
||
/** 每页条数,1~100 */
|
||
pageSize: number
|
||
/** 搜索关键词,可选 */
|
||
keyword?: string
|
||
/** 行业ids,可选 */
|
||
industryIds?: number[]
|
||
/** 导师ids,可选 */
|
||
mentorIds?: number[]
|
||
/** 身份类型:0企业在职 1生涯规划师 2心理咨询师 3教职工 4在校学生,可选 */
|
||
identityType?: number | null
|
||
/** 标签ids,可选 */
|
||
labelIds?: number[]
|
||
/** 约聊方式:0语音电话 1线下约见,可选 */
|
||
chatType?: number
|
||
/** 价格最大值,可选 */
|
||
maxChatPrice?: number
|
||
/** 价格最小值,可选 */
|
||
minChatPrice?: number
|
||
/** 公司名,可选 */
|
||
agencyName?: string
|
||
/** 机构类型,可选 */
|
||
type?: string | null
|
||
/** 排序:0默认 1金牌导师优先 2好评优先 3价格升序 4价格降序 */
|
||
sort: number
|
||
}
|
||
|
||
/**
|
||
* 导师列表项数据
|
||
*/
|
||
export interface MentorItem {
|
||
/** 导师id(字符串,避免大数精度丢失) */
|
||
id: string
|
||
/** 用户id */
|
||
userId: number
|
||
/** 平台名 */
|
||
platformName: string
|
||
/** 头像 */
|
||
picture: string
|
||
/** 话题标题字符串 */
|
||
titleStr: string
|
||
/** 话题列表 */
|
||
titles: string[]
|
||
/** 标签字符串 */
|
||
labelStr: string
|
||
/** 标签列表 */
|
||
labels: string[]
|
||
/** 最低价格 */
|
||
price: number
|
||
/** 机构名 */
|
||
agencyName: string
|
||
/** 岗位 */
|
||
position: string
|
||
/** 机构logo */
|
||
agencyLogo: string
|
||
/** 排序 */
|
||
sort: number
|
||
/** 认证类型 */
|
||
type: string
|
||
/** 身份类型 */
|
||
identityType: number
|
||
}
|
||
|
||
/**
|
||
* 分页查询导师列表响应
|
||
*/
|
||
export interface MentorPageResult {
|
||
records: MentorItem[]
|
||
total: number
|
||
size: number
|
||
current: number
|
||
pages: number
|
||
}
|
||
|
||
/**
|
||
* 分页查询导师列表
|
||
* POST /public/mentor/page(offerpai 后端)
|
||
*/
|
||
export function fetchMentorList(params: MentorListParams): Promise<MentorPageResult> {
|
||
return request.post('/public/mentor/page', params)
|
||
}
|
||
|
||
// ==================== 导师详情接口 ====================
|
||
|
||
/**
|
||
* 导师详情 — 在职人士认证信息
|
||
*/
|
||
export interface MentorWorking {
|
||
companyName: string
|
||
type: number
|
||
companyLogo: string
|
||
industryId: number
|
||
position: string
|
||
currentPositionTerm: number
|
||
term: number
|
||
images: string[]
|
||
link: string
|
||
}
|
||
|
||
/**
|
||
* 导师详情 — 认证信息
|
||
*/
|
||
export interface MentorVerification {
|
||
career?: { agencyName: string; position: string; type: number; term: number; agencyLogo: string; images: string[] }
|
||
psychology?: { agencyName: string; position: string; type: number; agencyLogo: string; term: number; images: string[] }
|
||
staff?: { schoolName: string; type: number; schoolLogo: string; position: string; term: number; images: string[] }
|
||
student?: { schoolName: string; type: number; schoolLogo: string; major: string; startTime: string; endTime: string; degree: number; images: string[] }
|
||
working?: MentorWorking
|
||
}
|
||
|
||
/**
|
||
* 导师详情 — 基本信息
|
||
*/
|
||
export interface MentorInfo {
|
||
platformName: string
|
||
realName: string
|
||
nickName: string
|
||
picture: string
|
||
identityType: number
|
||
country?: string
|
||
province?: string
|
||
everCompany?: string
|
||
city?: string
|
||
phone: string
|
||
mail?: string
|
||
introduce?: string
|
||
introduceImages?: string[]
|
||
wechat?: string
|
||
cooperationCount?: number
|
||
starLevel?: number
|
||
remark?: string
|
||
sort?: number
|
||
status: number
|
||
}
|
||
|
||
/**
|
||
* 导师详情 — 支持服务项
|
||
*/
|
||
export interface MentorSupport {
|
||
type: number
|
||
introduce?: string
|
||
}
|
||
|
||
/**
|
||
* 导师详情 — 标签关系
|
||
*/
|
||
export interface MentorLabelRelation {
|
||
labelId: number
|
||
alias?: string
|
||
}
|
||
|
||
/**
|
||
* 导师详情完整数据
|
||
*/
|
||
export interface MentorFullInfo {
|
||
id: number
|
||
mentorInfo: MentorInfo
|
||
verification?: MentorVerification
|
||
supports?: MentorSupport[]
|
||
labelRelations?: MentorLabelRelation[]
|
||
}
|
||
|
||
/**
|
||
* 导师话题项
|
||
*/
|
||
export interface MentorTalk {
|
||
id: number
|
||
teacherUserId: number
|
||
title: string
|
||
content: string
|
||
chatType: string
|
||
seePrice: number
|
||
seeSalePrice: number
|
||
chatPrice: number
|
||
chatSalePrice: number
|
||
tags: string
|
||
status: string
|
||
talkTimes: number
|
||
jobBusinessType: string
|
||
caseImages?: string[]
|
||
}
|
||
|
||
/**
|
||
* 获取导师详情信息
|
||
* GET /public/mentor/info?mentorId=xxx(offerpai 后端)
|
||
*/
|
||
export function fetchMentorFullInfo(mentorId: string): Promise<MentorFullInfo> {
|
||
return request.get('/public/mentor/info', { params: { mentorId } })
|
||
}
|
||
|
||
/**
|
||
* 获取导师话题列表
|
||
* GET /public/mentor/talk?teacherId=xxx(offerpai 后端)
|
||
*/
|
||
export function fetchMentorTalks(teacherId: string): Promise<MentorTalk[]> {
|
||
return request.get('/public/mentor/talk', { params: { teacherId } })
|
||
}
|