This commit is contained in:
hailin 2025-07-09 22:29:55 +08:00
parent 659f527012
commit 48ee6b382f
2 changed files with 58 additions and 11 deletions

View File

@ -36,7 +36,7 @@ export async function GET() {
return NextResponse.json({ return NextResponse.json({
status: 'ok', status: 'ok',
ip, ip,
version: '1.0.1', // ✅ 新增版本号字段 version: '1.0.2', // ✅ 新增版本号字段
name: 'cradle', name: 'cradle',
}) })
} }

View File

@ -455,6 +455,13 @@ export function DetailPageHeader({ data }: { data: any }) {
//软件更新 //软件更新
const handleDownloadNewVersion = async () => { const handleDownloadNewVersion = async () => {
// ➜ digest 为空(没版本信息)⇒ 直接调用下载
if (!data?.extra_data?.digest) {
await downloadModel();
return;
}
const download_url = data?.extra_data?.download_url; const download_url = data?.extra_data?.download_url;
let callback_url = data?.extra_data?.callback_url; let callback_url = data?.extra_data?.callback_url;
const digest = data?.extra_data?.digest; 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(() => { useEffect(() => {
fetchDeployStatus(); fetchDeployStatus();
@ -569,16 +626,6 @@ export function DetailPageHeader({ data }: { data: any }) {
<div className="flex items-center gap-[5px] self-end"> <div className="flex items-center gap-[5px] self-end">
{hasNonEmptyExtraData && ( {hasNonEmptyExtraData && (
// <button
// onClick={() => {
// console.log("🟢 点击了更新按钮extra_data = ", data.extra_data);
// // TODO: 后续处理逻辑写在这里
// }}
// className="hover:text-gray-700 transition self-end text-sm border border-gray-300 rounded px-2 py-1 bg-white"
// title="更新"
// >
// 🔄 更新
// </button>
<div className="flex flex-col items-center gap-[2px]"> <div className="flex flex-col items-center gap-[2px]">
<button <button
onClick={handleDownloadNewVersion} onClick={handleDownloadNewVersion}