|
|
|
@ -501,10 +501,7 @@ |
|
|
|
|
// 创建分类请求 |
|
|
|
|
const createRequests = (apiPath, files) => { |
|
|
|
|
return files.map(file => { |
|
|
|
|
// 固定测试接口 |
|
|
|
|
// return axios.post(apiPath, { filePath: file.url }) |
|
|
|
|
return apiPath(file.url) |
|
|
|
|
|
|
|
|
|
.then(res => { |
|
|
|
|
this.progress.current++; |
|
|
|
|
this.progress.text = `识别进度 ${this.progress.current}/${this.progress.total}`; |
|
|
|
@ -512,8 +509,9 @@ |
|
|
|
|
}) |
|
|
|
|
.catch(e => { |
|
|
|
|
console.error(`${file.url}识别失败:`, e); |
|
|
|
|
this.progress.current++; // 失败也计入进度 |
|
|
|
|
return Promise.reject(e); |
|
|
|
|
this.progress.current++; |
|
|
|
|
// 关键修改:返回空对象而不是 reject |
|
|
|
|
return { extractedData: null }; // 标记失败 |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
}; |
|
|
|
@ -522,9 +520,12 @@ |
|
|
|
|
Promise.all(createRequests(TicketSortApi.analyze, this.usageFiles)) |
|
|
|
|
]); |
|
|
|
|
console.log('并行结果', basicResults, usageResults); |
|
|
|
|
|
|
|
|
|
const validResults = [].concat(basicResults, usageResults) |
|
|
|
|
.filter(item => item?.extractedData !== null); |
|
|
|
|
// 3. 过滤失败结果并合并数据 |
|
|
|
|
// 修改合并逻辑为: |
|
|
|
|
const mergedData = [].concat(basicResults, usageResults).reduce((acc, item) => { |
|
|
|
|
const mergedData = validResults.reduce((acc, item) => { |
|
|
|
|
if (item?.extractedData) { |
|
|
|
|
// 处理数组类型的extractedData |
|
|
|
|
if (Array.isArray(item.extractedData)) { |
|
|
|
|