+
+
${dev.name}
+
+ ${dev.el}
+ ${dev.module}
+
+
+ ${Object.entries(dev.pca).map(([key, val]) =>
+ `${key}:${val}`
+ ).join('')}
+
+
+ `).join('');
+}
+
+// 渲染排行榜
+function renderRanking(developers) {
+ // 按连胜数排序
+ const sorted = [...developers].sort((a, b) => b.wins - a.wins);
+
+ return sorted.map((dev, index) => {
+ const rankClass = index === 0 ? 'rank-1' : index === 1 ? 'rank-2' : index === 2 ? 'rank-3' : '';
+ return `
+
+
+
+
+
+
${dev.name}
+
+ ${dev.el}
+ ${dev.module}
+
+
+ ${Object.entries(dev.pca).map(([key, val]) =>
+ `${key}:${val}`
+ ).join('')}
+
+
+
+
+
+
+
📊 完整PCA雷达图
+
+ ${renderRadarChart(dev.pca, 'large')}
+
+
+ ${Object.entries(dev.pca).map(([dim, score]) =>
+ `${dim}: ${score}`
+ ).join('')}
+
+
+
+
+
+
📈 五维进度条
+
+ ${progressBars}
+
+
+
+
+
+
📋 模块历史
+
+ ${moduleList}
+
+
+
+
+
+
+ `;
+
+ // 绘制趋势图
+ setTimeout(() => drawTrendChart('trend-canvas', trendData), 100);
+}
+
+// 渲染PCA五维进度条
+function renderPCAProgressBars(pca) {
+ const dimensions = [
+ { key: 'EXE', label: '执行力', color: '#4CAF50' },
+ { key: 'TEC', label: '技术深度', color: '#2196F3' },
+ { key: 'SYS', label: '系统思维', color: '#9C27B0' },
+ { key: 'COL', label: '协作力', color: '#FF9800' },
+ { key: 'INI', label: '主动性', color: '#f44336' }
+ ];
+
+ return dimensions.map(dim => {
+ const score = pca[dim.key] || 0;
+
+ return `
+