将终止本机全部 SimpleLite 进程;重启后按当前启动模式重新拉起。
+将终止本机全部 Simple3 进程;重启后按当前启动模式重新拉起。
现版本仅记录文件路径作为元信息。3D 渲染替代矩形将在后续阶段实现(CycleGUI Workspace LoadModel)。 - 如需上传文件到服务器请先用其它方式将模型放到 SimpleLite 可访问的相对路径。 + 如需上传文件到服务器请先用其它方式将模型放到 Simple3 可访问的相对路径。
diff --git a/frontends/apps/simple-platform-vue/src/views/admin/MapMonitorView.vue b/frontends/apps/simple-platform-vue/src/views/admin/MapMonitorView.vue index 2fdf1f0..8aa7c50 100644 --- a/frontends/apps/simple-platform-vue/src/views/admin/MapMonitorView.vue +++ b/frontends/apps/simple-platform-vue/src/views/admin/MapMonitorView.vue @@ -260,7 +260,7 @@ import { fetchMonitorConfigCached, invalidateMonitorConfigCache } from '@/utils/ import type { MapFocusKind } from '@/utils/mapObjectFocus' import { defaultVrHost } from '@/utils/vrender' defineProps<{ - /** 只读模式(运营端复用 MapMonitorView 时传 true):3D 不可编辑,选中信息面板动作改用运维白名单。 */ + /** 只读:3D 不可编辑,站点/路径编辑区隐藏。车辆动作一律走运维网关并记审计。 */ readOnly?: boolean }>() @@ -513,7 +513,7 @@ function onPick(_p: { x: number; y: number }) { // Workspace3D pick 坐标事件;监控页侧栏选中走 SSE selection-detail / select } -// SimpleLite 3D 端发送的对象命名规则(见 SimpleUI.cs / UISite.cs / TrackUiHelper): +// Simple3 3D 端发送的对象命名规则(见 SimpleUI.cs / UISite.cs / TrackUiHelper): // - 车辆:`Car-{id}` 或 `UICar-{id}`(不同入口不同前缀,正则同时兼容) // - 站点:`UISite-{id}` // - 路径:`UITrack-{id}` / `UICircularArcTrack-{id}` / `UIBezierTrack-{id}` / `UINurbsTrack-{id}` @@ -596,7 +596,7 @@ function applySelectionFromKindId(kind: 'site' | 'track' | 'car', id: number, na } /** - * SimpleLite 画布点选后通过 SSE `selection-detail` 广播(见 SimpleUI.BroadcastSelectionToWeb)。 + * Simple3 画布点选后通过 SSE `selection-detail` 广播(见 SimpleUI.BroadcastSelectionToWeb)。 * embed 模式通常不会 postMessage `workspace.select`,因此必须在此同步侧栏。 */ function onSelectionDetailFromStream(e: SelectionDetailEvent) { @@ -619,10 +619,14 @@ function onSelectionDetailFromStream(e: SelectionDetailEvent) { } } - if (e.kind && e.id) { + if (e.kind === 'site' || e.kind === 'track' || e.kind === 'car') { applySelectionFromKindId(e.kind, e.id, e.names) return } + if (e.kind === 'special' && e.id) { + const next = { kind: 'special', id: String(e.id), name: `装饰物 ${e.id}` } + if (!sameSelection(selection.value, next)) selection.value = next + } if (siteN > 0) { applySelectionFromKindId('site', e.siteIds![0]!, e.names) @@ -727,7 +731,7 @@ async function applyPendingPlayback() { if (!fileName || !workspaceReady.value) return pendingPlayback.value = null try { - // iframe 终端就绪后再启动:SimpleLite StartPlayback 会把回放控制条投影到该 webVRender 终端。 + // iframe 终端就绪后再启动:Simple3 StartPlayback 会把回放控制条投影到该 webVRender 终端。 await workspaceToolbarApi.startPlayback(fileName) ElMessage.success({ message: `已开始回放:${fileName}`, grouping: true }) } catch (err) { @@ -759,7 +763,7 @@ async function fallbackSelectionFromBackend() { } /** - * 选中并定位到指定车辆:① 同步 SimpleLite 3D 场景高亮;② 立即把相机定位(居中 + 2D 俯视) + * 选中并定位到指定车辆:① 同步 Simple3 3D 场景高亮;② 立即把相机定位(居中 + 2D 俯视) * 到该车,与原生「双击车辆行 = 选中+定位」一致。两个请求互不阻塞,各自独立提示错误 * (例如 iframe 未连接时相机定位会 503,但高亮仍可成功)。 */ @@ -872,10 +876,10 @@ async function refreshAll() { // - snapshot-tick:后端 1Hz 心跳,仅含 cars/missions/sites/tracks 数字,不带实际状态。**不要** // 在这里触发 refreshAll,否则会等价"1s 全量轮询 listCars+listMissions",比原来的 3s 轮询还 // 重。snapshot-tick 仅用于 `stream.connected` 心跳判定。 -// - selection-detail:画布点选后 SimpleLite 广播,驱动右侧「选中信息」面板(embed 模式主路径)。 +// - selection-detail:画布点选后 Simple3 广播,驱动右侧「选中信息」面板(embed 模式主路径)。 // - 其它 object-* / pick-result / project-*:本页不处理,由地图编辑页订阅。 // -// 实时通道未连接(旧 SimpleLite / 离线)时退回 3s 轮询保底。 +// 实时通道未连接(旧 Simple3 / 离线)时退回 3s 轮询保底。 const stream = useProjectionStream({ autoConnect: true }) const streamConnected = computed(() => stream.connected.value) diff --git a/frontends/apps/simple-platform-vue/src/views/admin/MissionEditorView.vue b/frontends/apps/simple-platform-vue/src/views/admin/MissionEditorView.vue index 69f0de0..82dd25d 100644 --- a/frontends/apps/simple-platform-vue/src/views/admin/MissionEditorView.vue +++ b/frontends/apps/simple-platform-vue/src/views/admin/MissionEditorView.vue @@ -17,7 +17,7 @@ * (UiDiscoveryCache.MissionCreatableTypes 同源),这里直接用 ReflectionManagerPanel * 接入,按下「新建任务」会列出所有 MissionType 子类(含 taskflow / trigger)。 * - * 旧版本的 DataTablePro + listMissions mock 已经下线,所有数据走 SimpleLite 反射 API。 + * 旧版本的 DataTablePro + listMissions mock 已经下线,所有数据走 Simple3 反射 API。 */ import ReflectionManagerPanel from '@/components/reflection/ReflectionManagerPanel.vue' diff --git a/frontends/apps/simple-platform-vue/src/views/admin/ProjectPropertiesView.vue b/frontends/apps/simple-platform-vue/src/views/admin/ProjectPropertiesView.vue index e9287c4..502a5f1 100644 --- a/frontends/apps/simple-platform-vue/src/views/admin/ProjectPropertiesView.vue +++ b/frontends/apps/simple-platform-vue/src/views/admin/ProjectPropertiesView.vue @@ -6,7 +6,7 @@ v-if="activeTab === 'project'" ref="projectEditor" target-label="项目属性" - description="对应 SimpleLite 桌面端主菜单「项目属性…」。编辑字段后点「保存」即可一次完成内存生效 + 写回项目 JSON 文件(含全部场景/车辆/路径/属性)。" + description="对应 Simple3 桌面端主菜单「项目属性…」。编辑字段后点「保存」即可一次完成内存生效 + 写回项目 JSON 文件(含全部场景/车辆/路径/属性)。" :loader="loadProject" :on-set="setProjectField" :on-save="saveProject" @@ -18,7 +18,7 @@ v-if="activeTab === 'app-config'" ref="appConfigEditor" target-label="核心配置" - description="对应 SimpleLite 桌面端主菜单「核心配置 → 编辑配置…」。修改后点「保存」即可一次完成内存生效 + 写入可执行目录下的 simple.json。" + description="对应 Simple3 桌面端主菜单「核心配置 → 编辑配置…」。修改后点「保存」即可一次完成内存生效 + 写入可执行目录下的 simple.json。" :loader="loadAppConfig" :on-set="setAppConfigField" :on-save="saveAppConfig" @@ -48,7 +48,7 @@ async function loadProject(): Promise「默认」从 SimpleLite 拉取全部车型字段;「刷新」从数据库读取;「保存」将全部字段写入数据库。
+「默认」从 Simple3 拉取全部车型字段;「刷新」从数据库读取;「保存」将全部字段写入数据库。
勾选「地图监控」右侧选中信息面板要展示的内容白名单(按对象类型 - 车辆 / 站点 / 路径 分组)。
三组分别控制 属性、状态、动作 Tab 里可见的字段 / 状态项 / 可执行方法。
- 每组留空 = 显示全部;勾选任何一项即进入白名单模式(仅显示已勾选)。保存后直接写入 SimpleLite 的
+ 每组留空 = 显示全部;勾选任何一项即进入白名单模式(仅显示已勾选)。保存后直接写入 Simple3 的
simple.json (Configuration.conf.monitorVisibility)。
- 延迟 = 本机到车辆 WatchDog(:9776) 的 TCP 往返;故障率 = 报警占用时长 ÷ 自上线以来运行时长(SimpleLite 进程内累计) + 延迟 = 本机到车辆 WatchDog(:9776) 的 TCP 往返;故障率 = 报警占用时长 ÷ 自上线以来运行时长(Simple3 进程内累计)