态势感知平台-武汉市开源生态建设-开发者分布接口对接

This commit is contained in:
d266377
2026-01-30 15:03:12 +08:00
parent 2affb8296e
commit 613b801da8

View File

@@ -338,7 +338,7 @@
import { ref, onMounted, nextTick, onUnmounted } from 'vue';
import * as echarts from 'echarts';
import HMStatsBar from './HMStatsBar.vue';
import { hmCityDataPage3, hmProjectsPage3, whProjectsPage3 } from '@/api/jyh/situation';
import { hmCityDataPage3, hmProjectsPage3, whProjectsPage3, hmDevCityDataPage3 } from '@/api/jyh/situation';
// ================= 数据定义 =================
const hmCityData = ref([
@@ -354,20 +354,7 @@ const hmCityData = ref([
{ name: '山东', value: 24 }
]);
const hmDevCityData = [
{ name: '其他地区', value: 25.7 },
{ name: '北京', value: 17 },
{ name: '广东', value: 12 },
{ name: '河北', value: 8.3 },
{ name: '上海', value: 7.2 },
{ name: '浙江', value: 5.6 },
{ name: '山东', value: 5.1 },
{ name: '江苏', value:4.6 },
{ name: '湖南', value: 4.3 },
{ name: '福建', value: 3.5 },
{ name: '河南', value: 3.4 },
{ name: '湖北', value: 3.3 }
];
const hmDevCityData = ref([]);
const hmEnterpriseCityData = [
{ name: '广东', value: 133 },
@@ -1017,6 +1004,55 @@ const fetchHmCityData = async () => {
}
};
// 获取开发者分布数据
const fetchHmDevCityData = async () => {
try {
const response = await hmDevCityDataPage3();
const businessData = response.data;
if (businessData.code === 200 && businessData.data) {
hmDevCityData.value = businessData.data;
// 重新初始化图表以显示新数据
initHmDevCityChart();
} else {
console.error('获取开发者分布数据失败:', businessData.msg || '未知错误');
// 使用默认数据
hmDevCityData.value = [
{ name: '其他地区', value: 25.7 },
{ name: '北京', value: 17 },
{ name: '广东', value: 12 },
{ name: '河北', value: 8.3 },
{ name: '上海', value: 7.2 },
{ name: '浙江', value: 5.6 },
{ name: '山东', value: 5.1 },
{ name: '江苏', value: 4.6 },
{ name: '湖南', value: 4.3 },
{ name: '福建', value: 3.5 },
{ name: '河南', value: 3.4 },
{ name: '湖北', value: 3.3 }
];
initHmDevCityChart();
}
} catch (error) {
console.error('获取开发者分布数据异常:', error);
// 使用默认数据
hmDevCityData.value = [
{ name: '其他地区', value: 25.7 },
{ name: '北京', value: 17 },
{ name: '广东', value: 12 },
{ name: '河北', value: 8.3 },
{ name: '上海', value: 7.2 },
{ name: '浙江', value: 5.6 },
{ name: '山东', value: 5.1 },
{ name: '江苏', value: 4.6 },
{ name: '湖南', value: 4.3 },
{ name: '福建', value: 3.5 },
{ name: '河南', value: 3.4 },
{ name: '湖北', value: 3.3 }
];
initHmDevCityChart();
}
};
const initHmEntCityChart = () => {
const chartDom = document.getElementById('hmEntCityChart');
if (!chartDom) return;
@@ -1065,7 +1101,7 @@ const initHmDevCityChart = () => {
itemWidth: 14,
itemHeight: 14,
textStyle: { color: '#64748b', fontSize: 12 },
data: hmDevCityData.map(i => i.name)
data: hmDevCityData.value.map(i => i.name)
},
series: [
{
@@ -1095,7 +1131,7 @@ const initHmDevCityChart = () => {
lineStyle: { width: 1.5, color: '#94a3b8' }
},
// 关键修改部分:映射数据时判断城市名
data: hmDevCityData.map((item, index) => {
data: hmDevCityData.value.map((item, index) => {
const isHubei = item.name === '湖北';
return {
@@ -1233,8 +1269,8 @@ const handleResize = () => {
onMounted(async () => {
nextTick(async () => {
// 先获取鸿蒙项目城市分布数据鸿蒙开源项目数据
await Promise.all([fetchHmCityData(), fetchHmProjects(), fetchWhProjects()]);
// 先获取鸿蒙项目城市分布数据鸿蒙开源项目数据和开发者分布数据
await Promise.all([fetchHmCityData(), fetchHmProjects(), fetchWhProjects(), fetchHmDevCityData()]);
initHmCityChart();
initHmEnterpriseChart();