feat: 前台标签接入 antd 组件、列表封面图、favicon 随站点 Logo 及侧栏收窄
- 前台列表/详情/标签页标签统一 antd Tag;标签页改 CheckableTagGroup 单选 (选中态由组件承接,再点已选标签回到全部);移除首页标签筛选条, 标签入口收敛至顶部「标签」页 - 公开列表新增 cover 字段(取正文第一张站内图,store.FirstImageRef), 首页条目左侧显示封面缩略图,无图条目保持纯文字 - favicon 随站点 Logo:webui.Meta.Icon 服务端注入 index.html, 前端 useSiteTitle 兜底(dev 模板占位符场景)并即时生效; 设置页「重置默认」清空 Logo 后回退内置 /favicon.svg - 后台侧栏改 antd Menu(inline 分组),宽度 256→208、窄侧栏档 224→184
This commit is contained in:
@@ -4,11 +4,20 @@ import { api } from '../lib/api'
|
||||
import type { SiteSettings } from '../lib/api'
|
||||
|
||||
export function useSiteTitle() {
|
||||
return useQuery({
|
||||
const { data } = useQuery({
|
||||
queryKey: ['site'],
|
||||
queryFn: () => api<SiteSettings>('/api/site'),
|
||||
staleTime: 5 * 60_000,
|
||||
})
|
||||
|
||||
// favicon 随站点 Logo:生产由服务端注入 index.html,此处兜底(dev 模板占位符
|
||||
// 不会被渲染)并保证设置变更后 SPA 内即时生效
|
||||
useEffect(() => {
|
||||
const link = document.querySelector<HTMLLinkElement>('link[rel="icon"]')
|
||||
if (link) link.href = data?.site_logo || '/favicon.svg'
|
||||
}, [data?.site_logo])
|
||||
|
||||
return { data }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user