feat: sync rule management and review ui fixes

This commit is contained in:
wren
2026-05-07 17:27:42 +08:00
parent 87e82d1caa
commit c00e5feff0
13 changed files with 565 additions and 161 deletions
+22 -11
View File
@@ -27,12 +27,13 @@ interface ReviewTabsProps {
comparisonId?: number;
};
onConfirmResults: () => void;
onExportReport?: () => void;
jwtToken?: string | null;
/** 下载前保存文档的回调,返回 true 表示保存成功可以继续下载 */
onSaveBeforeDownload?: () => Promise<boolean>;
}
export function ReviewTabs({ activeTab, onTabChange, children, fileInfo, onConfirmResults, jwtToken, onSaveBeforeDownload }: ReviewTabsProps) {
export function ReviewTabs({ activeTab, onTabChange, children, fileInfo, onConfirmResults, onExportReport, jwtToken, onSaveBeforeDownload }: ReviewTabsProps) {
const [isNavigating, setIsNavigating] = useState(false);
const [isReuploadModalOpen, setIsReuploadModalOpen] = useState(false);
const [selectedTemplateFiles, setSelectedTemplateFiles] = useState<File[]>([]);
@@ -58,14 +59,21 @@ export function ReviewTabs({ activeTab, onTabChange, children, fileInfo, onConfi
: previousRoute === 'filesUpload'
? "/files/upload"
: "/rules-files";
// 立即导航返回
navigate(returnTo);
// 触发上级页面数据重新加载
navigate(returnTo);
setTimeout(() => {
revalidator.revalidate();
setIsNavigating(false);
loadingBarService.hide();
}, 0);
};
// 下载原文件
const handleDownloadFile = async () => {
if (!fileInfo.path) {
toastService.warning('当前文档暂无可下载原文件');
return;
}
try {
// 如果有保存回调,先执行保存(仅对 DOCX 文件有效)
if (onSaveBeforeDownload) {
@@ -311,12 +319,15 @@ export function ReviewTabs({ activeTab, onTabChange, children, fileInfo, onConfi
</>
)}
</button>
{/* <button
className="ant-btn ant-btn-default flex items-center"
onClick={handleExportReport}
>
<i className="ri-file-copy-line mr-1"></i> 导出评查报告
</button> */}
{onExportReport && (
<button
className="ant-btn ant-btn-default inline-flex items-center my-2"
onClick={onExportReport}
disabled={isNavigating}
>
<i className="ri-file-copy-line mr-1"></i>
</button>
)}
<button
className={`ant-btn ant-btn-primary my-2 flex items-center ${fileInfo.auditStatus === 1 ? 'hidden' : ''}`}
onClick={onConfirmResults}
@@ -437,4 +448,4 @@ export function ReviewTabs({ activeTab, onTabChange, children, fileInfo, onConfi
</Modal>
</div>
);
}
}