完成智慧法务前端调整20250522,还有登录和主页需要完善

This commit is contained in:
2025-05-27 23:48:28 +08:00
parent 742a789244
commit 690d369f57
30 changed files with 1557 additions and 292 deletions
+51 -13
View File
@@ -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>