合并代码
This commit is contained in:
+44
-18
@@ -178,8 +178,10 @@ export async function loader({ request }: LoaderFunctionArgs) {
|
||||
const url = new URL(request.url);
|
||||
const id = url.searchParams.get('id') || undefined;
|
||||
const previousRoute = url.searchParams.get('previousRoute') || '';
|
||||
// console.log("id-------",id);
|
||||
// console.log("[Reviews Loader] 开始加载,id:", id, "previousRoute:", previousRoute);
|
||||
|
||||
if (!id) {
|
||||
console.error("[Reviews Loader] 文件ID不能为空");
|
||||
return Response.json({ result: false, message: '文件ID不能为空' });
|
||||
}
|
||||
|
||||
@@ -190,16 +192,13 @@ export async function loader({ request }: LoaderFunctionArgs) {
|
||||
// 获取评查点数据,传递request对象
|
||||
const reviewData = await getReviewPoints(id, request);
|
||||
|
||||
// console.log("documentData-------",JSON.stringify(documentData.data,null,2));
|
||||
// console.log("reviewData-------",JSON.stringify('data' in reviewData ? reviewData.data : '',null,2));
|
||||
if ('error' in reviewData && reviewData.error) {
|
||||
console.error("获取评查点数据错误:", reviewData.error);
|
||||
console.error("[Reviews Loader] 获取评查点数据错误:", reviewData.error);
|
||||
return Response.json({ result: false, message: reviewData.error });
|
||||
}
|
||||
|
||||
// 确保reviewData有效且具有预期的属性
|
||||
if ('document' in reviewData && 'data' in reviewData && 'reviewInfo' in reviewData && 'stats' in reviewData) {
|
||||
// console.log("reviewData-------",JSON.stringify(reviewData.data));
|
||||
return Response.json({
|
||||
previousRoute: previousRoute,
|
||||
document: reviewData.document,
|
||||
@@ -211,12 +210,13 @@ export async function loader({ request }: LoaderFunctionArgs) {
|
||||
frontendJWT
|
||||
});
|
||||
} else {
|
||||
console.error("返回的评查数据格式不正确",JSON.stringify(reviewData,null,2));
|
||||
console.error("[Reviews Loader] 返回的评查数据格式不正确,完整数据:", JSON.stringify(reviewData, null, 2));
|
||||
return Response.json({ result: false, message: '返回的评查数据格式不正确' });
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取评查数据失败:', error);
|
||||
return Response.json({ result: false, message: '获取评查数据失败' });
|
||||
console.error('[Reviews Loader] 获取评查数据失败:', error);
|
||||
console.error('[Reviews Loader] 错误堆栈:', error instanceof Error ? error.stack : '无堆栈信息');
|
||||
return Response.json({ result: false, message: `获取评查数据失败: ${error instanceof Error ? error.message : '未知错误'}` });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -226,7 +226,7 @@ export async function action({ request }: ActionFunctionArgs) {
|
||||
const formData = await request.formData();
|
||||
const intent = formData.get("intent") as string;
|
||||
|
||||
console.log('Action接收到请求, intent:', intent);
|
||||
// console.log('Action接收到请求, intent:', intent);
|
||||
|
||||
if (intent === "updateReviewResult") {
|
||||
const reviewPointResultId = formData.get("reviewPointResultId") as string;
|
||||
@@ -292,8 +292,18 @@ export async function action({ request }: ActionFunctionArgs) {
|
||||
export default function ReviewDetails() {
|
||||
const navigate = useNavigate();
|
||||
const loaderData = useLoaderData<typeof loader>();
|
||||
|
||||
// 调试:查看loaderData内容 - 强制刷新
|
||||
console.log('[Reviews Component] loaderData keys:', Object.keys(loaderData));
|
||||
console.log('[Reviews Component] loaderData:', loaderData);
|
||||
|
||||
const fetcher = useFetcher();
|
||||
const { document, reviewPoints, statistics, reviewInfo, comparison_document, frontendJWT } = loaderData;
|
||||
|
||||
// 调试:查看解构后的数据
|
||||
console.log('[Reviews Component] 解构后的document:', document);
|
||||
console.log('[Reviews Component] 解构后的reviewPoints length:', reviewPoints?.length);
|
||||
|
||||
const [isLoading, setIsLoading] = useState(false); // 已经通过loader加载了数据,不需要再显示加载状态
|
||||
const [activeTab, setActiveTab] = useState<string>('preview'); // 'preview', 'analysis', 'fileinfo'
|
||||
const [reviewData, setReviewData] = useState<ReviewData | null>(null);
|
||||
@@ -306,10 +316,15 @@ export default function ReviewDetails() {
|
||||
newStatus: string;
|
||||
message: string;
|
||||
} | null>(null);
|
||||
|
||||
|
||||
// loader 数据加载出错
|
||||
useEffect(()=>{
|
||||
loadingBarService.hide();
|
||||
console.log('[Reviews Component] useEffect检查loaderData:', {
|
||||
hasResultKey: Object.keys(loaderData).find(key => key === 'result'),
|
||||
resultValue: loaderData.result,
|
||||
willNavigateBack: Object.keys(loaderData).find(key => key === 'result') && !loaderData.result
|
||||
});
|
||||
if(Object.keys(loaderData).find(key => key === 'result') && !loaderData.result){
|
||||
messageService.show({
|
||||
title: '错误',
|
||||
@@ -717,15 +732,26 @@ export default function ReviewDetails() {
|
||||
<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-[65%]">
|
||||
<FilePreview
|
||||
fileContent={document}
|
||||
reviewPoints={reviewData.reviewPoints}
|
||||
activeReviewPointResultId={activeReviewPointResultId}
|
||||
targetPage={targetPage}
|
||||
charPositions={charPositions}
|
||||
/>
|
||||
{(() => {
|
||||
console.log('[Reviews] 准备渲染FilePreview', {
|
||||
hasDocument: !!document,
|
||||
documentPath: document?.path,
|
||||
targetPage,
|
||||
hasCharPositions: !!charPositions,
|
||||
charPositionsLength: charPositions?.length
|
||||
});
|
||||
return (
|
||||
<FilePreview
|
||||
fileContent={document}
|
||||
reviewPoints={reviewData.reviewPoints}
|
||||
activeReviewPointResultId={activeReviewPointResultId}
|
||||
targetPage={targetPage}
|
||||
charPositions={charPositions}
|
||||
/>
|
||||
);
|
||||
})()}
|
||||
</div>
|
||||
|
||||
|
||||
{/* 右侧:评查结果 */}
|
||||
<div className="w-full lg:w-[35%]">
|
||||
<ReviewPointsList
|
||||
|
||||
Reference in New Issue
Block a user