完成智慧法务前端调整20250522,还有登录和主页需要完善
This commit is contained in:
@@ -118,8 +118,27 @@ export function ExtractionSettings({
|
||||
// 自动保存字段变更状态
|
||||
// 这个效果确保添加字段后自动保存到组件状态,但不自动提交更新
|
||||
useEffect(() => {
|
||||
setHasPendingChanges(true);
|
||||
}, [fields, regexFields, promptContent])
|
||||
// 初始加载时不设置hasPendingChanges为true
|
||||
// 仅当用户进行了实际修改后才标记为有变更
|
||||
const initialLlmFields = initialData?.extraction_config?.llm?.fields || [];
|
||||
const initialVlmFields = initialData?.extraction_config?.vlm?.fields || [];
|
||||
const initialRegexFields = initialData?.extraction_config?.regex?.fields || [];
|
||||
const initialLlmPrompt = initialData?.extraction_config?.llm?.prompt_setting?.template || '';
|
||||
const initialVlmPrompt = initialData?.extraction_config?.vlm?.prompt_setting?.template || '';
|
||||
|
||||
// 检查是否有实际变化
|
||||
const hasLlmFieldsChanged = JSON.stringify(fields.llm) !== JSON.stringify(initialLlmFields);
|
||||
const hasVlmFieldsChanged = JSON.stringify(fields.vlm) !== JSON.stringify(initialVlmFields);
|
||||
const hasRegexFieldsChanged = JSON.stringify(regexFields) !== JSON.stringify(initialRegexFields);
|
||||
const hasPromptContentChanged =
|
||||
promptContent.llm !== initialLlmPrompt ||
|
||||
promptContent.vlm !== initialVlmPrompt;
|
||||
|
||||
// 只有实际发生变化时才设置为true
|
||||
if (hasLlmFieldsChanged || hasVlmFieldsChanged || hasRegexFieldsChanged || hasPromptContentChanged) {
|
||||
setHasPendingChanges(true);
|
||||
}
|
||||
}, [fields, regexFields, promptContent, initialData])
|
||||
|
||||
// 处理字段输入变化
|
||||
const handleFieldInputChange = (
|
||||
@@ -541,7 +560,7 @@ export function ExtractionSettings({
|
||||
<label className="form-label mb-1" htmlFor="field-input">
|
||||
抽取字段
|
||||
</label>
|
||||
<div className="flex mb-2">
|
||||
<div className="flex">
|
||||
<input
|
||||
type="text"
|
||||
className="form-input mr-2"
|
||||
@@ -561,6 +580,9 @@ export function ExtractionSettings({
|
||||
添加
|
||||
</button>
|
||||
</div>
|
||||
<div className="form-tip mb-2 text-xs">
|
||||
支持一次输入多个字段,用逗号、空格或顿号分隔
|
||||
</div>
|
||||
<div className="chips-container" id="fields-container">
|
||||
{fields.llm.map((field, index) => (
|
||||
<div className="chip" key={`llm-field-${index}`}>
|
||||
@@ -581,9 +603,7 @@ export function ExtractionSettings({
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
<div className="form-tip mt-1 text-xs">
|
||||
支持一次输入多个字段,用逗号、空格或顿号分隔
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -666,11 +686,18 @@ export function ExtractionSettings({
|
||||
].map((variable) => (
|
||||
<button
|
||||
key={variable}
|
||||
type="button"
|
||||
type="button"
|
||||
className="var-tag"
|
||||
onClick={() => applyVariableToPrompt(variable, "llm")}
|
||||
>
|
||||
{variable}
|
||||
{variable=='docType' ? '文档类型:{docType}':
|
||||
variable=='fieldsList' ? '抽取字段列表:{fieldsList}':
|
||||
variable=='companyName' ? '公司名称:{companyName}':
|
||||
variable=='documentId' ? '文档编号:{documentId}':
|
||||
variable=='date' ? '日期:{date}':
|
||||
variable=='industry' ? '行业:{industry}':
|
||||
variable=='ocrText' ? 'OCR文本:{ocrText}':
|
||||
variable}
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
@@ -692,7 +719,7 @@ export function ExtractionSettings({
|
||||
<label className="form-label mb-1" htmlFor="field-input-vlm">
|
||||
抽取字段与类型
|
||||
</label>
|
||||
<div className="flex mb-2">
|
||||
<div className="flex">
|
||||
<input
|
||||
type="text"
|
||||
className="form-input mr-2"
|
||||
@@ -713,6 +740,9 @@ export function ExtractionSettings({
|
||||
添加
|
||||
</button>
|
||||
</div>
|
||||
<div className="form-tip mb-2 text-xs">
|
||||
请为每个字段选择适当的抽取类型,有助于提高识别准确率
|
||||
</div>
|
||||
<div className="chips-container" id="fields-container-vlm">
|
||||
{fields.vlm.map((field, index) => {
|
||||
const { fieldName, fieldType, typeName, badgeClass } =
|
||||
@@ -747,9 +777,7 @@ export function ExtractionSettings({
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
<div className="form-tip mt-1 text-xs">
|
||||
请为每个字段选择适当的抽取类型,有助于提高识别准确率
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -843,7 +871,17 @@ export function ExtractionSettings({
|
||||
className="var-tag"
|
||||
onClick={() => applyVariableToPrompt(variable, "vlm")}
|
||||
>
|
||||
{variable}
|
||||
{variable=='docType' ? '文档类型:{docType}':
|
||||
variable=='fieldsList' ? '抽取字段列表:{fieldsList}':
|
||||
variable=='companyName' ? '公司名称:{companyName}':
|
||||
variable=='documentId' ? '文档编号:{documentId}':
|
||||
variable=='date' ? '日期:{date}':
|
||||
variable=='industry' ? '行业:{industry}':
|
||||
variable=='contentType' ? '内容类型:{contentType}':
|
||||
variable=='pageRange' ? '页面范围:{pageRange}':
|
||||
variable=='colorMode' ? '色彩模式:{colorMode}':
|
||||
variable=='ocrText' ? 'OCR文本:{ocrText}':
|
||||
variable}
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user