feat: 1. 实现一键替换。
2. 优化追加附件和模板上传的样式。
This commit is contained in:
@@ -337,6 +337,11 @@ export default function CrossCheckingResult() {
|
||||
const [targetPage, setTargetPage] = useState<number | undefined>(undefined);
|
||||
const [charPositions, setCharPositions] = useState<CharPosition[] | undefined>(undefined);
|
||||
const [localScoringProposals, setLocalScoringProposals] = useState<ScoringProposal[]>(scoring_proposals || []); // 本地状态管理scoringProposals
|
||||
const [aiSuggestionReplace, setAiSuggestionReplace] = useState<{
|
||||
searchText: string;
|
||||
replaceText: string;
|
||||
pageNumber: number;
|
||||
} | undefined>(undefined);
|
||||
|
||||
// 使用ref来跟踪loading状态,避免不必要的重新渲染
|
||||
const isProcessingRef = useRef(false);
|
||||
@@ -432,6 +437,19 @@ export default function CrossCheckingResult() {
|
||||
setCharPositions(charPositions);
|
||||
}
|
||||
}, [activeReviewPointResultId]);
|
||||
|
||||
const handleAiSuggestionReplace = useCallback((searchText: string, replaceText: string, pageNumber: number) => {
|
||||
console.log('[CrossCheckingResult] AI建议替换:', { searchText, replaceText, pageNumber });
|
||||
setAiSuggestionReplace({
|
||||
searchText,
|
||||
replaceText,
|
||||
pageNumber
|
||||
});
|
||||
// 重置状态,避免重复触发
|
||||
setTimeout(() => {
|
||||
setAiSuggestionReplace(undefined);
|
||||
}, 1000);
|
||||
}, []);
|
||||
|
||||
|
||||
// 处理评审点状态变更
|
||||
@@ -760,6 +778,7 @@ export default function CrossCheckingResult() {
|
||||
activeReviewPointResultId={activeReviewPointResultId}
|
||||
targetPage={targetPage}
|
||||
charPositions={charPositions}
|
||||
aiSuggestionReplace={aiSuggestionReplace}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -775,6 +794,8 @@ export default function CrossCheckingResult() {
|
||||
jwtToken={jwtToken}
|
||||
userInfo={userInfo}
|
||||
onOpinionSubmitted={handleOpinionSubmitted}
|
||||
fileFormat={reviewData.fileInfo.fileFormat}
|
||||
onAiSuggestionReplace={handleAiSuggestionReplace}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user