This commit is contained in:
parent
6ce87f07f4
commit
3089329514
|
|
@ -166,6 +166,9 @@ export function DetailPageHeader({ data }: { data: any }) {
|
|||
const [currentStatus, setCurrentStatus] = useState(""); // 当前部署状态:running / stopped
|
||||
const [switchLoading, setSwitchLoading] = useState(false); // 控制按钮 loading 状态
|
||||
|
||||
const [downloadPercent, setDownloadPercent] = useState("0"); // 下载百分比(0 ~ 100)
|
||||
const [showDownloadBar, setShowDownloadBar] = useState(false);
|
||||
|
||||
const socketRef = useRef<WebSocket | null>(null);
|
||||
|
||||
const { t } = useTranslation();
|
||||
|
|
@ -551,11 +554,12 @@ export function DetailPageHeader({ data }: { data: any }) {
|
|||
</button>
|
||||
)} */}
|
||||
|
||||
{!data?.model_parameter && (
|
||||
{/* {!data?.model_parameter && (
|
||||
<button
|
||||
onClick={async () => {
|
||||
try {
|
||||
const download_url = data?.extra_data?.download_url;
|
||||
const callback_url = data?.extra_data?.callback_url;
|
||||
const size = data?.extra_data?.size;
|
||||
const id = data?.id;
|
||||
|
||||
|
|
@ -573,6 +577,7 @@ export function DetailPageHeader({ data }: { data: any }) {
|
|||
},
|
||||
body: JSON.stringify({
|
||||
url: download_url,
|
||||
callback_url: callback_url,
|
||||
size: size,
|
||||
id: id,
|
||||
}),
|
||||
|
|
@ -600,6 +605,76 @@ export function DetailPageHeader({ data }: { data: any }) {
|
|||
>
|
||||
<CloudDownload size={20} />
|
||||
</button>
|
||||
)} */}
|
||||
|
||||
|
||||
{!data?.model_parameter && (
|
||||
<div className="flex flex-col items-center gap-[2px]">
|
||||
{/* 下载按钮 */}
|
||||
<button
|
||||
onClick={async () => {
|
||||
try {
|
||||
const download_url = data?.extra_data?.download_url;
|
||||
const callback_url = data?.extra_data?.callback_url;
|
||||
const size = data?.extra_data?.size;
|
||||
const id = data?.id;
|
||||
|
||||
if (!download_url || !size || !id) {
|
||||
message.warning("缺少必要的下载参数");
|
||||
return;
|
||||
}
|
||||
|
||||
console.log("📥 调用下载接口...", { url: download_url, size, id });
|
||||
|
||||
const res = await fetch("https://ai.szaiai.com/api/v1/cloud/download", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({
|
||||
url: download_url,
|
||||
callback_url: callback_url,
|
||||
size: size,
|
||||
id: id,
|
||||
}),
|
||||
});
|
||||
|
||||
const result = await res.json();
|
||||
console.log("✅ 下载接口返回:", result);
|
||||
|
||||
if (result?.header?.code === 0) {
|
||||
const percentStr = result?.data?.percent ?? "0";
|
||||
const percentNum = parseFloat(percentStr);
|
||||
const percent = (percentNum * 100).toFixed(1);
|
||||
|
||||
setDownloadPercent(percent);
|
||||
setShowDownloadBar(true);
|
||||
|
||||
message.success(`📦 下载进度:${percent}%`);
|
||||
} else {
|
||||
message.warning(`❌ 下载失败:${result?.header?.message || "未知错误"}`);
|
||||
}
|
||||
} catch (err) {
|
||||
console.error("❌ 下载请求异常:", err);
|
||||
message.error("请求出错,无法下载");
|
||||
}
|
||||
}}
|
||||
className="hover:text-gray-700 transition self-end"
|
||||
title="下载模型文件"
|
||||
>
|
||||
<CloudDownload size={20} />
|
||||
</button>
|
||||
|
||||
{/* 下载进度条(紧贴按钮) */}
|
||||
{showDownloadBar && (
|
||||
<div className="w-[20px] h-[4px] bg-gray-200 rounded overflow-hidden">
|
||||
<div
|
||||
className="h-full bg-blue-500 transition-all duration-300"
|
||||
style={{ width: `${downloadPercent}%` }}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue