musicTemplateReview.html 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <!doctype html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>音乐模板候选视觉复核</title>
  7. <style>
  8. * { box-sizing: border-box; }
  9. body { margin: 0; padding: 24px; background: #e9edf2; color: #172231; font-family: "Microsoft Yahei", sans-serif; }
  10. h1 { margin: 0 0 20px; font-size: 25px; }
  11. .candidate { margin-bottom: 18px; padding: 14px; background: #fff; border-radius: 12px; box-shadow: 0 4px 14px rgba(20, 32, 48, .1); }
  12. .meta { display: flex; align-items: baseline; gap: 14px; margin-bottom: 10px; }
  13. .id { color: #167b70; font-size: 18px; font-weight: 700; }
  14. .name { overflow: hidden; font-size: 17px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
  15. .score { margin-left: auto; color: #6a7685; font-size: 14px; }
  16. .slides { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
  17. img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: #eef1f4; border: 1px solid #dce2e8; }
  18. </style>
  19. </head>
  20. <body>
  21. <h1 id="title">音乐模板候选视觉复核</h1>
  22. <main id="content"></main>
  23. <script type="module">
  24. const scene = new URLSearchParams(location.search).get("scene") || "general"
  25. const response = await fetch("/artifacts/music-template-extraction/review/manifest.json")
  26. const data = await response.json()
  27. const items = data.items.filter(item => item.scene === scene)
  28. document.querySelector("#title").textContent = `${scene} · ${items.length} 套候选`
  29. document.querySelector("#content").innerHTML = items.map(item => `
  30. <section class="candidate">
  31. <div class="meta"><span class="id">${item.id}</span><span class="name">${item.name}</span><span class="score">结构分 ${item.score}</span></div>
  32. <div class="slides">${item.samples.map(file => `<img src="/artifacts/music-template-extraction/review/${item.id}/${file}" alt="${item.id}">`).join("")}</div>
  33. </section>
  34. `).join("")
  35. </script>
  36. </body>
  37. </html>