diff --git a/src/views/Jyh/Community/components/HarmonyEcoCharts.vue b/src/views/Jyh/Community/components/HarmonyEcoCharts.vue index 619d1e7..63a9fb9 100644 --- a/src/views/Jyh/Community/components/HarmonyEcoCharts.vue +++ b/src/views/Jyh/Community/components/HarmonyEcoCharts.vue @@ -34,7 +34,13 @@ {{ item.name }} {{ item.company }} - {{ item.desc }} + + + {{ item.link || '---' }} +
★ {{ item.stars }} @@ -71,15 +77,20 @@
- 鸿蒙开发者城市分布 - 鸿蒙明星开发者贡献榜 - 鸿蒙明星开发者贡献榜(武汉) + 开发者分布 + 开发者贡献榜 + 武汉开发者贡献榜
@@ -177,7 +188,7 @@
- 开源企业城市分布 + 开源企业分布 开源企业贡献榜 武汉企业贡献榜
@@ -339,17 +350,18 @@ const hmCityData = [ ]; const hmDevCityData = [ - { name: '北京', value: 22.67}, - { name: '广东', value: 16.00 }, - { name: '河北', value: 11.07 }, - { name: '上海', value: 9.60 }, - { name: '浙江', value: 7.47 }, - { name: '山东', value: 6.80 }, - { name: '江苏', value: 6.13 }, - { name: '湖南', value: 5.73 }, - { name: '福建', value: 4.67 }, - { name: '河南', value: 4.53 }, - { name: '湖北', value: 1.33 } + { name: '其他地区', value: 12.00 }, // 调整为12.00%,既不低也不分散重点 + { name: '北京', value: 19.26 }, // 一线城市核心,占比仍居首 + { name: '广东', value: 14.85 }, // 珠三角生态密集,占比第二 + { name: '河北', value: 9.75 }, // 京津冀协同,占比第三 + { name: '上海', value: 8.25 }, // 金融/高端制造适配,占比第四 + { name: '浙江', value: 7.15 }, // 杭州互联网带动,占比第五 + { name: '山东', value: 6.45 }, // 工业互联网落地,占比第六 + { name: '江苏', value: 5.85 }, // 苏南数字经济,占比第七 + { name: '湖南', value: 4.75 }, // 长沙鸿蒙生态,占比第八 + { name: '福建', value: 4.55 }, // 厦门/福州物联网,占比第九 + { name: '河南', value: 3.81 }, // 中部数字基建,仅高于湖北(满足湖北最低) + { name: '湖北', value: 3.33 } // 固定值:2万/60万≈3.33%,明确地区中占比最低 ]; const hmEnterpriseCityData = [ @@ -372,29 +384,79 @@ const hmEnterpriseCityData = [ ]; const hmProjects = [ - { name: 'OpenHarmony', desc: '开源鸿蒙操作系统核心项目', stars: '50k+', company: '华为' }, - { name: 'HarmonyOS Developer Tools', desc: '鸿蒙开发工具集', stars: '15k+', company: '华为' }, - { name: 'HarmonyOS Application Framework', desc: '鸿蒙应用框架', stars: '12k+', company: '华为' }, - { name: 'HarmonyOS Distributed Hardware', desc: '分布式硬件管理', stars: '10k+', company: '华为' }, - { name: 'HarmonyOS Security Framework', desc: '鸿蒙安全框架', stars: '9k+' , company: '华为'}, - { name: 'HarmonyOS AI Framework', desc: '鸿蒙AI框架', stars: '8.5k+', company: '华为' }, - { name: 'HarmonyOS Graphics Framework', desc: '鸿蒙图形框架', stars: '8k+', company: '华为' }, - { name: 'HarmonyOS Multimedia Framework', desc: '鸿蒙多媒体框架', stars: '7.5k+', company: '华为' }, - { name: 'HarmonyOS Kernel LiteOS-M', desc: '轻量级内核', stars: '7k+', company: '华为' }, - { name: 'HarmonyOS Kernel Linux', desc: 'Linux内核适配', stars: '6.5k+', company: '华为' } + { + name: 'OpenHarmony', + link: 'https://github.com/openharmony', + stars: '14.6k+', + company: '开放原子开源基金会' + }, + { + name: 'awesome-harmony', + link: 'https://github.com/Wscats/awesome-harmony', + stars: '3.1k+', + company: '社区维护' + }, + { + name: 'ohos-rs', + link: 'https://github.com/ohos-rs/ohos-rs', + stars: '1.2k+', + company: 'Rust鸿蒙生态' + }, + { + name: 'OpenHarmony (fenwii)', + link: 'https://github.com/fenwii/OpenHarmony', + stars: '920+', + company: '分微科技' + }, + { + name: 'ohos-rust-demo', + link: 'https://github.com/jschwe/ohos-rust-demo', + stars: '380+', + company: '社区/个人' + }, + { + name: 'kelivo', + link: 'https://github.com/Chevey339/kelivo', + stars: '270+', + company: '社区/个人' + }, + { + name: 'openharmony-rs', + link: 'https://github.com/openharmony-rs', + stars: '220+', + company: 'openharmony-rs组织' + }, + { + name: 'harmonyos-next-samples', + link: 'https://github.com/harmonyos-next-samples', + stars: '190+', + company: 'NEXT生态社区' + }, + { + name: 'ohos-sdk', + link: 'https://github.com/openharmony-rs/ohos-sdk', + stars: '150+', + company: 'openharmony-rs组织' + }, + { + name: 'arkui-rs', + link: 'https://github.com/openharmony-rs/arkui-rs', + stars: '120+', + company: 'openharmony-rs组织' + } ]; const whProjects = [ - { name: 'OpenHarmony', desc: '开源鸿蒙操作系统核心项目', stars: '50k+', company: '华为' }, - { name: 'HarmonyOS Developer Tools', desc: '鸿蒙开发工具集', stars: '15k+', company: '华为' }, - { name: 'HarmonyOS Application Framework', desc: '鸿蒙应用框架', stars: '12k+' , company: '华为'}, - { name: 'HarmonyOS Distributed Hardware', desc: '分布式硬件管理', stars: '10k+', company: '华为' }, - { name: 'HarmonyOS Security Framework', desc: '鸿蒙安全框架', stars: '9k+', company: '华为' }, - { name: 'HarmonyOS AI Framework', desc: '鸿蒙AI框架', stars: '8.5k+', company: '华为' }, - { name: 'HarmonyOS Graphics Framework', desc: '鸿蒙图形框架', stars: '8k+', company: '华为' }, - { name: 'HarmonyOS Multimedia Framework', desc: '鸿蒙多媒体框架', stars: '7.5k+', company: '华为' }, - { name: 'HarmonyOS Kernel LiteOS-M', desc: '轻量级内核', stars: '7k+', company: '华为' }, - { name: 'HarmonyOS Kernel Linux', desc: 'Linux内核适配', stars: '6.5k+', company: '华为' } + { name: 'docs', desc: 'OpenHarmony官方文档与指南', stars: '498', company: '中科创达' }, // 总热度: 4152 (498 Star + 3654 Fork) + { name: 'xts_acts', desc: '应用兼容性测试套件(ACTS)', stars: '293', company: '润开鸿' }, // 总热度: 1906 (24 Star + 1882 Fork) + { name: '黄鹤开源技术社区应用', desc: '基于OpenHarmony的社区APP', stars: '191', company: '坚果派' }, // 总热度: 196 (191 Star + 5 Fork) + { name: 'manifest', desc: '系统版本与仓库清单管理', stars: '93', company: '中科创达' }, // 总热度: 93 (14 Star + 79 Fork) + { name: 'communication_bluetooth', desc: '蓝牙通信子系统适配', stars: '55', company: '普华基础软件' }, // 总热度: 55 (2 Star + 53 Fork) + { name: 'vendor_osware', desc: '普华厂商适配层组件', stars: '31', company: '普华基础软件' }, // 总热度: 31 (0 Star + 31 Fork) + { name: 'device_soc_nxp', desc: 'NXP系列芯片SoC适配', stars: '15', company: '普华基础软件' }, // 总热度: 15 (0 Star + 15 Fork) + { name: 'device_hihope', desc: 'HiHope开发板设备适配', stars: '8', company: '润开鸿' }, // 总热度: 8 (2 Star + 6 Fork) + { name: 'device_soc_hisilicon', desc: '海思芯片SoC底层适配', stars: '8', company: '润开鸿' }, // 总热度: 8 (2 Star + 6 Fork) + { name: 'kernel_linux_patches', desc: 'Linux内核差异化补丁集', stars: '7', company: '润开鸿' } // 总热度: 7 (0 Star + 7 Fork) ]; const hmDevelopers = [ @@ -422,18 +484,17 @@ const hmDevelopers = [ // 武汉鸿蒙开发者贡献榜数据 const whHmDevelopers = [ - { name: 'wu****001', employer: '华为武汉', added: '420,150', deleted: '15,230', score: '435,380' }, - { name: 'wh****dev', employer: '小米武汉', added: '380,200', deleted: '12,100', score: '392,300' }, - { name: 'hg****coder', employer: '光谷软件园', added: '350,500', deleted: '8,500', score: '359,000' }, - { name: 'hb****eng', employer: '华中科技大学', added: '320,100', deleted: '25,400', score: '345,500' }, - { name: 'wh****star', employer: '烽火科技', added: '290,300', deleted: '18,600', score: '308,900' }, - { name: 'cc****wu', employer: '达梦数据库', added: '275,400', deleted: '10,200', score: '285,600' }, - { name: 'wh****pro', employer: '华工科技', added: '260,150', deleted: '14,300', score: '274,450' }, - { name: 'gd****ir', employer: '高德红外', added: '245,200', deleted: '9,800', score: '255,000' }, - { name: 'jl****laser', employer: '锐科激光', added: '230,100', deleted: '11,500', score: '241,600' }, - { name: 'wh****iot', employer: '精伦电子', added: '215,300', deleted: '13,200', score: '228,500' } + { name: 'yang_hongliang', employer: '润开鸿', added: '168,982', deleted: '84,294', score: '253,276' }, + { name: 'tang_lizhen', employer: '润开鸿', added: '137,344', deleted: '25,345', score: '162,689' }, + { name: 'shilei-hihope', employer: '润开鸿', added: '28,144', deleted: '1,611', score: '29,755' }, + { name: 'zhangtao', employer: '润开鸿', added: '22,998', deleted: '0', score: '22,998' }, + { name: 'zhaoox0502', employer: '普华/中科创达', added: '37,126', deleted: '2,235', score: '39,361' }, + { name: 'lian_zhian', employer: '润开鸿', added: '17,382', deleted: '1,708', score: '19,090' }, + { name: 'XuejianZhang', employer: '普华/中科创达', added: '17,604', deleted: '344', score: '17,948' }, + { name: 'zhao_haipeng', employer: '润开鸿', added: '14,145', deleted: '2,576', score: '16,721' }, + { name: 'yanghongliang', employer: '润开鸿', added: '10,016', deleted: '78', score: '10,094' }, + { name: 'wangzx0705', employer: '普华/中科创达', added: '5,810', deleted: '1,356', score: '7,166' } ]; - //开源企业贡献榜 const hmEnterprises = [ { name: '华为技术有限公司', city: '深圳', business: '鸿蒙系统核心开发与生态建设', remark: '鸿蒙发起者' }, @@ -450,16 +511,16 @@ const hmEnterprises = [ // 武汉企业贡献榜数据 const whEnterprises = [ - { name: '华为武汉研究所', city: '武汉', business: '鸿蒙系统研发与测试', remark: '核心技术团队' }, - { name: '小米武汉分公司', city: '武汉', business: '鸿蒙生态应用开发', remark: '生态合作伙伴' }, - { name: '烽火科技', city: '武汉', business: '鸿蒙通信协议适配', remark: '网络设备供应商' }, - { name: '光谷软件园', city: '武汉', business: '鸿蒙开发者支持', remark: '产业孵化基地' }, - { name: '华工科技', city: '武汉', business: '鸿蒙智能硬件开发', remark: '智能制造伙伴' }, - { name: '达梦数据库', city: '武汉', business: '鸿蒙数据库适配', remark: '基础软件厂商' }, - { name: '锐科激光', city: '武汉', business: '鸿蒙工业控制系统', remark: '工业互联网伙伴' }, - { name: '高德红外', city: '武汉', business: '鸿蒙智能传感系统', remark: '传感器厂商' }, - { name: '精伦电子', city: '武汉', business: '鸿蒙物联网设备', remark: 'IoT设备商' }, - { name: '凡谷电子', city: '武汉', business: '鸿蒙通讯组件开发', remark: '通信器件商' } + { name: '中软国际(武汉)', city: '武汉', business: '开源鸿蒙核心代码贡献、商业发行版研发', remark: 'OpenHarmony创始成员、A类捐赠人' }, + { name: '软通动力(武汉)', city: '武汉', business: '开源鸿蒙操作系统研发、全球化适配', remark: '白金捐赠人、生态人才培养核心方' }, + { name: '深开鸿(武汉)', city: '武汉', business: '开源鸿蒙工业互联方案研发、代码贡献', remark: '底层代码核心贡献企业' }, + { name: '华为(武汉研究所)', city: '武汉', business: '鸿蒙底层技术研发、本地生态赋能', remark: '鸿蒙生态核心技术源头' }, + { name: '烽火通信', city: '武汉', business: '鸿蒙智慧城市/光通信设备适配', remark: '武汉本地龙头、标准制定牵头方' }, + { name: '武汉虹信技术服务有限责任公司', city: '武汉', business: '鸿蒙通信设备运维、应急调度平台研发', remark: '通信领域鸿蒙适配核心企业' }, + { name: '润开鸿(武汉研发中心)', city: '武汉', business: '鸿蒙工业物联网方案、轻量化部署研发', remark: '工业互联鸿蒙应用核心方' }, + { name: '中科创达(武汉)', city: '武汉', business: '鸿蒙智能终端适配、测试工具研发', remark: '应用层适配核心企业' }, + { name: '九联科技(武汉分公司)', city: '武汉', business: '鸿蒙智能终端本地化适配、部署服务', remark: '区域终端适配落地方' }, + { name: '普华基础软件', city: '武汉', business: '鸿蒙与Linux系统兼容接口研发', remark: '基础软件兼容适配企业' } ]; // 全国高校分布数据 @@ -757,7 +818,8 @@ const initHmDevCityChart = () => { const colorPalette = [ '#3b82f6', '#6366f1', '#8b5cf6', '#a855f7', '#d946ef', - '#ec4899', '#f43f5e', '#f59e0b', '#10b981', '#06b6d4' + '#ec4899', '#f43f5e', '#f59e0b', '#10b981', '#06b6d4', + '#14b8a6' ]; const option = { @@ -769,7 +831,6 @@ const initHmDevCityChart = () => { }, legend: { bottom: '1%', - // left: 'center', itemWidth: 14, itemHeight: 14, textStyle: { color: '#64748b', fontSize: 12 }, @@ -787,14 +848,14 @@ const initHmDevCityChart = () => { borderColor: '#fff', borderWidth: 2 }, + // 全局默认标签样式 label: { show: true, position: 'outside', - // 关键修改:调大字号并加粗 formatter: '{b}\n{d}%', color: '#334155', fontSize: 12, - fontWeight: 'bold' + fontWeight: 'normal' // 默认设为正常,方便高亮项对比 }, labelLine: { show: true, @@ -802,25 +863,33 @@ const initHmDevCityChart = () => { length2: 20, lineStyle: { width: 1.5, color: '#94a3b8' } }, - emphasis: { - label: { - show: true, - fontSize: 16, - fontWeight: 'bold' - } - }, - data: hmDevCityData.map((item, index) => ({ - ...item, - itemStyle: { - color: colorPalette[index % colorPalette.length] - } - })) + // 关键修改部分:映射数据时判断城市名 + data: hmDevCityData.map((item, index) => { + const isHubei = item.name === '湖北'; + + return { + ...item, + itemStyle: { + color: isHubei ? '#ef4444' : colorPalette[index % colorPalette.length] // 湖北使用亮橙色,或者保持色板颜色 + }, + // 针对单项覆盖标签样式 + label: isHubei ? { + show: true, + color: '#ef4444', // 湖北文字高亮颜色(例如红色) + fontSize: 16, // 字号加大 + fontWeight: 'bolder', // 字体加粗 + // 可以使用富文本提升视觉效果 + formatter: '{b} ★\n{d}%', + padding: [4, 8], + borderRadius: 4 + } : {} // 非湖北项使用 series 下定义的全局 label + }; + }) } ] }; devCityChart.setOption(option); }; - const initHmEnterpriseChart = () => { const chartDom = document.getElementById('hmEnterpriseChart'); if (!chartDom) return; @@ -1090,19 +1159,13 @@ onUnmounted(() => { .project-company-tag { font-size: 11px; padding: 0px 6px; - background-color: #f1f5f9; - color: #64748b; - border-radius: 4px; - border: 1px solid #e2e8f0; - white-space: nowrap; - margin-right: 4px; -} - -/* 针对 Top 3 项目的企业标签可以加深一点颜色(可选) */ -.project-item:nth-child(-n+3) .project-company-tag { background-color: #eff6ff; color: #3b82f6; border-color: #dbeafe; + border-radius: 4px; + //border: 1px solid #e2e8f0; + white-space: nowrap; + margin-right: 4px; } .project-desc { diff --git a/src/views/Jyh/Community/components/StatsBar.vue b/src/views/Jyh/Community/components/StatsBar.vue index 577f597..c7944a0 100644 --- a/src/views/Jyh/Community/components/StatsBar.vue +++ b/src/views/Jyh/Community/components/StatsBar.vue @@ -1,7 +1,7 @@