fucai-claim/src/services/apiService.ts

147 lines
3.3 KiB
TypeScript
Raw Normal View History

import request from '@/utils/axios'
// 接口类型定义
export interface ActivityInfo {
activityName: string
activityStartTime: string
activityEndTime: string
money: number
status: number
}
export interface OcrUploadResponse {
uploadId: string
}
export interface OcrParseResponse {
raw: string
words: string[]
parsed: {
marriageNo: string
husbandName: string
wifeName: string
registerDate: string
}
}
export interface MarriageCodeDTO {
marriageNo?: string
receiveName?: string
receiveMobile?: string
code?: string
smsCode?: string
signImage?: string
salesNo?: string
dataTime?: string
}
export interface MarriageCodeVO {
code: string
status: number
marriageNo: string | null
receiveName: string | null
receiveMobile: string | null
receiveTime: string | null
salesNo?: string
}
export interface MarriageCodeListVO {
codeList: MarriageCodeVO[]
receiveCount: string
receiveAmount: string
}
export interface CommSmsDTO {
mobile: string
smsCode?: string
type: 0 | 1 | 2 | 3; // 0=登录1=兑换领取2=OCR识别3=本流程使用
}
// API服务实现
export const apiService = {
// 活动介绍页
// 获取当前活动信息
getCurrentActivity() {
return request.get<ActivityInfo>('/marriage/activity/current')
},
// OCR识别相关接口
// 上传OCR图片
uploadOcrImage(formData: FormData) {
return request.post<OcrUploadResponse>('/marriage/ocr/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data',
},
})
},
// 发送短信验证码
sendSms(data: CommSmsDTO) {
return request.post('/marriage/common/sms', data)
},
// 校验短信验证码
verifySms(data: CommSmsDTO) {
return request.post('/marriage/common/checkCode', data)
},
// OCR识别并返回证件信息
parseOcrInfo(data: {
mobile: string
smsCode: string
uploadId: string
}) {
return request.post<OcrParseResponse>('/marriage/ocr/parse', data)
},
// 领取流程相关接口
// 领取前校验(生成二维码前的校验与预览)
receiveCheck(data: MarriageCodeDTO) {
return request.post<MarriageCodeVO>('/marriage/receiveCheck2', data)
},
// 确认领取(落库并置为已核销)
receiveCode(data: MarriageCodeDTO) {
return request.post('/marriage/receiveCode', data)
},
// 二维码状态相关接口
// 按站点号与月份分页统计列表
getCodeList(data: {
salesNo: string
page: number
size: number
dataTime?: string
}) {
return request.post<MarriageCodeListVO>('/marriage/codeList', data)
},
// 按核销码查询状态
getCodeStatus(data: { code: string }) {
return request.post<MarriageCodeVO>('/marriage/code/status', data)
},
// 兑奖页面相关接口
// 根据核销码获取领取信息(用于自动带出)
getCodeInfo(data: { code: string }) {
return request.post<MarriageCodeVO>('/marriage/code/info', data)
},
// 站点登录相关接口
// 登录
login(data: {
mobile: string
password?: string
smsCode?: string
}) {
return request.post('/marriage/common/login', data)
},
// 后台活动管理接口(可选,用于管理端)
// 获取活动列表
getActivityList() {
return request.post('/admin/activity/list')
},
}
export default apiService