diff --git a/cwd-admin/src/api/admin.ts b/cwd-admin/src/api/admin.ts index 42b4e85..468ecc5 100644 --- a/cwd-admin/src/api/admin.ts +++ b/cwd-admin/src/api/admin.ts @@ -342,8 +342,14 @@ export function fetchSiteList(): Promise { return get('/admin/stats/sites'); } -export function fetchLikeStats(): Promise { - return get('/admin/likes/stats'); +export function fetchLikeStats(siteId?: string): Promise { + const searchParams = new URLSearchParams(); + if (siteId && siteId !== 'default') { + searchParams.set('siteId', siteId); + } + const query = searchParams.toString(); + const url = query ? `/admin/likes/stats?${query}` : '/admin/likes/stats'; + return get(url); } export function fetchFeatureSettings(): Promise { diff --git a/cwd-admin/src/views/AnalyticsVisitView/index.vue b/cwd-admin/src/views/AnalyticsVisitView/index.vue index 5fe228f..6f1b72d 100644 --- a/cwd-admin/src/views/AnalyticsVisitView/index.vue +++ b/cwd-admin/src/views/AnalyticsVisitView/index.vue @@ -430,7 +430,7 @@ async function loadData() { const [overviewRes, pagesRes, likeStatsRes] = await Promise.all([ fetchVisitOverview(domain), fetchVisitPages(domain, order), - fetchLikeStats(), + fetchLikeStats(domain), ]); overview.value = { totalPv: overviewRes.totalPv, @@ -446,7 +446,7 @@ async function loadData() { : [], }; const likeItemsRaw = Array.isArray(likeStatsRes.items) ? likeStatsRes.items : []; - likeStatsItems.value = filterLikeStatsByDomain(likeItemsRaw, domain); + likeStatsItems.value = likeItemsRaw; const pageItemsByPv = Array.isArray(pagesRes.itemsByPv) ? pagesRes.itemsByPv : []; diff --git a/docs/.vitepress/theme/index.js b/docs/.vitepress/theme/index.js index 94b8a22..c24dd50 100644 --- a/docs/.vitepress/theme/index.js +++ b/docs/.vitepress/theme/index.js @@ -11,7 +11,6 @@ export default { return h(Layout, null, { 'doc-footer-before': () => h(FooterDoc), - 'home-features-after': () => h('div', { class: 'extra-class' }, [h(FooterDoc)]), 'nav-bar-content-after': () => h(GitHubStar), }); }, diff --git a/docs/api/admin/analytics.md b/docs/api/admin/analytics.md index 676303b..2be543b 100644 --- a/docs/api/admin/analytics.md +++ b/docs/api/admin/analytics.md @@ -24,7 +24,7 @@ GET /admin/analytics/overview | 名称 | 位置 | 类型 | 必填 | 说明 | | -------- | ----- | ------ | ---- | ------------------------------------------ | -| `domain` | query | string | 否 | 按域名筛选访问数据,传入域名,如 `example.com` | +| `siteId` | query | string | 否 | 按站点 ID 筛选访问数据,如 `blog`、`docs` | **成功响应** diff --git a/docs/common-problems.md b/docs/common-problems.md index cb735c4..faab9f1 100644 --- a/docs/common-problems.md +++ b/docs/common-problems.md @@ -1,5 +1,10 @@ # 常见问题 +> [!TIP] 十分抱歉! +> 由于开发团队目前只有一个人,在更新功能后文档可能会滞后。如果遇到问题,请先查看文档是否有更新。 +> 如果文档没有更新或者文档描述与实际有误,请在 GitHub 仓库的 Issues 中及时反馈。 +> 如果是更改比较重大的功能,我会在 [常见问题] 中更新。 + ## 1. 为什么设置完 siteId 后,评论区不显示旧的评论数据? 因为设置了 siteId 后,接口会根据 siteId 来查询数据库带有你设置的 siteId 的评论数据。所以如果设置了 siteId,旧数据就有可能不显示,需要手动去 Cloudflare D1 控制台 Query 运行 SQL 语句来更新数据。 diff --git a/docs/index.md b/docs/index.md index 351e49b..3168449 100644 --- a/docs/index.md +++ b/docs/index.md @@ -24,7 +24,7 @@ features: details: 基于 Cloudflare 全球 300+ 节点网络,毫秒级响应,自动扩缩容,无需管理服务器 - icon: 💬 title: 完善评论体系 - details: 支持嵌套回复、分页加载、Markdown 渲染、富文本支持与访客信息记忆 + details: 支持多站点管理,支持嵌套回复、分页加载、Markdown 渲染、富文本支持与访客信息记忆 - icon: 🔔 title: 智能邮件通知 details: 新评论、回复提醒实时推送,支持自定义邮件模板,兼容各大邮箱服务商 @@ -45,3 +45,13 @@ features: details: 提供完整 REST API 与 SDK,一行代码嵌入,适配 Vue、React 等任意框架 --- + + +> [!TIP] 十分抱歉! +> 由于开发团队目前只有一个人,在更新功能后文档可能会滞后。如果遇到问题,请先查看文档是否有更新。 +> 如果文档没有更新或者文档描述与实际有误,请在 GitHub 仓库的 Issues 中及时反馈。 +> 如果是更改比较重大的功能,我会在 [常见问题] 中更新。 + +