feat: wire guide data source and POI focus UI

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
lyf
2026-06-12 09:25:22 +08:00
parent a6bfda30e1
commit 2055b13b90
58 changed files with 5768 additions and 1898 deletions

View File

@@ -0,0 +1,123 @@
import type {
MuseumExhibit,
MuseumHall
} from '@/domain/museum'
export interface MuseumContentProvider {
listExhibits(): Promise<MuseumExhibit[]>
listHalls(): Promise<MuseumHall[]>
}
const transitionalHalls: MuseumHall[] = [
{
id: 'hall-evolution',
name: '演化厅',
floorId: 'L-1',
floorLabel: 'B1',
description: '自然演化主题内容。当前为内容仓储过渡数据,待 CMS/API 接入后替换。',
image: '/static/hall-placeholder.jpg',
exhibitCount: 3,
area: '待补充'
},
{
id: 'hall-dinosaur',
name: '恐龙厅',
floorId: 'L2',
floorLabel: '2F',
description: '恐龙与古生物主题内容。当前为内容仓储过渡数据,待 CMS/API 接入后替换。',
image: '/static/hall-placeholder.jpg',
exhibitCount: 2,
area: '待补充'
},
{
id: 'hall-biology',
name: '生物厅',
floorId: 'L3',
floorLabel: '3F',
description: '生物多样性主题内容。当前为内容仓储过渡数据,待 CMS/API 接入后替换。',
image: '/static/hall-placeholder.jpg',
exhibitCount: 2,
area: '待补充'
}
]
const transitionalExhibits: MuseumExhibit[] = [
{
id: 'exhibit-ginkgo-fossil',
name: '银杏化石',
hallId: 'hall-evolution',
hallName: '演化厅',
floorId: 'L-1',
floorLabel: 'B1',
image: '/static/exhibit-placeholder.jpg',
description: '银杏化石内容待由正式内容库补充。当前仅用于讲解业务架构迁移。',
tags: ['化石', '古植物']
},
{
id: 'exhibit-trilobite-fossil',
name: '三叶虫化石',
hallId: 'hall-evolution',
hallName: '演化厅',
floorId: 'L-1',
floorLabel: 'B1',
image: '/static/exhibit-placeholder.jpg',
description: '三叶虫化石内容待由正式内容库补充。当前仅用于讲解业务架构迁移。',
tags: ['化石', '古生物']
},
{
id: 'exhibit-brachiosaurus',
name: '腕龙骨骼',
hallId: 'hall-dinosaur',
hallName: '恐龙厅',
floorId: 'L2',
floorLabel: '2F',
image: '/static/exhibit-placeholder.jpg',
description: '腕龙骨骼内容待由正式内容库补充。当前仅用于讲解业务架构迁移。',
tags: ['恐龙', '骨骼']
},
{
id: 'exhibit-archaeopteryx',
name: '始祖鸟标本',
hallId: 'hall-evolution',
hallName: '演化厅',
floorId: 'L-1',
floorLabel: 'B1',
image: '/static/exhibit-placeholder.jpg',
description: '始祖鸟标本内容待由正式内容库补充。当前仅用于讲解业务架构迁移。',
tags: ['演化', '标本']
},
{
id: 'exhibit-mammoth-tusk',
name: '猛犸象象牙',
hallId: 'hall-biology',
hallName: '生物厅',
floorId: 'L3',
floorLabel: '3F',
image: '/static/exhibit-placeholder.jpg',
description: '猛犸象象牙内容待由正式内容库补充。当前仅用于讲解业务架构迁移。',
tags: ['古生物', '标本']
},
{
id: 'exhibit-coral-reef',
name: '珊瑚礁标本',
hallId: 'hall-biology',
hallName: '生物厅',
floorId: 'L3',
floorLabel: '3F',
image: '/static/exhibit-placeholder.jpg',
description: '珊瑚礁标本内容待由正式内容库补充。当前仅用于讲解业务架构迁移。',
tags: ['海洋生物', '标本']
}
]
export class StaticMuseumContentProvider implements MuseumContentProvider {
async listExhibits() {
return transitionalExhibits
}
async listHalls() {
return transitionalHalls
}
}
export const staticMuseumContentProvider = new StaticMuseumContentProvider()