diff --git a/src/views/Jyh/ecosystem/components/StarDevelopersChart.vue b/src/views/Jyh/ecosystem/components/StarDevelopersChart.vue new file mode 100644 index 0000000..1023a71 --- /dev/null +++ b/src/views/Jyh/ecosystem/components/StarDevelopersChart.vue @@ -0,0 +1,363 @@ + + + + + \ No newline at end of file diff --git a/src/views/Jyh/ecosystem/index.vue b/src/views/Jyh/ecosystem/index.vue index 8912ba0..ca1c686 100644 --- a/src/views/Jyh/ecosystem/index.vue +++ b/src/views/Jyh/ecosystem/index.vue @@ -136,33 +136,7 @@ -
-

明星开发者聚焦

- -
-
-
-
- -
- {{ item.desc }} -
- {{ item.name }} - 📍 {{ item.org }} -
- - - - - - {{ formatFollowers(item.followers) }} - -
-
-
-
+ @@ -248,6 +222,7 @@ import UniversityClubStatsChart from './components/UniversityClubStatsChart.vue' import CommunityGovernanceHealthChart from './components/CommunityGovernanceHealthChart.vue' import VitalityWaveChart from './components/VitalityWaveChart.vue' import StatsGlass from './components/StatsGlass.vue' +import StarDevelopersChart from './components/StarDevelopersChart.vue' import { usePageResize } from '@/utils/hooks/usePageResize'; // 页面尺寸响应式 @@ -365,29 +340,7 @@ const excellentProjects = computed(() => { })); }); -// 2. 明星开发者数据(基于GitHub中国区Top开发者) -const excellentProjects2025 = ref([ - { name: '稚晖', desc: 'TOP 1', org: 'Shanghai', followers: 82738, avatar: 'https://github.com/peng-zhihui.png' }, - { name: 'Crypto Michael', desc: 'TOP 2', org: 'Beijing, China', followers: 37622, avatar: 'https://github.com/michaelliao.png' }, - { name: '代码家', desc: 'TOP 3', org: 'Beijing, China', followers: 24743, avatar: 'https://github.com/daimajia.png' }, - { name: 'Jackson Tian', desc: 'TOP 4', org: 'Hangzhou, China', followers: 21267, avatar: 'https://github.com/JacksonTian.png' }, - { name: '云风', desc: 'TOP 5', org: 'China', followers: 21192, avatar: 'https://github.com/cloudwu.png' }, - { name: 'Fengda Huang', desc: 'TOP 6', org: 'Shanghai / Hangzhou', followers: 20229, avatar: 'https://github.com/phodal.png' }, - { name: '程序员鱼皮', desc: 'TOP 7', org: 'Shanghai', followers: 18461, avatar: 'https://github.com/liyupi.png' }, - { name: 'Trinea', desc: 'TOP 8', org: 'HangZhou', followers: 17019, avatar: 'https://github.com/Trinea.png' }, - { name: 'lifesinger', desc: 'TOP 9', org: 'Hangzhou, China', followers: 15894, avatar: 'https://github.com/lifesinger.png' }, - { name: 'stormzhang', desc: 'TOP 10', org: 'Shanghai, China', followers: 15889, avatar: 'https://github.com/stormzhang.png' }, - { name: 'Wenli Zhang', desc: 'TOP 11', org: 'Shanghai, China', followers: 15680, avatar: 'https://github.com/Ovilia.png' }, - { name: 'Wei Wang', desc: 'TOP 12', org: 'Yokohama / China', followers: 15532, avatar: 'https://github.com/onevcat.png' }, - { name: 'astaxie', desc: 'TOP 13', org: 'Shanghai, China', followers: 15022, avatar: 'https://github.com/astaxie.png' }, - { name: '司徒正美', desc: 'TOP 14', org: 'China', followers: 14742, avatar: 'https://github.com/RubyLouvre.png' }, - { name: '云谦', desc: 'TOP 15', org: 'HangZhou, China', followers: 14466, avatar: 'https://github.com/sorrycc.png' }, - { name: 'cangdu', desc: 'TOP 16', org: 'Shanghai, China', followers: 13728, avatar: 'https://github.com/bailicangdu.png' }, - { name: 'Huang Haiguang', desc: 'TOP 17', org: 'Qingdao, China', followers: 13422, avatar: 'https://github.com/fengdu78.png' }, - { name: '花裤衩', desc: 'TOP 18', org: 'Shanghai, China', followers: 13236, avatar: 'https://github.com/PanJiaChen.png' }, - { name: '破娃酱', desc: 'TOP 19', org: 'China', followers: 13203, avatar: 'https://github.com/breakwa11.png' }, - { name: 'Draven', desc: 'TOP 20', org: 'Beijing, China', followers: 13094, avatar: 'https://github.com/draveness.png' } -]); + // 3. 图表数据定义 const chartData = ref({ @@ -586,24 +539,6 @@ onUnmounted(() => { }); }); -// 8. 格式化粉丝数(82738 → 82.7K) -const formatFollowers = (num: number) => { - if (num >= 1000) { - return (num / 1000).toFixed(1) + 'K'; - } - return num.toString(); -}; - -// 9. 图片加载失败处理 -const handleImageError = (e: Event) => { - const target = e.target as HTMLImageElement; - const name = target.alt; - target.style.display = 'none'; - if (target.parentElement) { - target.parentElement.innerHTML = `${name.slice(0, 1)}`; - } -}; - // 10. 企业排名相关方法 const getRankClass = (rank: number) => { if (rank === 1) return 'gold';