From cfd35554e65a10ed9dd38a544e98c8561cf58ab8 Mon Sep 17 00:00:00 2001 From: HuangSJ Date: Wed, 3 Sep 2025 16:31:57 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=9B=BF=E6=8D=A2=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E7=A4=BE=E5=8C=BA=E6=95=B0=E6=8D=AE=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src-new/views/home/HomePlayCommunity.vue | 22 ++++++++++++++----- app/.vitepress/src/api/api-search.ts | 19 ++++++++++++---- .../src/shared/@types/type-search.ts | 12 ++++++++++ app/vite.config.js | 5 +++++ 4 files changed, 49 insertions(+), 9 deletions(-) diff --git a/app/.vitepress/src-new/views/home/HomePlayCommunity.vue b/app/.vitepress/src-new/views/home/HomePlayCommunity.vue index 7c8cf8bf2..5e05e3898 100644 --- a/app/.vitepress/src-new/views/home/HomePlayCommunity.vue +++ b/app/.vitepress/src-new/views/home/HomePlayCommunity.vue @@ -11,7 +11,7 @@ import { useCommon } from '@/stores/common'; import { playCommunity, vitalityConfig } from '~@/data/home/play-community'; -import { getStatistic } from '@/api/api-search'; +import { getStatistic, getDownloadTotal } from '@/api/api-search'; import logo from '~@/assets/category/home/play-community/logo.png'; import floorBg from '~@/assets/category/home/play-community/floor-bg.png'; @@ -37,10 +37,22 @@ const vitalityData = ref(); const { theme } = storeToRefs(useCommon()); -onMounted(() => { - getStatistic().then((res) => { - vitalityData.value = res.data; - }); +onMounted(async () => { + const [statisticRes, downloadRes] = await Promise.all([ + getStatistic(), + getDownloadTotal() + ]); + + const data = statisticRes?.data || {}; + const users = downloadRes?.data || {}; + + vitalityData.value = { + contributors: data.contributor_all, + repos: data.repo_all, + sigs: data.sig_all, + users: users.total_count, + businessosv: data.osv_all, + }; }); // ------------埋点------------ diff --git a/app/.vitepress/src/api/api-search.ts b/app/.vitepress/src/api/api-search.ts index a3962b990..1876d409c 100644 --- a/app/.vitepress/src/api/api-search.ts +++ b/app/.vitepress/src/api/api-search.ts @@ -12,6 +12,7 @@ import type { RelevantQueryT, StatisticT, SearchRecommendT, + OverviewDataT, } from '@/shared/@types/type-search'; import type { SearchBlogT } from '@/shared/@types/type-blog'; /** @@ -120,11 +121,21 @@ export function getPop(params: string): Promise<{ export function getStatistic(): Promise<{ code: number; - data: StatisticT; - msg: string; - update_at: string; + data: OverviewDataT; + message: string; + timestamp: number; +}> { + const url = '/api-magic/stat/overview/count?community=openeuler'; + return request.get(url).then((res: AxiosResponse) => res.data); +} + +export function getDownloadTotal(): Promise<{ + code: number; + data: { total_count: number }; + message: string; + timestamp: number; }> { - const url = '/api-dsapi/query/all?community=openEuler'; + const url = '/api-magic/community/download/total?community=openeuler'; return request.get(url).then((res: AxiosResponse) => res.data); } diff --git a/app/.vitepress/src/shared/@types/type-search.ts b/app/.vitepress/src/shared/@types/type-search.ts index 724a10b4c..45d3227ec 100644 --- a/app/.vitepress/src/shared/@types/type-search.ts +++ b/app/.vitepress/src/shared/@types/type-search.ts @@ -138,3 +138,15 @@ export interface ShowcaseDataT { title: string; // 标题 category: string; // 类别 } + +export interface OverviewDataT { + comment_all: number; // 评审comment数 + company_all: number; // 单位成员数 + contributor_all: number; // 贡献者数 + issue_all: number; // Issue数 + isv_all: number; // ISV数 + merged_pr_all: number; // 合并请求PR数 + osv_all: number; // 商用OSV数 + repo_all: number; // 代码仓库数 + sig_all: number; // SIG数 +} diff --git a/app/vite.config.js b/app/vite.config.js index db310557c..d7c79aed9 100644 --- a/app/vite.config.js +++ b/app/vite.config.js @@ -169,6 +169,11 @@ export default defineConfig({ changeOrigin: true, rewrite: (url) => url.replace(/^\/api-dsapi/, ''), }, + '/api-magic/': { + target: 'https://magicapi.osinfra.cn/', + changeOrigin: true, + rewrite: (url) => url.replace(/^\/api-magic/, ''), + }, '/api-mail/': { target: 'https://mailweb.openeuler.org/', changeOrigin: true, -- Gitee