feat: ServerManager 死按钮清理+CSV导出+统计卡片提取; 审批/导航后端拆分; DialogDescription修复; AppRelease重试按钮实现

This commit is contained in:
attacker committed 2026-06-16 01:07:43 +08:00
1 parent f5bda8b03b
commit be529c8c36
14 files changed
+615 -576

No files matched your search

+32 -8
View File
@@ -53,7 +53,6 @@ import {
Loader2,
ArrowLeft,
ArrowRight,
Terminal,
} from 'lucide-react';
import { releaseApi } from '@/services/api';
import { toast } from 'sonner';
@@ -416,7 +415,20 @@ export function AppReleaseManager() {
详情
</Button>
{release.status === 'failed' && (
<Button variant="ghost" size="sm" className="h-8 text-slate-400 hover:text-blue-400">
<Button
variant="ghost"
size="sm"
className="h-8 text-slate-400 hover:text-blue-400"
onClick={async () => {
try {
await releaseApi.deployRelease(release.id);
toast.success('已重新触发部署');
loadData();
} catch {
toast.error('重新部署失败');
}
}}
>
<RotateCcw className="h-4 w-4 mr-1" />
重试
</Button>
@@ -521,14 +533,26 @@ export function AppReleaseManager() {
</div>
<DialogFooter>
<Button variant="outline" className="border-slate-700 text-slate-300">
<Terminal className="h-4 w-4 mr-2" />
查看完整日志
</Button>
{selectedRelease?.status === 'failed' && (
<Button className="bg-blue-600 hover:bg-blue-700 text-white">
<Button
className="bg-blue-600 hover:bg-blue-700 text-white"
onClick={async () => {
try {
setSubmitting(true);
await releaseApi.deployRelease(selectedRelease.id);
toast.success('已重新触发部署');
setSelectedRelease(null);
loadData();
} catch {
toast.error('重新部署失败');
} finally {
setSubmitting(false);
}
}}
disabled={submitting}
>
<RotateCcw className="h-4 w-4 mr-2" />
重新发布
重新部署
</Button>
)}
</DialogFooter>