import { ocrRecognizePolicyDocument } from '../services/api_insurance'; /** * 示例:如何使用保单OCR识别功能 * @param {File|Blob|string} file - 保单图片或PDF文件,文件URL,或base64编码的文件内容 * @returns {Promise} - 解析后的保单信息 */ export async function recognizePolicyExample(file) { try { // 创建FormData对象 const formData = new FormData(); // 判断file的类型并相应处理 if (typeof file === 'string') { // 检查是否是base64格式 if (file.startsWith('data:')) { // 是base64格式,提取base64数据 const base64Data = file.split(',')[1]; formData.append('fileBase64', base64Data); // 添加文件类型信息 const mimeType = file.match(/data:([^;]+);/)[1]; formData.append('mimeType', mimeType); console.log('使用base64格式的文件进行OCR识别'); } else { // 是URL格式 formData.append('fileUrl', file); console.log('使用URL格式的文件进行OCR识别'); } } else if (file instanceof Blob || file instanceof File) { // 是文件或Blob对象 formData.append('file', file); console.log('使用文件对象进行OCR识别'); } else { throw new Error('不支持的文件类型'); } // 添加类型ID和格式 formData.append('typeId', 20090); formData.append('format', 'json'); // 调用OCR识别函数 const result = await ocrRecognizePolicyDocument(formData); // 检查API返回结果格式 if (result.retType === '0' || result.success) { console.log('保单OCR识别成功:', result.data); // 提取关键信息 const data = result.data || {}; const { policyNumber, insuranceCompany, productName, startDate, endDate, premiumPerPerson, insuredCount, totalPremium, policyholder } = data; // 构建标准化的返回数据 const processedData = { policyNo: policyNumber || data.policyNumber || data.policyNo, insComName: insuranceCompany || data.insuranceCompany || data.insComName, productName: productName || data.productName, effectStartDate: startDate || data.startDate || data.effectStartDate, effectEndDate: endDate || data.endDate || data.effectEndDate, perPremiums: premiumPerPerson || data.premiumPerPerson || data.perPremiums, perNum: insuredCount || data.insuredCount || data.perNum, totalPremium: totalPremium || data.totalPremium, comName: policyholder || data.policyholder || data.comName }; console.log('处理后的OCR数据:', processedData); // 返回标准格式的结果 return { success: true, data: processedData }; } else { console.error('保单OCR识别失败:', result.message || result.msg); return { success: false, message: result.message || result.msg || '保单OCR识别失败', data: null }; } } catch (error) { console.error('保单OCR识别示例执行失败:', error); throw error; } }