import request from '@/utils/request' import type { ApiResult } from '@/api/auth' /** 行业树节点(二级) */ export interface IndustryChild { id: string name: string level: number } /** 行业树节点(一级,含子节点) */ export interface IndustryItem { id: string name: string level: number children: IndustryChild[] } /** * 获取行业树分类数据 * GET /public/industries/tree * 返回一级二级嵌套的行业分类 */ export function fetchIndustryTree(params?: { includeEmpty?: boolean }) { return request.get>('/public/industries/tree', { params }) } // ==================== 岗位分类相关 ==================== /** 岗位树节点(三级 / 末级) */ export interface JobCategoryLeaf { id: string name: string level: number } /** 岗位树节点(二级,含三级子节点) */ export interface JobCategoryChild { id: string name: string level: number children: JobCategoryLeaf[] } /** 岗位树节点(一级,含二级子节点) */ export interface JobCategoryItem { id: string name: string level: number children: JobCategoryChild[] } /** * 获取岗位树分类数据 * GET /public/job-categories/tree * 返回一级二级三级嵌套的岗位分类 */ export function fetchJobCategoryTree(params?: { includeEmpty?: boolean }) { return request.get>('/public/job-categories/tree', { params }) } // ==================== 地区分类相关 ==================== /** 地区树节点(三级 / 区县级) */ export interface RegionLeaf { code: string name: string } /** 地区树节点(二级 / 市级,可能含三级子节点) */ export interface RegionChild { code: string name: string children?: RegionLeaf[] } /** 地区树节点(一级 / 省级,含二级子节点) */ export interface RegionItem { code: string name: string children: RegionChild[] } /** * 获取地区树分类数据 * GET /public/regions/tree * 返回省市区三级嵌套的地区分类 */ export function fetchRegionTree() { return request.get>('/public/regions/tree') } // ==================== OSS 文件上传相关 ==================== /** 文件上传路径枚举 */ export type OssPathEnum = 'UserImage' | 'ResumeImage' | 'SystemImage' | 'ResumeFile' | 'OtherFile' /** 文件上传返回结果 */ export interface OssUploadResult { /** 上传地址 */ uploadUrl?: string /** 下载地址 */ downloadUrl?: string } /** * 上传文件到OSS * POST /oss/simpleUpload * @param file 要上传的文件 * @param pathEnum 路径枚举,默认 ResumeFile * @returns 上传结果(含下载地址) */ export function uploadFileToOss(file: File, pathEnum: OssPathEnum = 'ResumeFile') { const formData = new FormData() formData.append('file', file) return request.post>('/oss/simpleUpload', formData, { params: { pathEnum }, headers: { 'Content-Type': 'multipart/form-data' }, }) } // ==================== 协议查询相关 ==================== /** 协议数据结构 */ export interface AgreementDto { /** 协议表ID */ id?: number /** 协议码,唯一标识一类协议 */ agreementCode?: string /** 修改版本 */ version?: number /** 协议名称 */ agreementName?: string /** 协议内容(富文本/Markdown) */ content?: string /** 状态 1=启用 0=禁用 */ status?: number } /** * 根据协议码查询协议内容 * GET /public/agreement?code=xxx * @param code 协议码 */ export function fetchAgreement(code: string) { return request.get>('/public/agreement', { params: { code } }) }