新增磁导航内部交管和信号交互界面

This commit is contained in:
ykkokluo
2026-08-24 16:16:58 +08:00
parent 125372b157
commit 134c7480b3
21 changed files with 1188 additions and 16 deletions
@@ -29,6 +29,25 @@ const MOCK_OPTIONS: WizardOptions = {
}
}
const NAV_SCENE: Record<string, string> = {
magnetic: 'scene.mag',
qrcode: 'scene.qrlidar',
laser: 'scene.qrlidar'
}
function toLauncherSceneIds(kinds: string[]): string[] {
const result: string[] = []
for (const k of kinds) {
const id = NAV_SCENE[k] ?? `scene.${k}`
if (!result.includes(id)) result.push(id)
}
if (kinds.some((k) => k.toLowerCase() === 'magnetic') && !result.includes('scene.signal')) {
result.push('scene.signal')
}
if (result.length > 0 && !result.includes('scene.device')) result.push('scene.device')
return result
}
let mockProfile: DeploymentProfileDto = {
configured: false,
platformType: 'standard',
@@ -61,7 +80,7 @@ export async function saveWizardProfile(req: SaveWizardRequest): Promise<Deploym
navigationKinds: req.navigationKinds ?? [],
scenarios: req.scenarios ?? [],
configured: true,
activeSceneIds: (req.navigationKinds ?? []).map((k) => `scene.${k}`)
activeSceneIds: toLauncherSceneIds(req.navigationKinds ?? [])
}
return mockProfile
}