diff --git a/backend/routes/portal.py b/backend/routes/portal.py index d4cb899..e73232f 100644 --- a/backend/routes/portal.py +++ b/backend/routes/portal.py @@ -22,6 +22,9 @@ def bootstrap(): ) return jsonify({ "settings": settings, + "stats": { + "total_resources": Resource.query.filter_by(is_active=True).count(), + }, "categories": [c.to_dict() for c in categories], "links": [l.to_dict() for l in links], }) diff --git a/frontend/src/views/Portal.vue b/frontend/src/views/Portal.vue index 565239a..9226e9d 100644 --- a/frontend/src/views/Portal.vue +++ b/frontend/src/views/Portal.vue @@ -57,14 +57,18 @@ const activeCat = computed(() => categories.value.find(c => c.id === activeCatId const stats = computed(() => ({ categories: categories.value.length, - links: links.value.length + links: links.value.length, + resources: bootstrapStats.value.total_resources || 0 })) +const bootstrapStats = ref({ total_resources: 0 }) + async function loadBootstrap() { loading.value = true try { const { data } = await portalApi.bootstrap() settings.value = data.settings || {} + bootstrapStats.value = data.stats || { total_resources: 0 } categories.value = data.categories || [] links.value = data.links || [] document.title = settings.value.site_name || 'OPS 资源中心' @@ -183,7 +187,7 @@ onMounted(() => {