diff --git a/atsf_server/web/features/config-versions/components/config-versions-page.tsx b/atsf_server/web/features/config-versions/components/config-versions-page.tsx index 45b8a16b..f2f13200 100644 --- a/atsf_server/web/features/config-versions/components/config-versions-page.tsx +++ b/atsf_server/web/features/config-versions/components/config-versions-page.tsx @@ -168,12 +168,14 @@ function OptionDiffTable({ items }: { items: ConfigOptionDiffItem[] }) { function PublishPreviewCard({ preview, diff, + activeVersion, isPublishing, onConfirm, onCancel, }: { preview: ConfigPreviewResult; diff: ConfigDiffResult; + activeVersion: ConfigVersionItem | null; isPublishing: boolean; onConfirm: () => void; onCancel: () => void; @@ -261,6 +263,67 @@ function PublishPreviewCard({ + {diff.main_config_changed && activeVersion ? ( +
+
+
+

+ Current Active Main Config +

+ +
+ + {activeVersion.main_config} + +
+
+
+

+ Pending Main Config +

+

+ {`Checksum: ${preview.checksum}`} +

+
+ + {preview.main_config} + +
+
+ ) : null} + + {/* Legacy duplicated main config preview block kept commented out while + we replace it with an explicit active-vs-pending comparison above. + {diff.main_config_changed && activeVersion ? ( +
+
+
+

+ 褰撳墠婵€娲讳富閰嶇疆 +

+ +
+ + {activeVersion.main_config} + +
+
+
+

+ 寰呭彂甯冧富閰嶇疆 +

+

+ Checksum锛歿preview.checksum} +

+
+ + {preview.main_config} + +
+
+ ) : null} + */} +

@@ -335,6 +398,10 @@ export function ConfigVersionsPage() { () => versionsQuery.data ?? [], [versionsQuery.data], ); + const activeVersion = useMemo( + () => versions.find((item) => item.is_active) ?? null, + [versions], + ); const selectedVersion = useMemo( () => versions.find((item) => item.id === selectedVersionId) ?? null, [selectedVersionId, versions], @@ -426,6 +493,7 @@ export function ConfigVersionsPage() { publishMutation.mutate()} onCancel={() => setPublishPreview(null)} diff --git a/atsf_server/web/features/performance/components/performance-page.tsx b/atsf_server/web/features/performance/components/performance-page.tsx index 100cd6da..5a10f658 100644 --- a/atsf_server/web/features/performance/components/performance-page.tsx +++ b/atsf_server/web/features/performance/components/performance-page.tsx @@ -879,7 +879,7 @@ export function PerformancePage() {

-
+
-
+
0 || + diff.removed_domains.length > 0 || + diff.modified_domains.length > 0 || + diff.main_config_changed || + diff.changed_option_keys.length > 0 || + !diff.active_version + ); +} + function getErrorMessage(error: unknown) { return error instanceof Error ? error.message : '请求失败,请稍后重试。'; } @@ -314,13 +332,7 @@ export function ProxyRoutesPage() { try { const diff = await getConfigVersionDiff(); - const hasChanges = - diff.added_domains.length > 0 || - diff.removed_domains.length > 0 || - diff.modified_domains.length > 0 || - !diff.active_version; - - if (!hasChanges) { + if (!hasConfigChanges(diff)) { setFeedback({ tone: 'info', message: '当前规则没有变更,已阻止重复发布。',