feat: 统一文件上传接口 + 模板图片展示 + 导航页 + 侧边栏调整

This commit is contained in:
admin
2026-07-10 20:43:02 +08:00
parent cbd0430452
commit ce6823e282
25 changed files with 933 additions and 166 deletions

View File

@@ -800,10 +800,12 @@ async function apiSongDetail(id){
/* ---------- 渲染:封面元素 ---------- */
function coverHTML(song,cls){
const grad = coverGradient(song.title+song.artist);
const pos = cls === '' ? 'position:absolute;inset:0;' : '';
if(song.cover){
return `<div class="${cls}" style="background:url('${escapeHtml(song.cover)}') center/cover"></div>`;
return `<div class="${cls}" style="${pos}background:${grad};overflow:hidden"><img src="${escapeHtml(song.cover)}" alt="" style="position:absolute;inset:0;width:100%;height:100%;object-fit:cover" onerror="this.style.display='none'"></div>`;
}
return `<div class="${cls}" style="background:${coverGradient(song.title+song.artist)}"></div>`;
return `<div class="${cls}" style="${pos}background:${grad}"></div>`;
}
/* ---------- 渲染:分类 ---------- */
@@ -1057,7 +1059,7 @@ let lastPlazaList=[];
function updateMiniUI(){
const s=player.song;if(!s) return;
const cov=document.getElementById('mpCover');
if(s.cover){ cov.innerHTML=`<img src="${escapeHtml(s.cover)}" alt="">`; }
if(s.cover){ cov.innerHTML=`<img src="${escapeHtml(s.cover)}" alt="" style="width:100%;height:100%;object-fit:cover" onerror="this.style.display='none';this.nextElementSibling.style.display='block'"><div class="cdiv" style="background:${coverGradient(s.title+s.artist)};display:none"></div>`; }
else{ cov.innerHTML=`<div class="cdiv" style="background:${coverGradient(s.title+s.artist)}"></div>`; }
document.getElementById('mpTitle').textContent=s.title;
document.getElementById('mpArtist').textContent=s.artist;