121 lines
4.3 KiB
TypeScript
121 lines
4.3 KiB
TypeScript
import request from '@/config/axios'
|
||
|
||
// 车辆订单 VO
|
||
export interface RenewalOrderVO {
|
||
id: number // 主键ID
|
||
carBrand: string // 汽车品牌
|
||
carModel: string // 车型
|
||
licensePlate: string // 车牌号
|
||
factoryModel: string // 厂牌型号
|
||
invoiceAmount: number // 发票金额
|
||
purchaseMileage: number // 购买时公里数
|
||
engineNo: string // 发动机号
|
||
vin: string // 车架号
|
||
invoiceDate: Date // 发票日期
|
||
invoiceUrl: string // 发票图片地址
|
||
serviceBuyer: string // 服务购买方
|
||
carBuyer: string // 车辆购买方
|
||
certType: string // 证件类型
|
||
mobile: string // 联系电话
|
||
certNo: string // 证件号码
|
||
contactAddress: string // 联系地址
|
||
memberEmail: string // 会员邮箱
|
||
storeId: number // 门店ID(关联 tire_store.id)
|
||
storeName?: string // 门店名称
|
||
productId: number // 续保产品ID(关联 car_renewal_product.id)
|
||
serviceProduct: string // 服务产品
|
||
productType: string // 产品类别(来自续保产品)
|
||
productValidity: string // 产品时效
|
||
originalWarrantyYears: string // 原厂质保时长
|
||
originalWarrantyMileage: string // 原厂质保里程
|
||
productFee: number // 产品费用
|
||
settlementMethod: string // 结算方式
|
||
remark: string // 备注
|
||
inputUser: string // 录单人
|
||
contractRemark: string // 合同备注
|
||
customerSignatureUrl?: string // 客户签名
|
||
idCardFrontUrl?: string // 身份证正面
|
||
idCardBackUrl?: string // 身份证反面
|
||
drivingLicenseUrl?: string // 行驶证
|
||
carInvoiceUrls?: string[] // 购车发票(多张,JSON字符串)
|
||
purchaseTaxInvoiceUrls?: string[] // 购置税发票(多张,JSON字符串)
|
||
businessInsurancePolicyUrls?: string[] // 商业险保单(多张,JSON字符串)
|
||
certificateOfConformityUrl?: string // 合格证
|
||
odometerPhotoUrl?: string // 里程表照片
|
||
nameplatePhotoUrl?: string // 车名牌照片
|
||
}
|
||
|
||
// 车辆订单 API
|
||
export const RenewalOrderApi = {
|
||
// 查询车辆订单分页
|
||
getRenewalOrderPage: async (params: any) => {
|
||
return await request.get({ url: `/car/renewal-order/page`, params })
|
||
},
|
||
|
||
// 查询车辆订单详情
|
||
getRenewalOrder: async (id: number) => {
|
||
return await request.get({ url: `/car/renewal-order/get?id=` + id })
|
||
},
|
||
|
||
// 新增车辆订单
|
||
createRenewalOrder: async (data: RenewalOrderVO) => {
|
||
return await request.post({ url: `/car/renewal-order/create`, data })
|
||
},
|
||
|
||
// 修改车辆订单
|
||
updateRenewalOrder: async (data: RenewalOrderVO) => {
|
||
return await request.put({ url: `/car/renewal-order/update`, data })
|
||
},
|
||
|
||
// 删除车辆订单
|
||
deleteRenewalOrder: async (id: number) => {
|
||
return await request.delete({ url: `/car/renewal-order/delete?id=` + id })
|
||
},
|
||
|
||
// 导出车辆订单 Excel
|
||
exportRenewalOrder: async (params) => {
|
||
return await request.download({ url: `/car/renewal-order/export-excel`, params })
|
||
}
|
||
,
|
||
// 生成在线合同 PDF 并上传(回写 contractUrl)
|
||
generateContract: async (id: number) => {
|
||
return await request.post({ url: `/car/renewal-order/generate-contract`, params: { id } })
|
||
},
|
||
|
||
// 生成合同 HTML(用于预览)
|
||
generateContractHtml: async (id: number) => {
|
||
return await request.get({ url: `/car/renewal-order/generate-contract-html?id=` + id })
|
||
},
|
||
|
||
// 创建线上签名令牌
|
||
createSignToken: async (id: number) => {
|
||
return await request.post({ url: `/car/renewal-order/create-sign-token`, params: { id } })
|
||
},
|
||
|
||
// 清空订单合同与客户签名(重新生成合同时先清空再扫码签名)
|
||
clearContractAndSignature: async (id: number) => {
|
||
return await request.post({ url: `/car/renewal-order/clear-contract-sign`, params: { id } })
|
||
},
|
||
|
||
// 身份证识别(用于图片识别新增)
|
||
recognizeIdcard: async (file: File, idCardSide: 'front' | 'back' = 'front') => {
|
||
const formData = new FormData()
|
||
formData.append('file', file)
|
||
formData.append('idCardSide', idCardSide)
|
||
return await request.upload({
|
||
url: '/car/renewal-order/recognize-idcard',
|
||
data: formData
|
||
})
|
||
},
|
||
|
||
// 机动车销售发票识别(用于图片识别新增)
|
||
recognizeVehicleInvoice: async (file: File) => {
|
||
const formData = new FormData()
|
||
formData.append('file', file)
|
||
return await request.upload({
|
||
url: '/car/renewal-order/recognize-vehicle-invoice',
|
||
data: formData
|
||
})
|
||
}
|
||
}
|