+
需求与影响
+
+ 已索引 {view.index.length} 份文档 · 条目 {view.items.length}
+ {view.hidden_count > 0 ? ` · 另有 ${view.hidden_count} 条不可见` : ''}
+
+ {view.recheck_marks.length > 0 && (
+
+ {view.recheck_marks.map((mark) => (
+ -
+ 阶段 {mark.stage_key} 待复核({mark.reason || mark.source_doc_id})
+
+
+ ))}
+
+ )}
+ {view.items.length > 0 && (
+
+ {view.items.slice(0, 8).map((item) => (
+ -
+ {item.business_key}
+ {item.statement ? ` · ${item.statement}` : ''}
+
+ ))}
+
+ )}
+
+ );
+};
+
+const boxStyle: React.CSSProperties = {
+ margin: '8px 12px 0',
+ padding: '10px 12px',
+ borderRadius: 8,
+ border: '1px solid var(--border, #e2e8f0)',
+ background: 'var(--bg-subtle, #f8fafc)',
+ fontSize: 12,
+};
diff --git a/web/src/components/workflow/StageAdvanceBanner.tsx b/web/src/components/workflow/StageAdvanceBanner.tsx
index 80d9c198..21d31861 100644
--- a/web/src/components/workflow/StageAdvanceBanner.tsx
+++ b/web/src/components/workflow/StageAdvanceBanner.tsx
@@ -7,6 +7,7 @@ import {
advanceStage,
} from '../../api/projectSettings';
import { StageReadiness } from '../../types/projectSettings';
+import { canSubmitAdvance, recheckAckRequired } from '../../lib/recheckAck';
interface StageAdvanceBannerProps {
projectId: number;
@@ -25,6 +26,7 @@ export const StageAdvanceBanner: React.FC