From 48ee6b382f1eef035c3666a5ef022c2a78c35a41 Mon Sep 17 00:00:00 2001 From: hailin Date: Wed, 9 Jul 2025 22:29:55 +0800 Subject: [PATCH] . --- apps/blogai/app/api/health/route.ts | 2 +- apps/blogai/components/header.tsx | 67 ++++++++++++++++++++++++----- 2 files changed, 58 insertions(+), 11 deletions(-) diff --git a/apps/blogai/app/api/health/route.ts b/apps/blogai/app/api/health/route.ts index 5bc9053..857f5a5 100644 --- a/apps/blogai/app/api/health/route.ts +++ b/apps/blogai/app/api/health/route.ts @@ -36,7 +36,7 @@ export async function GET() { return NextResponse.json({ status: 'ok', ip, - version: '1.0.1', // ✅ 新增版本号字段 + version: '1.0.2', // ✅ 新增版本号字段 name: 'cradle', }) } diff --git a/apps/blogai/components/header.tsx b/apps/blogai/components/header.tsx index 33ac208..81118ff 100644 --- a/apps/blogai/components/header.tsx +++ b/apps/blogai/components/header.tsx @@ -455,6 +455,13 @@ export function DetailPageHeader({ data }: { data: any }) { //软件更新 const handleDownloadNewVersion = async () => { + + // ➜ digest 为空(没版本信息)⇒ 直接调用下载 + if (!data?.extra_data?.digest) { + await downloadModel(); + return; + } + const download_url = data?.extra_data?.download_url; let callback_url = data?.extra_data?.callback_url; const digest = data?.extra_data?.digest; @@ -508,6 +515,56 @@ export function DetailPageHeader({ data }: { data: any }) { } }; +// ================= 下载模型 ================= + const downloadModel = async () => { + try { + const download_url = data?.extra_data?.download_url; + let callback_url = data?.extra_data?.callback_url; + const digest = data?.extra_data?.digest; + const version = data?.extra_data?.version; + const size = data?.extra_data?.size; + const date1 = data?.extra_data?.date; + const id = data?.org_id; + + if (!download_url || !size || !id) { + message.warning("缺少必要的下载参数"); + return; + } + + console.log("📥 调用下载接口...", { url: download_url, size, id }); + const apiHost = getApiBaseUrl(); + callback_url = "http://127.0.0.1:8083/api/v1/cloud/callback"; + + const res = await fetch(`${apiHost}/api/v1/cloud/download`, { + method : "POST", + headers: { "Content-Type": "application/json" }, + body : JSON.stringify({ + date: String(date1), + url : download_url, + callback_url, + digest, + version, + size, + id, + }), + }); + + const result = await res.json(); + console.log("✅ 下载接口返回:", result); + + if (result?.header?.code === 0) { + const percent = (parseFloat(result?.data?.percent ?? "0") * 100).toFixed(1); + setDownloadPercent(percent); + setShowDownloadBar(true); + message.success(`📦 下载进度:${percent}%`); + } else { + message.warning(`❌ 下载失败:${result?.header?.message || "未知错误"}`); + } + } catch (err) { + console.error("❌ 下载请求异常:", err); + message.error("请求出错,无法下载"); + } + }; useEffect(() => { fetchDeployStatus(); @@ -569,16 +626,6 @@ export function DetailPageHeader({ data }: { data: any }) {
{hasNonEmptyExtraData && ( - //