From 40be92afc3cd8d34c8049a87b2adb7625ab7a291 Mon Sep 17 00:00:00 2001 From: d266377 Date: Tue, 3 Feb 2026 14:24:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=80=81=E5=8A=BF=E6=84=9F=E7=9F=A5=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0-=E6=AD=A6=E6=B1=89=E5=B8=82=E5=BC=80=E6=BA=90?= =?UTF-8?q?=E7=94=9F=E6=80=81=E5=BB=BA=E8=AE=BE-=E4=B8=AD=E5=9B=BD?= =?UTF-8?q?=E9=AB=98=E6=A0=A1=E9=B8=BF=E8=92=99=E8=B4=A1=E7=8C=AE=E5=88=86?= =?UTF-8?q?=E5=B8=83=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Community/components/HarmonyEcoCharts.vue | 111 +++++++++++++----- 1 file changed, 79 insertions(+), 32 deletions(-) diff --git a/src/views/Jyh/Community/components/HarmonyEcoCharts.vue b/src/views/Jyh/Community/components/HarmonyEcoCharts.vue index 95b9255..d5126b5 100644 --- a/src/views/Jyh/Community/components/HarmonyEcoCharts.vue +++ b/src/views/Jyh/Community/components/HarmonyEcoCharts.vue @@ -337,7 +337,7 @@ import { ref, onMounted, nextTick, onUnmounted } from 'vue'; import * as echarts from 'echarts'; import HMStatsBar from './HMStatsBar.vue'; -import { hmCityDataPage3, hmProjectsPage3, whProjectsPage3, hmDevCityDataPage3, hmDevelopersPage3, whHmDevelopersPage3, hmEnterpriseCityDataPage3, hmEnterprisesPage3, whEnterprisesPage3 } from '@/api/jyh/situation'; +import { hmCityDataPage3, hmProjectsPage3, whProjectsPage3, hmDevCityDataPage3, hmDevelopersPage3, whHmDevelopersPage3, hmEnterpriseCityDataPage3, hmEnterprisesPage3, whEnterprisesPage3, uniCityDataPage3 } from '@/api/jyh/situation'; // ================= 数据定义 ================= const hmCityData = ref([ @@ -502,6 +502,7 @@ const fetchHmEnterprises = async() => { } }; +// 获取武汉企业贡献榜数据 const fetchwhEnterprises = async() =>{ try { const response = await whEnterprisesPage3(); @@ -542,6 +543,79 @@ const fetchwhEnterprises = async() =>{ } } +// 获取中国高校鸿蒙贡献分布数据 +const fetchuniCityData = async() => { + try { + const response = await uniCityDataPage3(); + const businessData = response.data; + if (businessData.code === 200 && businessData.data) { + uniCityData.value = businessData.data; + } else { + console.error('获取中国高校鸿蒙贡献分布数据失败:', businessData.msg || '未知错误'); + // 使用默认数据 + uniCityData.value = [ + { name: '北邮', value: 52 }, + { name: '浙大', value: 16 }, + { name: '华科', value: 12 }, + { name: '北理工', value: 10 }, + { name: '中科大', value: 10 }, + { name: '上交大', value: 4 }, + { name: '北大', value: 3 }, + { name: '西安建大', value: 2 }, + { name: '南大', value: 2 }, + { name: '哈工大', value: 2 }, + { name: '东南大学', value: 2 }, + { name: '暨大', value: 1 }, + { name: '武理工', value: 1 }, + { name: '中山大学', value: 1 }, + { name: '北航', value: 1 }, + { name: '华南理工', value: 1 }, + { name: '人大', value: 1 }, + { name: '深大', value: 1 }, + { name: '西电', value: 1 }, + { name: '南理工', value: 1 }, + { name: '云大', value: 1 }, + { name: '广工', value: 1 }, + { name: '复旦', value: 1 }, + { name: '中南大学', value: 1 }, + { name: '清华', value: 1 }, + { name: '东北大学', value: 1 } + ]; + } + } catch (error) { + console.error('获取中国高校鸿蒙贡献分布数据失败:', error); + // 使用默认数据 + uniCityData.value = [ + { name: '北邮', value: 52 }, + { name: '浙大', value: 16 }, + { name: '华科', value: 12 }, + { name: '北理工', value: 10 }, + { name: '中科大', value: 10 }, + { name: '上交大', value: 4 }, + { name: '北大', value: 3 }, + { name: '西安建大', value: 2 }, + { name: '南大', value: 2 }, + { name: '哈工大', value: 2 }, + { name: '东南大学', value: 2 }, + { name: '暨大', value: 1 }, + { name: '武理工', value: 1 }, + { name: '中山大学', value: 1 }, + { name: '北航', value: 1 }, + { name: '华南理工', value: 1 }, + { name: '人大', value: 1 }, + { name: '深大', value: 1 }, + { name: '西电', value: 1 }, + { name: '南理工', value: 1 }, + { name: '云大', value: 1 }, + { name: '广工', value: 1 }, + { name: '复旦', value: 1 }, + { name: '中南大学', value: 1 }, + { name: '清华', value: 1 }, + { name: '东北大学', value: 1 } + ]; + } +}; + // 获取鸿蒙开源项目数据 const fetchHmProjects = async () => { try { @@ -748,34 +822,7 @@ const hmEnterprises = ref([]); const whEnterprises = ref([]); // 全国高校分布数据 -const uniCityData = [ - { name: '北邮', value: 52 }, - { name: '浙大', value: 16 }, - { name: '华科', value: 12 }, - { name: '北理工', value: 10 }, - { name: '中科大', value: 10 }, - { name: '上交大', value: 4 }, - { name: '北大', value: 3 }, - { name: '西安建大', value: 2 }, - { name: '南大', value: 2 }, - { name: '哈工大', value: 2 }, - { name: '东南大学', value: 2 }, - { name: '暨大', value: 1 }, - { name: '武理工', value: 1 }, - { name: '中山大学', value: 1 }, - { name: '北航', value: 1 }, - { name: '华南理工', value: 1 }, - { name: '人大', value: 1 }, - { name: '深大', value: 1 }, - { name: '西电', value: 1 }, - { name: '南理工', value: 1 }, - { name: '云大', value: 1 }, - { name: '广工', value: 1 }, - { name: '复旦', value: 1 }, - { name: '中南大学', value: 1 }, - { name: '清华', value: 1 }, - { name: '东北大学', value: 1 } -]; +const uniCityData = ref([]); // 高校贡献者榜单 const uniContributors = [ @@ -1357,14 +1404,14 @@ const initUniCityChart = () => { tooltip: { trigger: 'axis' }, grid: { left: '3%', right: '4%', bottom: '3%', top: '10%', containLabel: true }, xAxis: { - type: 'category', data: uniCityData.map(i => i.name), axisLabel: { + type: 'category', data: uniCityData.value.map(i => i.name), axisLabel: { color: '#64748b', interval: 0 } }, yAxis: { type: 'value', name: '单位:所', axisLabel: { color: '#64748b' } }, series: [{ - type: 'bar', barWidth: '40%', data: uniCityData.map(i => i.value), + type: 'bar', barWidth: '40%', data: uniCityData.value.map(i => i.value), itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: '#10b981' }, // 绿色系,区别于其他卡片 @@ -1438,7 +1485,7 @@ const handleResize = () => { onMounted(async() => { nextTick(async() => { // 先获取鸿蒙项目城市分布数据、鸿蒙开源项目数据、开发者分布数据、开发者贡献榜数据和武汉开发者贡献榜数据 - await Promise.all([fetchHmCityData(), fetchHmProjects(), fetchWhProjects(), fetchHmDevCityData(), fetchHmDevelopers(), fetchWhHmDevelopers(), fetchHmEnterpriseCityData(), fetchHmEnterprises(), fetchwhEnterprises()]); + await Promise.all([fetchHmCityData(), fetchHmProjects(), fetchWhProjects(), fetchHmDevCityData(), fetchHmDevelopers(), fetchWhHmDevelopers(), fetchHmEnterpriseCityData(), fetchHmEnterprises(), fetchwhEnterprises(), fetchuniCityData()]); initHmCityChart(); initHmEnterpriseChart();