初始化
This commit is contained in:
24
app/plugins/fetch-menu.ts
Normal file
24
app/plugins/fetch-menu.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import { getSiteInfo } from '@/api/cms/cmsWebsite'
|
||||
import { useMenu, mapNavItem } from '@/composables/useMenu'
|
||||
import type { CmsNavigation } from '@/api/cms/cmsNavigation/model'
|
||||
|
||||
/**
|
||||
* 应用启动时获取站点信息(含导航菜单),写入 useMenu() 状态
|
||||
*/
|
||||
export default defineNuxtPlugin(async () => {
|
||||
const menu = useMenu()
|
||||
|
||||
// 如果已有数据,跳过
|
||||
if (menu.value.length) return
|
||||
|
||||
try {
|
||||
const data = await getSiteInfo()
|
||||
// getSiteInfo 返回 CmsWebsite,其中 topNavs 是 CmsNavigation[]
|
||||
const topNavs = (data as any)?.topNavs as CmsNavigation[] | undefined
|
||||
if (topNavs?.length) {
|
||||
menu.value = mapNavItem(topNavs)
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn('[fetch-menu] 获取导航菜单失败', e)
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user