import type { GlobalConfig, NavConfig, SectionBlock, I18nEntry, ProductsData } from '~/types/site'; /** * 官网前台公开接口服务层 * * 消费 dashboard 后端的 /api/site/* 只读接口(免鉴权)。 */ export function useSiteApi() { const { get } = useRequest(); /** 全局配置:站点信息 + 页脚 + 社交链接 + SEO 默认值 */ function getGlobal() { return get('/site/global'); } /** 导航:可见入口 + 外观 */ function getNav() { return get('/site/nav'); } /** Section 区块列表(按页面类型,仅可见) */ function getSections(pageType: string, productId?: number) { const params: Record = { page_type: pageType }; if (productId) params.product_id = productId; return get<{ items: SectionBlock[]; total: number }>('/site/sections', params); } /** i18n 词条列表 */ function getI18n() { return get<{ items: I18nEntry[]; total: number }>('/site/i18n'); } /** 产品:可见系列及其下可见产品 */ function getProducts() { return get('/site/products'); } return { getGlobal, getNav, getSections, getI18n, getProducts }; }