feat(analytics): 添加按最新访问排序功能

在访问统计页面增加按最新访问排序的选项,并优化加载状态管理
修改相关API以支持排序参数,同时调整页面布局和样式
This commit is contained in:
anghunk
2026-01-22 09:42:39 +08:00
parent 6c1651b4e9
commit 4550b3c972
6 changed files with 118 additions and 21 deletions

View File

@@ -148,14 +148,23 @@ export const getVisitPages = async (c: Context<{ Bindings: Bindings }>) => {
try {
const rawDomain = c.req.query('domain') || '';
const domainFilter = rawDomain.trim().toLowerCase();
const rawOrder = c.req.query('order') || '';
const order = rawOrder.trim().toLowerCase();
const isLatest = order === 'latest';
await c.env.CWD_DB.prepare(
'CREATE TABLE IF NOT EXISTS page_stats (id INTEGER PRIMARY KEY AUTOINCREMENT, post_slug TEXT UNIQUE NOT NULL, post_title TEXT, post_url TEXT, pv INTEGER NOT NULL DEFAULT 0, last_visit_at INTEGER, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL)'
).run();
const { results } = await c.env.CWD_DB.prepare(
'SELECT post_slug, post_title, post_url, pv, last_visit_at FROM page_stats ORDER BY pv DESC, last_visit_at DESC'
).all<{
let sql =
'SELECT post_slug, post_title, post_url, pv, last_visit_at FROM page_stats ORDER BY pv DESC, last_visit_at DESC';
if (isLatest) {
sql =
'SELECT post_slug, post_title, post_url, pv, last_visit_at FROM page_stats ORDER BY last_visit_at DESC, pv DESC';
}
const { results } = await c.env.CWD_DB.prepare(sql).all<{
post_slug: string;
post_title: string | null;
post_url: string | null;