分数,评查点分组数据对接上

This commit is contained in:
2025-04-07 19:41:22 +08:00
parent 8885aec931
commit 046dd109e0
7 changed files with 1403 additions and 448 deletions
@@ -1,5 +1,6 @@
import { useState, KeyboardEvent, FormEvent, useContext, useEffect, useCallback, useRef } from 'react';
import { RuleContext } from './ReviewSettings';
import { RuleContext } from '~/contexts/RuleContext';
import { processFieldName } from '~/utils';
/**
* ExtractionSettings 组件
@@ -169,7 +170,7 @@ export function ExtractionSettings({ onChange, initialData }: ExtractionSettings
// 获取所有字段(不包括regexFields,这部分单独处理)
const llm_ocr_fields = fields.llm_ocr || [];
const llm_fields = (fields.llm || []).map((field) => field.split('_')[0]);
const llm_fields = (fields.llm || []).map(processFieldName);
// 检查是否在其他类型字段中存在
if (llm_ocr_fields.some(f => f.toLowerCase() === fieldNameLower) ||
@@ -202,7 +203,7 @@ export function ExtractionSettings({ onChange, initialData }: ExtractionSettings
// 收集所有字段名 - 不受当前标签页影响,始终收集所有类型的字段
const allFieldNamesList = [
...fields.llm_ocr,
...fields.llm.map(f => f.split('_')[0]),
...fields.llm.map(f => processFieldName(f)),
...validRegexFields.map(f => f.fieldName.trim())
].filter(name => name); // 过滤空值
@@ -250,20 +251,7 @@ export function ExtractionSettings({ onChange, initialData }: ExtractionSettings
});
}
// 分发自定义事件,确保更新到所有依赖此事件的组件
document.dispatchEvent(
new CustomEvent('extraction-fields-updated', {
detail: {
fields: allFields,
fieldsData: {
llm_ocr: fields.llm_ocr || [],
llm: fields.llm || [],
regex: validRegexFields.map(f => f.fieldName.trim())
},
timestamp: Date.now() // 添加时间戳确保事件能被识别为新事件
},
})
);
// 不再使用自定义事件,统一通过Context共享数据
// 更新上次发送的字段列表和时间
lastEventFieldsRef.current = [...allFields];