From 7aa0690206919668e32f772c9d00998e9d00894a Mon Sep 17 00:00:00 2001 From: cuitw <1051735452@qq.com> Date: Mon, 30 Mar 2026 10:52:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=AA=E5=9B=BE=E5=B1=95=E7=A4=BA=EF=BC=8C?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E5=90=84=E7=A7=8D=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/web/controller/RoutesController.java | 43 +- ruoyi-ui/src/api/system/routes.js | 18 + ruoyi-ui/src/views/cesiumMap/ContextMenu.vue | 74 ++- ruoyi-ui/src/views/cesiumMap/index.vue | 698 +++++++++++++++++++-- .../src/views/childRoom/ScreenshotGalleryPanel.vue | 481 ++++++++++++++ ruoyi-ui/src/views/childRoom/WhiteboardPanel.vue | 62 +- ruoyi-ui/src/views/childRoom/index.vue | 286 ++++++++- ruoyi-ui/src/views/dialogs/RouteEditDialog.vue | 14 +- 8 files changed, 1561 insertions(+), 115 deletions(-) create mode 100644 ruoyi-ui/src/views/childRoom/ScreenshotGalleryPanel.vue diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/RoutesController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/RoutesController.java index ee09762..01ea4e3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/RoutesController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/RoutesController.java @@ -192,6 +192,46 @@ public class RoutesController extends BaseController } /** + * 从 Redis 获取「截图展示」数据(GET + roomId 查询参数) + * 与保存共用路径前缀、方法不同,避免与其它 GET 字面路径、网关规则混淆 + */ + @PreAuthorize("@ss.hasPermi('system:routes:query')") + @GetMapping("/roomScreenshotGallery") + public AjaxResult getScreenshotGalleryData(@RequestParam Long roomId) + { + if (roomId == null) { + return AjaxResult.error("房间ID不能为空"); + } + String key = "room:" + String.valueOf(roomId) + ":screenshot_gallery"; + String val = fourTRedisTemplate.opsForValue().get(key); + if (val != null && !val.isEmpty()) { + try { + return success(JSON.parseObject(val)); + } catch (Exception e) { + return success(val); + } + } + return success(); + } + + /** + * 保存「截图展示」悬浮窗数据到 Redis(POST 与上面 GET 同一路径) + */ + @PreAuthorize("@ss.hasPermi('system:routes:edit')") + @PostMapping("/roomScreenshotGallery") + public AjaxResult saveScreenshotGalleryData(@RequestBody java.util.Map params) + { + Object roomId = params.get("roomId"); + Object data = params.get("data"); + if (roomId == null || data == null) { + return AjaxResult.error("参数不完整"); + } + String key = "room:" + String.valueOf(roomId) + ":screenshot_gallery"; + fourTRedisTemplate.opsForValue().set(key, data.toString()); + return success(); + } + + /** * 保存六步法任务页数据到 Redis(背景、图标、文本框) */ @PreAuthorize("@ss.hasPermi('system:routes:edit')") @@ -395,9 +435,10 @@ public class RoutesController extends BaseController /** * 获取实体部署与航线详细信息 + * 路径仅匹配数字 id,避免与 /get4TData、/getScreenshotGalleryData 等字面路径冲突 */ @PreAuthorize("@ss.hasPermi('system:routes:query')") - @GetMapping(value = "/{id}") + @GetMapping(value = "/{id:\\d+}") public AjaxResult getInfo(@PathVariable("id") Long id) { return success(routesService.selectRoutesById(id)); diff --git a/ruoyi-ui/src/api/system/routes.js b/ruoyi-ui/src/api/system/routes.js index 124a5e1..ca6c9af 100644 --- a/ruoyi-ui/src/api/system/routes.js +++ b/ruoyi-ui/src/api/system/routes.js @@ -93,6 +93,24 @@ export function get4TData(params) { }) } +// 截图展示:同一路径 GET 读 / POST 写(Redis),与 4T 同权限 +export function saveScreenshotGalleryData(data) { + return request({ + url: '/system/routes/roomScreenshotGallery', + method: 'post', + data, + headers: { repeatSubmit: false } + }) +} + +export function getScreenshotGalleryData(params) { + return request({ + url: '/system/routes/roomScreenshotGallery', + method: 'get', + params + }) +} + // 保存六步法任务页数据到 Redis(背景、图标、文本框) export function saveTaskPageData(data) { return request({ diff --git a/ruoyi-ui/src/views/cesiumMap/ContextMenu.vue b/ruoyi-ui/src/views/cesiumMap/ContextMenu.vue index 9c66f78..336c9d3 100644 --- a/ruoyi-ui/src/views/cesiumMap/ContextMenu.vue +++ b/ruoyi-ui/src/views/cesiumMap/ContextMenu.vue @@ -9,9 +9,13 @@ - +