Guanghu Domestic Migration d1e47f4565
Some checks are pending
自动更新代码和重启 / update-and-restart (push) Waiting to run
CI检查 + 自动部署 / check (push) Waiting to run
CI检查 + 自动部署 / deploy (push) Blocked by required conditions
重启聊天服务 / restart (push) Waiting to run
chore: import sanitized domestic snapshot for REPO-002
Source snapshot: ca48d3ddf926d79aa138306164169baf764bb829
2026-07-17 15:54:41 +08:00

35 lines
1.3 KiB
JavaScript

function renderRanking(developers) {
const container = document.getElementById('ranking-container');
if (!container) return;
const sorted = [...developers].sort((a, b) => b.streak - a.streak);
const maxStreak = sorted[0].streak;
let html = '<div class="ranking-header"><h3>🏆 连胜排行榜</h3><span>实时更新</span></div><div class="ranking-list">';
sorted.forEach((dev, idx) => {
const medal = idx === 0 ? '🥇' : idx === 1 ? '🥈' : idx === 2 ? '🥉' : `${idx+1}.`;
const percent = (dev.streak / maxStreak) * 100;
html += `
<div class="ranking-item" data-dev-id="${dev.id}">
<div class="ranking-rank">${medal}</div>
<div class="ranking-info">
<div class="ranking-name">${dev.name}</div>
<div class="ranking-streak-bar">
<div class="streak-progress" style="width:${percent}%"></div>
<span class="streak-count">${dev.streak}连胜</span>
</div>
</div>
</div>
`;
});
html += '</div>';
container.innerHTML = html;
}
async function initRanking() {
const devs = await getDevStatus();
renderRanking(devs);
}
window.initRanking = initRanking;