141 lines
3.1 KiB
TypeScript
141 lines
3.1 KiB
TypeScript
|
|
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
|
|||
|
|
type: 0 | 1 | 2; // 0=登录;1=兑换领取;2=OCR识别
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 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)
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
// 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/receiveCheck', 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
|