热搜榜单
热搜榜单
This commit is contained in:
@@ -156,18 +156,6 @@ function renderRanking(payload) {
|
||||
|
||||
// 渲染列表
|
||||
const html = `
|
||||
<section class="stats-container">
|
||||
<div class="stats-grid">
|
||||
<div class="stat-item">
|
||||
<div class="stat-value" id="stats-total">${list.length}</div>
|
||||
<div class="stat-label">入榜影片数量</div>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<div class="stat-value" id="stats-top10">${Math.min(10, list.length)}</div>
|
||||
<div class="stat-label">TOP10 数量</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="ranking-container">
|
||||
<h2 class="ranking-title">全球电影总票房排行榜</h2>
|
||||
<div class="movie-list">
|
||||
@@ -182,37 +170,56 @@ function renderRanking(payload) {
|
||||
elements.container.classList.add('fade-in');
|
||||
}
|
||||
|
||||
// 格式化票房数据,将数字转换为更易读的形式
|
||||
function formatBoxOffice(value) {
|
||||
if (!value) return '未知';
|
||||
|
||||
// 将字符串转换为数字
|
||||
const num = typeof value === 'string' ? parseFloat(value.replace(/[^0-9.]/g, '')) : value;
|
||||
|
||||
if (isNaN(num)) return value;
|
||||
|
||||
if (num >= 100000000) {
|
||||
return (num / 100000000).toFixed(2) + ' 亿';
|
||||
} else if (num >= 10000) {
|
||||
return (num / 10000).toFixed(2) + ' 万';
|
||||
} else {
|
||||
return num.toLocaleString();
|
||||
}
|
||||
}
|
||||
|
||||
function renderMovieItem(item) {
|
||||
const rank = item.rank;
|
||||
const cls = rank === 1 ? 'top-1' : rank === 2 ? 'top-2' : rank === 3 ? 'top-3' : '';
|
||||
const badgeCls = rank === 1 ? 'gold' : rank === 2 ? 'silver' : rank === 3 ? 'bronze' : 'regular';
|
||||
|
||||
// 使用猫眼ID获取电影海报图片 - 使用更可靠的图片源
|
||||
const posterUrl = `https://img.maoyan.com/movie/poster/1${item.maoyan_id}.jpg`;
|
||||
// 备用图片源
|
||||
const backupPosterUrl = `https://p0.pipi.cn/mmdb/fb738633ac80c2f8a7a48e5b465128${item.maoyan_id % 10}/${item.maoyan_id}.jpg?imageView2/1/w/160/h/220`;
|
||||
// 格式化票房数据
|
||||
const boxOffice = formatBoxOffice(item.boxoffice || item.box_office);
|
||||
|
||||
// 美化排名显示
|
||||
let rankDisplay;
|
||||
if (rank === 1) {
|
||||
rankDisplay = '🏆 1';
|
||||
} else if (rank === 2) {
|
||||
rankDisplay = '🥈 2';
|
||||
} else if (rank === 3) {
|
||||
rankDisplay = '🥉 3';
|
||||
} else {
|
||||
rankDisplay = `NO.${rank}`;
|
||||
}
|
||||
|
||||
return `
|
||||
<div class="movie-item ${cls}">
|
||||
<div class="rank-badge ${badgeCls}">${rank}</div>
|
||||
<div class="movie-poster">
|
||||
<img src="${posterUrl}" alt="${escapeHtml(item.movie_name)}" onerror="this.onerror=null; this.src='${backupPosterUrl}'; this.onerror=function(){this.src='data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%22160%22 height%3D%22220%22 viewBox%3D%220 0 160 220%22%3E%3Crect fill%3D%22%23f0f0f0%22 width%3D%22160%22 height%3D%22220%22%2F%3E%3Ctext fill%3D%22%23999%22 font-family%3D%22Arial%2CSans-serif%22 font-size%3D%2216%22 x%3D%2250%25%22 y%3D%2250%25%22 text-anchor%3D%22middle%22 dominant-baseline%3D%22middle%22%3E无图片%3C%2Ftext%3E%3C%2Fsvg%3E';}">
|
||||
</div>
|
||||
<div class="rank-badge ${badgeCls}">${rankDisplay}</div>
|
||||
<div class="movie-info">
|
||||
<div class="rank-number">#${rank}</div>
|
||||
<div class="movie-details">
|
||||
<div class="movie-name">${escapeHtml(item.movie_name)}</div>
|
||||
<div class="movie-year">上映年份:${escapeHtml(item.release_year || '')}</div>
|
||||
</div>
|
||||
<div class="box-office">
|
||||
<div class="box-office-amount">${formatCurrencyDesc(item.box_office_desc, item.box_office)}</div>
|
||||
<div class="box-office-desc">总票房</div>
|
||||
</div>
|
||||
<div class="movie-name">${escapeHtml(item.movie_name)}</div>
|
||||
<div class="movie-detail"><span class="label">上映:</span> ${escapeHtml(item.release_year || '未知')}</div>
|
||||
<div class="movie-boxoffice"><span class="currency">¥</span> ${boxOffice}</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
</div>`;
|
||||
}
|
||||
|
||||
|
||||
function formatCurrencyDesc(desc, num) {
|
||||
if (desc && typeof desc === 'string' && desc.trim()) return desc;
|
||||
if (typeof num === 'number') {
|
||||
|
||||
Reference in New Issue
Block a user