2026-05-18-19-19-36 修复样例加载提示和favicon

This commit is contained in:
2026-05-18 19:21:10 +08:00
parent 77b8ecdfbe
commit e5f0b1dca9
6 changed files with 103 additions and 4 deletions

View File

@@ -46,9 +46,11 @@ function setBusy(isBusy, text = "运行分割") {
function setFile(file) {
selectedFile = file;
const transfer = new DataTransfer();
transfer.items.add(file);
fileInput.files = transfer.files;
if (typeof DataTransfer !== "undefined") {
const transfer = new DataTransfer();
transfer.items.add(file);
fileInput.files = transfer.files;
}
fileName.textContent = `${file.name} · ${(file.size / 1024 / 1024).toFixed(2)} MB`;
renderPreview(file);
}
@@ -180,15 +182,22 @@ function renderResults(data) {
async function loadSample() {
sampleButton.disabled = true;
sampleButton.textContent = "加载中";
emptyState.hidden = false;
emptyState.textContent = "正在加载内置样例视频。";
try {
const response = await fetch("/api/samples");
if (!response.ok) throw new Error("样例清单读取失败");
const data = await response.json();
const sample = data.samples.find((item) => item.kind === "video") || data.samples[0];
if (!sample) throw new Error("未找到样例文件");
const blobResponse = await fetch(sample.url);
if (!blobResponse.ok) throw new Error("样例文件下载失败");
const blob = await blobResponse.blob();
const file = new File([blob], sample.name, { type: sample.kind === "video" ? "video/mp4" : "image/png" });
setFile(file);
emptyState.textContent = "样例已加载。点击左侧“运行分割”即可生成导丝掩膜和叠加结果。";
} catch (error) {
emptyState.textContent = error.message || "样例加载失败";
} finally {
sampleButton.disabled = false;
sampleButton.textContent = "加载样例";