添加登录内容,尚未完善,先创建分支

This commit is contained in:
2025-07-14 12:31:43 +08:00
parent e3109423d4
commit fff474f46b
25 changed files with 2693 additions and 1102 deletions
+37 -14
View File
@@ -39,7 +39,8 @@ import {
FilePreview,
ReviewPointsList,
AIAnalysis,
FileDetails
FileDetails,
Comparison
} from "~/components/reviews";
// 从ReviewPointsList组件中导入ReviewPoint类型
@@ -200,7 +201,8 @@ export async function loader({ request }: LoaderFunctionArgs) {
document: reviewData.document,
reviewPoints: reviewData.data,
reviewInfo: reviewData.reviewInfo,
statistics: reviewData.stats
statistics: reviewData.stats,
comparison_document: reviewData.comparison_document
});
} else {
console.error("返回的评查数据格式不正确",JSON.stringify(reviewData,null,2));
@@ -215,12 +217,13 @@ export async function loader({ request }: LoaderFunctionArgs) {
export default function ReviewDetails() {
const navigate = useNavigate();
const loaderData = useLoaderData<typeof loader>();
const { document, reviewPoints, statistics, reviewInfo } = loaderData;
const { document, reviewPoints, statistics, reviewInfo, comparison_document } = loaderData;
const [isLoading, setIsLoading] = useState(false); // 已经通过loader加载了数据,不需要再显示加载状态
const [activeTab, setActiveTab] = useState<string>('preview'); // 'preview', 'analysis', 'fileinfo'
const [reviewData, setReviewData] = useState<ReviewData | null>(null);
const [activeReviewPointResultId, setActiveReviewPointResultId] = useState<string | null>(null);
const [targetPage, setTargetPage] = useState<number | undefined>(undefined);
const [templateTargetPage, setTemplateTargetPage] = useState<number | undefined>(undefined);
// loader 数据加载出错
useEffect(()=>{
@@ -584,6 +587,7 @@ export default function ReviewDetails() {
activeTab={activeTab}
onTabChange={handleTabChange}
fileInfo={{
id: document?.id,
previousRoute: loaderData.previousRoute,
path: document?.path,
auditStatus: document?.auditStatus,
@@ -621,7 +625,7 @@ export default function ReviewDetails() {
{activeTab === 'filecompare' && (
<div className="flex flex-col lg:flex-row space-y-4 lg:space-y-0 lg:space-x-4">
{/* 左侧:原文件预览 */}
<div className="w-full lg:w-[38%]">
<div className={`w-full ${comparison_document.template_contract_path ? 'lg:w-[38%]' : 'lg:w-[56%]'}`}>
<FilePreview
fileContent={document}
reviewPoints={reviewData.reviewPoints}
@@ -631,24 +635,43 @@ export default function ReviewDetails() {
</div>
{/* 中间:附件文件预览 */}
<div className="w-full lg:w-[38%]">
<div className={`w-full ${comparison_document.template_contract_path ? 'lg:w-[38%]' : 'lg:w-[20%]'}`}>
<FilePreview
fileContent={document}
fileContent={comparison_document}
reviewPoints={[]}
activeReviewPointResultId={activeReviewPointResultId}
targetPage={targetPage}
targetPage={templateTargetPage}
isStructuredView={true}
/>
</div>
{/* 右侧:评查结果 */}
{/* 右侧:结构比较结果 */}
<div className="w-full lg:w-[24%]">
<ReviewPointsList
reviewPoints={reviewData.reviewPoints}
statistics={reviewData.statistics}
activeReviewPointResultId={activeReviewPointResultId}
onReviewPointSelect={handleReviewPointSelect}
onStatusChange={handleReviewPointStatusChange}
<Comparison
comparison_document={comparison_document}
onPageJump={(sourcePage, templatePage) => {
// 同时处理主文件和模板文件的页码跳转
if (sourcePage > 0) {
// 如果目标页码与当前页码相同,先重置再设置以强制触发更新
if (sourcePage === targetPage) {
setTargetPage(undefined);
setTimeout(() => setTargetPage(sourcePage), 0);
} else {
setTargetPage(sourcePage);
}
console.log(`跳转到主文件第${sourcePage}`);
}
if (templatePage > 0) {
// 如果目标页码与当前页码相同,先重置再设置以强制触发更新
if (templatePage === templateTargetPage) {
setTemplateTargetPage(undefined);
setTimeout(() => setTemplateTargetPage(templatePage), 0);
} else {
setTemplateTargetPage(templatePage);
}
console.log(`跳转到模板文件第${templatePage}`);
}
}}
/>
</div>
</div>