Files
Migu2.0/MiGu.Server/wwwroot/assets/mapEdit-BiAzHHno.js
T
zhaowei.huangandCursor 7382e85598 feat(platform): 部署配置向导 + 地图管理,地图编辑器接入统一存取与 AI 助手
- 配置向导:登录按 deployment 画像引导平台选型(导航方式/模块/场景),未完成则路由守卫强制进入 /wizard;选型驱动菜单按需裁剪,并联动 SimpleLite 写 plugins/active-scenes.json + 透传 --scenes 选择性加载导航场景插件
- 地图管理页:服务器地图列表/使用/重命名/删除、地图合并、多地图连接管理
- 地图编辑器:项目存取改为存入地图管理统一目录(同名替换确认),支持 ?map=/?new= 进入,新增右侧可停靠 AI 助手面板
- 集成 PTL 拣选模块;新增车队分配面板(运维总览/筛选联动)
- SimpleLiteBuildSync 同步运行时依赖 DLL;重新构建前端静态资源

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-03 09:37:07 +08:00

2 lines
2.4 KiB
JavaScript

import{aU as t}from"./index-368apsQG.js";const s="/sl/projection/map-edit",r="/sl/projection/ai-config";async function a(e){const{data:o}=await e;if(!o?.success)throw new Error(o?.message??"request failed");return o.data}const m={createSite:e=>a(t.post(`${s}/objects/site`,e)),createTrack:(e,o)=>a(t.post(`${s}/objects/${e}`,o)),createImage:e=>a(t.post(`${s}/objects/image`,e)),createText:e=>a(t.post(`${s}/objects/text`,e)),createModel:e=>a(t.post(`${s}/objects/model`,e)),createCar:e=>a(t.post(`${s}/objects/car`,e)),deleteObject:(e,o)=>a(t.delete(`${s}/objects/${e}/${o}`)),batch:e=>a(t.post(`${s}/objects/batch`,{ops:e})),copyFieldsTo:(e,o,c,p)=>a(t.post(`${s}/objects/${e}/${o}/fields/copy-to`,{fieldNames:c,targets:p})),pick:()=>a(t.post(`${s}/pick`)),dashboardSummary:()=>a(t.get(`${s}/dashboard/summary`)),uploadAsset:(e,o)=>a(t.post(`${s}/assets/upload`,{filename:e,data:o},{headers:{"Content-Type":"multipart/form-data"}})),aiMapGenerate:e=>a(t.post(`${s}/ai/map-generate`,e)),projectSave:e=>a(t.post(`${s}/project/save`,{path:e??""})),projectLoad:e=>a(t.post(`${s}/project/load`,{path:e})),projectCurrent:()=>a(t.get(`${s}/project/current`)),projectBrowse:e=>a(t.get(`${s}/project/browse`,{params:e?{dir:e}:{}})),projectNativePickOpen:e=>a(t.post(`${s}/project/native-pick-open`,{initialDir:e??""})),projectNativePickSave:(e,o)=>a(t.post(`${s}/project/native-pick-save`,{initialDir:e??"",suggestedFileName:o??"project.current.json"})),sampleSitesAlongTrack:(e,o)=>a(t.post(`${s}/objects/track/${e}/sample-sites`,o)),getViewFilter:()=>a(t.get(`${s}/view-filter`)),setViewFilter:e=>a(t.post(`${s}/view-filter`,e))},$={get:()=>a(t.get(`${r}/`)),save:e=>a(t.post(`${r}/`,e))},d={list:()=>a(t.get(`${s}/maps`)),sceneTaskStatus:()=>a(t.get(`${s}/maps/scene-task-status`)),async save(e,o=!1){const{data:c}=await t.post(`${s}/maps/save`,{name:e,overwrite:o});return c?.success?{ok:!0,data:c.data}:{ok:!1,conflict:c?.code===409,message:c?.message??"保存失败"}},open:e=>a(t.post(`${s}/maps/open`,{name:e})),use:e=>a(t.post(`${s}/maps/use`,{name:e})),delete:e=>a(t.delete(`${s}/maps/${encodeURIComponent(e)}`)),rename:(e,o)=>a(t.post(`${s}/maps/rename`,{from:e,to:o})),async merge(e,o,c=!1){const{data:p}=await t.post(`${s}/maps/merge`,{sources:e,target:o,overwrite:c});return p?.success?{ok:!0,data:p.data}:{ok:!1,conflict:p?.code===409&&(p?.message??"").includes("已存在"),message:p?.message??"合并失败"}}};export{$ as a,d as b,m};