Forráskód Böngészése

优化跨域配置,支持同域的前后端分离部署

648540858 2 éve
szülő
commit
a7c3cf5316
71 módosított fájl, 173 hozzáadás és 191 törlés
  1. 1 1
      doc/_content/ability/gis.md
  2. 8 3
      src/main/java/com/genersoft/iot/vmp/conf/ApiAccessFilter.java
  3. 4 2
      src/main/java/com/genersoft/iot/vmp/conf/security/AnonymousAuthenticationEntryPoint.java
  4. 2 0
      src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
  5. 1 1
      src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/MobilePosition/MobilePositionController.java
  6. 1 1
      src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/SseController/SseController.java
  7. 1 7
      src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/alarm/AlarmController.java
  8. 1 4
      src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceConfig.java
  9. 1 1
      src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceControl.java
  10. 1 1
      src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
  11. 1 1
      src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/gbStream/GbStreamController.java
  12. 1 1
      src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java
  13. 1 1
      src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
  14. 1 1
      src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java
  15. 1 1
      src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java
  16. 7 9
      src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/ptz/PtzController.java
  17. 1 1
      src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/record/GBRecordController.java
  18. 1 8
      src/main/java/com/genersoft/iot/vmp/vmanager/log/LogController.java
  19. 1 1
      src/main/java/com/genersoft/iot/vmp/vmanager/record/RecordController.java
  20. 3 9
      src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java
  21. 1 1
      src/main/java/com/genersoft/iot/vmp/vmanager/streamProxy/StreamProxyController.java
  22. 1 1
      src/main/java/com/genersoft/iot/vmp/vmanager/streamPush/StreamPushController.java
  23. 1 5
      src/main/java/com/genersoft/iot/vmp/vmanager/user/RoleController.java
  24. 1 1
      src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java
  25. 1 1
      src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiControlController.java
  26. 1 2
      src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiController.java
  27. 1 1
      src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiDeviceController.java
  28. 1 1
      src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiStreamController.java
  29. 1 1
      src/main/java/com/genersoft/iot/vmp/web/gb28181/AuthController.java
  30. 1 2
      web_src/build/utils.js
  31. 5 5
      web_src/config/index.js
  32. 1 1
      web_src/index.html
  33. 2 2
      web_src/src/components/CloudRecord.vue
  34. 5 5
      web_src/src/components/CloudRecordDetail.vue
  35. 5 5
      web_src/src/components/DeviceList.vue
  36. 8 8
      web_src/src/components/GBRecordDetail.vue
  37. 1 1
      web_src/src/components/Login.vue
  38. 2 2
      web_src/src/components/ParentPlatformList.vue
  39. 5 5
      web_src/src/components/PushVideoList.vue
  40. 6 6
      web_src/src/components/StreamProxyList.vue
  41. 2 2
      web_src/src/components/UserManager.vue
  42. 6 6
      web_src/src/components/channelList.vue
  43. 4 4
      web_src/src/components/console.vue
  44. 1 1
      web_src/src/components/dialog/MediaServerEdit.vue
  45. 4 4
      web_src/src/components/dialog/StreamProxyEdit.vue
  46. 1 1
      web_src/src/components/dialog/SyncChannelProgress.vue
  47. 2 2
      web_src/src/components/dialog/addUser.vue
  48. 1 1
      web_src/src/components/dialog/catalogEdit.vue
  49. 1 1
      web_src/src/components/dialog/changePassword.vue
  50. 1 1
      web_src/src/components/dialog/changePasswordForAdmin.vue
  51. 1 1
      web_src/src/components/dialog/changePushKey.vue
  52. 1 1
      web_src/src/components/dialog/channelMapInfobox.vue
  53. 1 1
      web_src/src/components/dialog/chooseChannel.vue
  54. 4 4
      web_src/src/components/dialog/chooseChannelForCatalog.vue
  55. 5 5
      web_src/src/components/dialog/chooseChannelForGb.vue
  56. 5 5
      web_src/src/components/dialog/chooseChannelForStream.vue
  57. 1 1
      web_src/src/components/dialog/deviceEdit.vue
  58. 7 7
      web_src/src/components/dialog/devicePlayer.vue
  59. 2 2
      web_src/src/components/dialog/getCatalog.vue
  60. 1 1
      web_src/src/components/dialog/importChannel.vue
  61. 1 1
      web_src/src/components/dialog/onvifEdit.vue
  62. 3 3
      web_src/src/components/dialog/platformEdit.vue
  63. 3 3
      web_src/src/components/dialog/pushStreamEdit.vue
  64. 1 1
      web_src/src/components/dialog/queryTrace.vue
  65. 4 4
      web_src/src/components/dialog/recordDownload.vue
  66. 1 1
      web_src/src/components/live.vue
  67. 1 1
      web_src/src/components/map.vue
  68. 5 5
      web_src/src/components/service/DeviceService.js
  69. 7 7
      web_src/src/components/service/MediaServer.js
  70. 4 4
      web_src/src/main.js
  71. 3 0
      web_src/static/js/mapConfig.js

+ 1 - 1
doc/_content/ability/gis.md

@@ -14,7 +14,7 @@ WVP提供了简单的电子地图用于设备的定位以及移动设备的轨
 PS: 目前的底图仅用用作演示和学习,商用情况请自行购买授权使用。
 
 ### 更换底图以及底图配置
-目前WVP支持使用了更换底图,配置文件在web_src/static/js/mapConfig.js,请修改后重新编译前端文件。
+目前WVP支持使用了更换底图,配置文件在web_src/static/js/config.js,请修改后重新编译前端文件。
 ```javascript
 window.mapParam = {
   // 开启/关闭地图功能

+ 8 - 3
src/main/java/com/genersoft/iot/vmp/conf/ApiAccessFilter.java

@@ -48,6 +48,13 @@ public class ApiAccessFilter extends OncePerRequestFilter {
         long start = System.currentTimeMillis(); // 请求进入时间
         String uriName = ApiSaveConstant.getVal(servletRequest.getRequestURI());
 
+        String origin = servletRequest.getHeader("Origin");
+        servletResponse.setContentType("application/json;charset=UTF-8");
+        servletResponse.setHeader("Access-Control-Allow-Origin", origin != null ? origin : "*");
+        servletResponse.setHeader("Access-Control-Allow-Credentials", "true");
+        servletResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, PATCH, DELETE, PUT");
+        servletResponse.setHeader("Access-Control-Max-Age", "3600");
+        servletResponse.setHeader("Access-Control-Allow-Headers", "token,Content-Type,Content-Length, Authorization, Accept,X-Requested-With,domain,zdy");
         filterChain.doFilter(servletRequest, servletResponse);
 
         if (uriName != null && userSetting != null && userSetting.getLogInDatebase() != null && userSetting.getLogInDatebase()) {
@@ -65,9 +72,7 @@ public class ApiAccessFilter extends OncePerRequestFilter {
             logDto.setUri(servletRequest.getRequestURI());
             logDto.setCreateTime(DateUtil.getNow());
             logService.add(logDto);
-//            logger.warn("[Api Access]  [{}] [{}] [{}] [{}] [{}] {}ms",
-//                    uriName, servletRequest.getMethod(), servletRequest.getRequestURI(), servletRequest.getRemoteAddr(), HttpStatus.valueOf(servletResponse.getStatus()),
-//                    System.currentTimeMillis() - start);
+
 
         }
     }

+ 4 - 2
src/main/java/com/genersoft/iot/vmp/conf/security/AnonymousAuthenticationEntryPoint.java

@@ -2,7 +2,6 @@ package com.genersoft.iot.vmp.conf.security;
 
 import com.alibaba.fastjson2.JSONObject;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
-import org.apache.poi.hssf.eventmodel.ERFListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.security.core.AuthenticationException;
@@ -25,7 +24,10 @@ public class AnonymousAuthenticationEntryPoint implements AuthenticationEntryPoi
     @Override
     public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) {
         // 允许跨域
-        response.setHeader("Access-Control-Allow-Origin", "*");
+        String origin = request.getHeader("Origin");
+        response.setHeader("Access-Control-Allow-Credentials", "true");
+        response.setHeader("Access-Control-Allow-Origin", origin != null ? origin : "*");
+        response.setHeader("Access-Control-Allow-Methods", "PUT,POST,	GET,DELETE,OPTIONS");
         // 允许自定义请求头token(允许head跨域)
         response.setHeader("Access-Control-Allow-Headers", "token, Accept, Origin, X-Requested-With, Content-Type, Last-Modified");
         response.setHeader("Content-type", "application/json;charset=UTF-8");

+ 2 - 0
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java

@@ -112,6 +112,7 @@ public class ZLMHttpHookListener {
      * 服务器定时上报时间,上报间隔可配置,默认10s上报一次
      */
     @ResponseBody
+    
     @PostMapping(value = "/on_server_keepalive", produces = "application/json;charset=UTF-8")
     public HookResult onServerKeepalive(@RequestBody OnServerKeepaliveHookParam param) {
 
@@ -135,6 +136,7 @@ public class ZLMHttpHookListener {
      * 播放器鉴权事件,rtsp/rtmp/http-flv/ws-flv/hls的播放都将触发此鉴权事件。
      */
     @ResponseBody
+    
     @PostMapping(value = "/on_play", produces = "application/json;charset=UTF-8")
     public HookResult onPlay(@RequestBody OnPlayHookParam param) {
         if (logger.isDebugEnabled()) {

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/MobilePosition/MobilePositionController.java

@@ -30,7 +30,7 @@ import java.util.UUID;
  *  位置信息管理
  */
 @Tag(name  = "位置信息管理")
-@CrossOrigin
+
 @RestController
 @RequestMapping("/api/position")
 public class MobilePositionController {

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/SseController/SseController.java

@@ -17,7 +17,7 @@ import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
  * @data: 2021-01-20
  */
 @Tag(name  = "SSE推送")
-@CrossOrigin
+
 @Controller
 @RequestMapping("/api")
 public class SseController {

+ 1 - 7
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/alarm/AlarmController.java

@@ -6,24 +6,18 @@ import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm;
 import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
-import com.genersoft.iot.vmp.media.zlm.ZLMHttpHookListener;
 import com.genersoft.iot.vmp.service.IDeviceAlarmService;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.utils.DateUtil;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
-import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
 import com.github.pagehelper.PageInfo;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.responses.ApiResponse;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
 import org.springframework.util.ObjectUtils;
-import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.sip.InvalidArgumentException;
@@ -34,7 +28,7 @@ import java.util.Arrays;
 import java.util.List;
 
 @Tag(name = "报警信息管理")
-@CrossOrigin
+
 @RestController
 @RequestMapping("/api/alarm")
 public class AlarmController {

+ 1 - 4
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceConfig.java

@@ -14,7 +14,6 @@ import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
-
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -22,9 +21,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.ResponseEntity;
 import org.springframework.util.ObjectUtils;
-import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.context.request.async.DeferredResult;
 
@@ -34,7 +31,7 @@ import java.text.ParseException;
 import java.util.UUID;
 
 @Tag(name = "国标设备配置")
-@CrossOrigin
+
 @RestController
 @RequestMapping("/api/device/config")
 public class DeviceConfig {

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceControl.java

@@ -32,7 +32,7 @@ import java.text.ParseException;
 import java.util.UUID;
 
 @Tag(name  = "国标设备控制")
-@CrossOrigin
+
 @RestController
 @RequestMapping("/api/device/control")
 public class DeviceControl {

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java

@@ -46,7 +46,7 @@ import java.util.*;
 
 @Tag(name  = "国标设备查询", description = "国标设备查询")
 @SuppressWarnings("rawtypes")
-@CrossOrigin
+
 @RestController
 @RequestMapping("/api/device/query")
 public class DeviceQuery {

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/gbStream/GbStreamController.java

@@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.*;
 import java.util.List;
 
 @Tag(name  = "视频流关联到级联平台")
-@CrossOrigin
+
 @RestController
 @RequestMapping("/api/gbStream")
 public class GbStreamController {

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java

@@ -24,7 +24,7 @@ import javax.servlet.http.HttpServletRequest;
 
 @Tag(name  = "媒体流相关")
 @Controller
-@CrossOrigin
+
 @RequestMapping(value = "/api/media")
 public class MediaController {
 

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java

@@ -37,7 +37,7 @@ import java.util.List;
  * 级联平台管理
  */
 @Tag(name  = "级联平台管理")
-@CrossOrigin
+
 @RestController
 @RequestMapping("/api/platform")
 public class PlatformController {

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java

@@ -40,7 +40,7 @@ import java.util.List;
 import java.util.UUID;
 
 @Tag(name  = "国标设备点播")
-@CrossOrigin
+
 @RestController
 @RequestMapping("/api/play")
 public class PlayController {

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java

@@ -40,7 +40,7 @@ import java.util.UUID;
  * @author lin
  */
 @Tag(name = "视频回放")
-@CrossOrigin
+
 @RestController
 @RequestMapping("/api/playback")
 public class PlaybackController {

+ 7 - 9
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/ptz/PtzController.java

@@ -1,7 +1,12 @@
 package com.genersoft.iot.vmp.vmanager.gb28181.ptz;
 
- 
+
 import com.genersoft.iot.vmp.conf.exception.ControllerException;
+import com.genersoft.iot.vmp.gb28181.bean.Device;
+import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
+import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
+import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
+import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -10,23 +15,16 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.ObjectUtils;
-import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.context.request.async.DeferredResult;
 
-import com.genersoft.iot.vmp.gb28181.bean.Device;
-import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
-import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
-import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
-import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
-
 import javax.sip.InvalidArgumentException;
 import javax.sip.SipException;
 import java.text.ParseException;
 import java.util.UUID;
 
 @Tag(name  = "云台控制")
-@CrossOrigin
+
 @RestController
 @RequestMapping("/api/ptz")
 public class PtzController {

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/record/GBRecordController.java

@@ -36,7 +36,7 @@ import java.text.ParseException;
 import java.util.UUID;
 
 @Tag(name  = "国标录像")
-@CrossOrigin
+
 @RestController
 @RequestMapping("/api/gb_record")
 public class GBRecordController {

+ 1 - 8
src/main/java/com/genersoft/iot/vmp/vmanager/log/LogController.java

@@ -6,25 +6,18 @@ import com.genersoft.iot.vmp.service.ILogService;
 import com.genersoft.iot.vmp.storager.dao.dto.LogDto;
 import com.genersoft.iot.vmp.utils.DateUtil;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
-import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
 import com.github.pagehelper.PageInfo;
-
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
 import org.springframework.util.ObjectUtils;
-import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
-import java.text.ParseException;
-
 @Tag(name  = "日志管理")
-@CrossOrigin
+
 @RestController
 @RequestMapping("/api/log")
 public class LogController {

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/vmanager/record/RecordController.java

@@ -14,7 +14,7 @@
 //import org.springframework.web.bind.annotation.*;
 //
 //@Tag(name  = "云端录像")
-//@CrossOrigin
+//
 //@RestController
 //@RequestMapping("/api/record")
 //public class RecordController {

+ 3 - 9
src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java

@@ -2,7 +2,6 @@ package com.genersoft.iot.vmp.vmanager.server;
 
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
-import com.genersoft.iot.vmp.VManageBootstrap;
 import com.genersoft.iot.vmp.common.SystemAllInfo;
 import com.genersoft.iot.vmp.common.VersionPo;
 import com.genersoft.iot.vmp.conf.SipConfig;
@@ -15,13 +14,10 @@ import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
 import com.genersoft.iot.vmp.service.*;
 import com.genersoft.iot.vmp.service.bean.MediaServerLoad;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
-import com.genersoft.iot.vmp.utils.SpringBeanFactory;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
 import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;
 import com.genersoft.iot.vmp.vmanager.bean.ResourceInfo;
 import com.genersoft.iot.vmp.vmanager.bean.SystemConfigInfo;
-import gov.nist.javax.sip.SipStackImpl;
-
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -31,14 +27,12 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.*;
 
-import javax.sip.ListeningPoint;
-import javax.sip.ObjectInUseException;
-import javax.sip.SipProvider;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
 
 @SuppressWarnings("rawtypes")
 @Tag(name = "服务控制")
-@CrossOrigin
+
 @RestController
 @RequestMapping("/api/server")
 public class ServerController {

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/vmanager/streamProxy/StreamProxyController.java

@@ -25,7 +25,7 @@ import org.springframework.web.bind.annotation.*;
  */
 @Tag(name = "拉流代理", description = "")
 @Controller
-@CrossOrigin
+
 @RequestMapping(value = "/api/proxy")
 public class StreamProxyController {
 

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/vmanager/streamPush/StreamPushController.java

@@ -41,7 +41,7 @@ import java.util.UUID;
 
 @Tag(name  = "推流信息管理")
 @Controller
-@CrossOrigin
+
 @RequestMapping(value = "/api/push")
 public class StreamPushController {
 

+ 1 - 5
src/main/java/com/genersoft/iot/vmp/vmanager/user/RoleController.java

@@ -6,20 +6,16 @@ import com.genersoft.iot.vmp.service.IRoleService;
 import com.genersoft.iot.vmp.storager.dao.dto.Role;
 import com.genersoft.iot.vmp.utils.DateUtil;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
-import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
-
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
 @Tag(name  = "角色管理")
-@CrossOrigin
+
 @RestController
 @RequestMapping("/api/role")
 public class RoleController {

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java

@@ -24,7 +24,7 @@ import javax.security.sasl.AuthenticationException;
 import java.util.List;
 
 @Tag(name  = "用户管理")
-@CrossOrigin
+
 @RestController
 @RequestMapping("/api/user")
 public class UserController {

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiControlController.java

@@ -18,7 +18,7 @@ import java.text.ParseException;
 /**
  * API兼容:设备控制
  */
-@CrossOrigin
+
 @RestController
 @RequestMapping(value = "/api/v1/control")
 public class ApiControlController {

+ 1 - 2
src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiController.java

@@ -6,7 +6,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
@@ -14,7 +13,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
  * API兼容:系统接口
  */
 @Controller
-@CrossOrigin
+
 @RequestMapping(value = "/api/v1")
 public class ApiController {
 

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiDeviceController.java

@@ -20,7 +20,7 @@ import java.util.List;
  * API兼容:设备信息
  */
 @SuppressWarnings("unchecked")
-@CrossOrigin
+
 @RestController
 @RequestMapping(value = "/api/v1/device")
 public class ApiDeviceController {

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiStreamController.java

@@ -26,7 +26,7 @@ import java.text.ParseException;
  * API兼容:实时直播
  */
 @SuppressWarnings(value = {"rawtypes", "unchecked"})
-@CrossOrigin
+
 @RestController
 @RequestMapping(value = "/api/v1/stream")
 public class ApiStreamController {

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/web/gb28181/AuthController.java

@@ -5,7 +5,7 @@ import com.genersoft.iot.vmp.storager.dao.dto.User;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-@CrossOrigin
+
 @RestController
 @RequestMapping(value = "/auth")
 public class AuthController {

+ 1 - 2
web_src/build/utils.js

@@ -47,8 +47,7 @@ exports.cssLoaders = function (options) {
     if (options.extract) {
       return ExtractTextPlugin.extract({
         use: loaders,
-        fallback: 'vue-style-loader',
-        publicPath: '../../'
+        fallback: 'vue-style-loader'
       })
     } else {
       return ['vue-style-loader'].concat(loaders)

+ 5 - 5
web_src/config/index.js

@@ -8,18 +8,18 @@ module.exports = {
   dev: {
 
     // Paths
-    assetsSubDirectory: './static',
-    assetsPublicPath: './',
+    assetsSubDirectory: 'static',
+    assetsPublicPath: '/',
     proxyTable: {
       '/debug': {
-        target: 'http://localhost:38080',
+        target: 'http://localhost:18080',
         changeOrigin: true,
         pathRewrite: {
           '^/debug': '/'
         }
       },
       '/static/snap': {
-        target: 'http://localhost:38080',
+        target: 'http://localhost:18080',
         changeOrigin: true,
         // pathRewrite: {
         //   '^/static/snap': '/static/snap'
@@ -61,7 +61,7 @@ module.exports = {
     // Paths
     assetsRoot: path.resolve(__dirname, '../../src/main/resources/static/'),
     assetsSubDirectory: './static',
-    assetsPublicPath: './',
+    assetsPublicPath: '/',
 
     /**
      * Source Maps

+ 1 - 1
web_src/index.html

@@ -13,7 +13,7 @@
     <script type="text/javascript" src="./static/js/EasyWasmPlayer.js"></script>
     <script type="text/javascript" src="./static/js/liveplayer-lib.min.js"></script>
     <script type="text/javascript" src="./static/js/ZLMRTCClient.js"></script>
-    <script type="text/javascript" src="./static/js/mapConfig.js"></script>
+    <script type="text/javascript" src="./static/js/config.js"></script>
     <div id="app"></div>
   </body>
 </html>

+ 2 - 2
web_src/src/components/CloudRecord.vue

@@ -133,7 +133,7 @@
         let that = this;
         this.$axios({
           method: 'get',
-          url:`./record_proxy/${that.mediaServerId}/api/record/list`,
+          url:`/record_proxy/${that.mediaServerId}/api/record/list`,
           params: {
             page: that.currentPage,
             count: that.count
@@ -185,7 +185,7 @@
         let that = this;
         this.$axios({
           method: 'delete',
-          url:`./record_proxy/api/record/delete`,
+          url:`/record_proxy/api/record/delete`,
           params: {
             page: that.currentPage,
             count: that.count

+ 5 - 5
web_src/src/components/CloudRecordDetail.vue

@@ -241,7 +241,7 @@
         let that = this;
         that.$axios({
           method: 'get',
-          url:`./record_proxy/${that.mediaServerId}/api/record/file/list`,
+          url:`/record_proxy/${that.mediaServerId}/api/record/file/list`,
           params: {
             app: that.recordFile.app,
             stream: that.recordFile.stream,
@@ -340,7 +340,7 @@
         let that = this;
         this.$axios({
           method: 'delete',
-          url:`./record_proxy/${that.mediaServerId}/api/record/delete`,
+          url:`/record_proxy/${that.mediaServerId}/api/record/delete`,
           params: {
             page: that.currentPage,
             count: that.count
@@ -359,7 +359,7 @@
         that.dateFilesObj = {};
         this.$axios({
           method: 'get',
-          url:`./record_proxy/${that.mediaServerId}/api/record/date/list`,
+          url:`/record_proxy/${that.mediaServerId}/api/record/date/list`,
           params: {
             app: that.recordFile.app,
             stream: that.recordFile.stream
@@ -408,7 +408,7 @@
         let that = this;
         this.$axios({
           method: 'get',
-          url:`./record_proxy/${that.mediaServerId}/api/record/file/download/task/add`,
+          url:`/record_proxy/${that.mediaServerId}/api/record/file/download/task/add`,
           params: {
             app: that.recordFile.app,
             stream: that.recordFile.stream,
@@ -433,7 +433,7 @@
         let that = this;
         this.$axios({
           method: 'get',
-          url:`./record_proxy/${that.mediaServerId}/api/record/file/download/task/list`,
+          url:`/record_proxy/${that.mediaServerId}/api/record/file/download/task/list`,
           params: {
             isEnd: isEnd,
           }

+ 5 - 5
web_src/src/components/DeviceList.vue

@@ -152,7 +152,7 @@ export default {
       this.getDeviceListLoading = true;
       this.$axios({
         method: 'get',
-        url: `./api/device/query/devices`,
+        url: `/api/device/query/devices`,
         params: {
           page: this.currentPage,
           count: this.count
@@ -182,7 +182,7 @@ export default {
       }).then(() => {
         this.$axios({
           method: 'delete',
-          url: `./api/device/query/devices/${row.deviceId}/delete`
+          url: `/api/device/query/devices/${row.deviceId}/delete`
         }).then((res) => {
           this.getDeviceList();
         }).catch((error) => {
@@ -208,7 +208,7 @@ export default {
       let that = this;
       this.$axios({
         method: 'get',
-        url: './api/device/query/devices/' + itemData.deviceId + '/sync'
+        url: '/api/device/query/devices/' + itemData.deviceId + '/sync'
       }).then((res) => {
         console.log("刷新设备结果:" + JSON.stringify(res));
         if (res.data.code !== 0) {
@@ -242,7 +242,7 @@ export default {
       await this.$axios({
         method: 'get',
         async: false,
-        url: `./api/device/query/${deviceId}/sync_status/`,
+        url: `/api/device/query/${deviceId}/sync_status/`,
       }).then((res) => {
         if (res.data.code == 0) {
           if (res.data.data.errorMsg !== null) {
@@ -261,7 +261,7 @@ export default {
       let that = this;
       this.$axios({
         method: 'post',
-        url: './api/device/query/transport/' + row.deviceId + '/' + row.streamMode
+        url: '/api/device/query/transport/' + row.deviceId + '/' + row.streamMode
       }).then(function (res) {
 
       }).catch(function (e) {

+ 8 - 8
web_src/src/components/GBRecordDetail.vue

@@ -197,7 +197,7 @@
         this.detailFiles = [];
         this.$axios({
           method: 'get',
-          url: './api/gb_record/query/' + this.deviceId + '/' + this.channelId + '?startTime=' + this.startTime + '&endTime=' + this.endTime
+          url: '/api/gb_record/query/' + this.deviceId + '/' + this.channelId + '?startTime=' + this.startTime + '&endTime=' + this.endTime
         }).then((res)=>{
           this.recordsLoading = false;
           if(res.data.code === 0) {
@@ -249,7 +249,7 @@
         } else {
           this.$axios({
             method: 'get',
-            url: './api/playback/start/' + this.deviceId + '/' + this.channelId + '?startTime=' + this.startTime + '&endTime=' +
+            url: '/api/playback/start/' + this.deviceId + '/' + this.channelId + '?startTime=' + this.startTime + '&endTime=' +
               this.endTime
           }).then((res)=> {
             if (res.data.code === 0) {
@@ -273,7 +273,7 @@
         console.log('前端控制:播放');
         this.$axios({
           method: 'get',
-          url: './api/playback/resume/' + this.streamId
+          url: '/api/playback/resume/' + this.streamId
         }).then((res)=> {
           this.$refs["recordVideoPlayer"].play(this.videoUrl)
         });
@@ -282,14 +282,14 @@
         console.log('前端控制:暂停');
         this.$axios({
           method: 'get',
-          url: './api/playback/pause/' + this.streamId
+          url: '/api/playback/pause/' + this.streamId
         }).then(function (res) {});
       },
       gbScale(command){
         console.log('前端控制:倍速 ' + command);
         this.$axios({
           method: 'get',
-          url: `./api/playback/speed/${this.streamId }/${command}`
+          url: `/api/playback/speed/${this.streamId }/${command}`
         }).then(function (res) {});
       },
       downloadRecord: function (row) {
@@ -311,7 +311,7 @@
         }else {
           this.$axios({
             method: 'get',
-            url: './api/gb_record/download/start/' + this.deviceId + '/' + this.channelId + '?startTime=' + row.startTime + '&endTime=' +
+            url: '/api/gb_record/download/start/' + this.deviceId + '/' + this.channelId + '?startTime=' + row.startTime + '&endTime=' +
               row.endTime + '&downloadSpeed=4'
           }).then( (res)=> {
             if (res.data.code === 0) {
@@ -332,7 +332,7 @@
         this.videoUrl = '';
         this.$axios({
           method: 'get',
-          url: './api/gb_record/download/stop/' + this.deviceId + "/" + this.channelId+ "/" + this.streamId
+          url: '/api/gb_record/download/stop/' + this.deviceId + "/" + this.channelId+ "/" + this.streamId
         }).then((res)=> {
           if (callback) callback(res)
         });
@@ -342,7 +342,7 @@
         this.videoUrl = '';
         this.$axios({
           method: 'get',
-          url: './api/playback/stop/' + this.deviceId + "/" + this.channelId + "/" + this.streamId
+          url: '/api/playback/stop/' + this.deviceId + "/" + this.channelId + "/" + this.streamId
         }).then(function (res) {
           if (callback) callback()
         });

+ 1 - 1
web_src/src/components/Login.vue

@@ -81,7 +81,7 @@ export default {
 
       this.$axios({
       	method: 'get',
-        url:"./api/user/login",
+        url:"/api/user/login",
         params: loginParam
       }).then(function (res) {
         window.clearTimeout(timeoutTask)

+ 2 - 2
web_src/src/components/ParentPlatformList.vue

@@ -128,7 +128,7 @@ export default {
         var that = this;
         that.$axios({
           method: 'delete',
-          url:`./api/platform/delete/${platform.serverGBId}`
+          url:`/api/platform/delete/${platform.serverGBId}`
         }).then(function (res) {
             if (res.data.code === 0) {
                 that.$message({
@@ -162,7 +162,7 @@ export default {
 
       this.$axios({
       	method: 'get',
-        url:`./api/platform/query/${that.count}/${that.currentPage}`
+        url:`/api/platform/query/${that.count}/${that.currentPage}`
       }).then(function (res) {
         if (res.data.code === 0) {
           that.total = res.data.data.total;

+ 5 - 5
web_src/src/components/PushVideoList.vue

@@ -171,7 +171,7 @@ export default {
       this.getDeviceListLoading = true;
       this.$axios({
         method: 'get',
-        url: `./api/push/list`,
+        url: `/api/push/list`,
         params: {
           page: that.currentPage,
           count: that.count,
@@ -197,7 +197,7 @@ export default {
       this.getListLoading = true;
       this.$axios({
         method: 'get',
-        url: './api/push/getPlayUrl',
+        url: '/api/push/getPlayUrl',
         params: {
           app: row.app,
           stream: row.stream,
@@ -223,7 +223,7 @@ export default {
       let that = this;
       that.$axios({
         method: "post",
-        url: "./api/push/stop",
+        url: "/api/push/stop",
         params: {
           app: row.app,
           streamId: row.stream
@@ -247,7 +247,7 @@ export default {
       let that = this;
       that.$axios({
         method: "delete",
-        url: "./api/push/remove_form_gb",
+        url: "/api/push/remove_form_gb",
         data: row
       }).then((res) => {
         if (res.data.code === 0) {
@@ -274,7 +274,7 @@ export default {
         let that = this;
         that.$axios({
           method: "delete",
-          url: "./api/push/batchStop",
+          url: "/api/push/batchStop",
           data: {
             gbStreams: this.multipleSelection
           }

+ 6 - 6
web_src/src/components/StreamProxyList.vue

@@ -167,7 +167,7 @@
 				let that = this;
 				this.$axios({
 					method: 'get',
-					url:`./api/proxy/list`,
+					url:`/api/proxy/list`,
 					params: {
 						page: that.currentPage,
 						count: that.count
@@ -190,7 +190,7 @@
       addOnvif: function(){
         this.$axios({
           method: 'get',
-          url:`./api/onvif/search?timeout=3000`,
+          url:`/api/onvif/search?timeout=3000`,
         }).then((res) =>{
           if (res.data.code === 0 ){
             if (res.data.data.length > 0) {
@@ -218,7 +218,7 @@
 				let that = this;
 				this.$axios({
 					method: 'get',
-					url:`./api/push/getPlayUrl`,
+					url:`/api/push/getPlayUrl`,
 					params: {
 						app: row.app,
 						stream: row.stream,
@@ -247,7 +247,7 @@
 				let that = this;
 				that.$axios({
                     method:"delete",
-                    url:"./api/proxy/del",
+                    url:"/api/proxy/del",
                     params:{
                       app: row.app,
                       stream: row.stream
@@ -263,7 +263,7 @@
         this.$set(row, 'startBtnLoading', true)
 				this.$axios({
 					method: 'get',
-					url:`./api/proxy/start`,
+					url:`/api/proxy/start`,
 					params: {
 						app: row.app,
 						stream: row.stream
@@ -295,7 +295,7 @@
 				let that = this;
 				this.$axios({
 					method: 'get',
-					url:`./api/proxy/stop`,
+					url:`/api/proxy/stop`,
 					params: {
 						app: row.app,
 						stream: row.stream

+ 2 - 2
web_src/src/components/UserManager.vue

@@ -99,7 +99,7 @@ export default {
       this.getUserListLoading = true;
       this.$axios({
         method: 'get',
-        url: `./api/user/users`,
+        url: `/api/user/users`,
         params: {
           page: that.currentPage,
           count: that.count
@@ -141,7 +141,7 @@ export default {
       }).then(() => {
         this.$axios({
           method: 'delete',
-          url: `./api/user/delete?id=${row.id}`
+          url: `/api/user/delete?id=${row.id}`
         }).then((res) => {
           this.getUserList();
         }).catch((error) => {

+ 6 - 6
web_src/src/components/channelList.vue

@@ -206,7 +206,7 @@ export default {
       if (typeof (this.$route.params.deviceId) == "undefined") return;
       this.$axios({
         method: 'get',
-        url: `./api/device/query/devices/${this.$route.params.deviceId}/channels`,
+        url: `/api/device/query/devices/${this.$route.params.deviceId}/channels`,
         params: {
           page: that.currentPage,
           count: that.count,
@@ -238,7 +238,7 @@ export default {
       let that = this;
       this.$axios({
         method: 'get',
-        url: './api/play/start/' + deviceId + '/' + channelId
+        url: '/api/play/start/' + deviceId + '/' + channelId
       }).then(function (res) {
         console.log(res)
         that.isLoging = false;
@@ -278,7 +278,7 @@ export default {
       var that = this;
       this.$axios({
         method: 'get',
-        url: './api/play/stop/' + this.deviceId + "/" + itemData.channelId
+        url: '/api/play/stop/' + this.deviceId + "/" + itemData.channelId
       }).then(function (res) {
         that.initData();
       }).catch(function (error) {
@@ -334,7 +334,7 @@ export default {
       if (!this.showTree) {
         this.$axios({
           method: 'get',
-          url: `./api/device/query/sub_channels/${this.deviceId}/${this.parentChannelId}/channels`,
+          url: `/api/device/query/sub_channels/${this.deviceId}/${this.parentChannelId}/channels`,
           params: {
             page: this.currentPage,
             count: this.count,
@@ -358,7 +358,7 @@ export default {
       }else {
         this.$axios({
           method: 'get',
-          url: `./api/device/query/tree/channel/${this.deviceId}`,
+          url: `/api/device/query/tree/channel/${this.deviceId}`,
           params: {
             parentId: this.parentChannelId,
             page: this.currentPage,
@@ -387,7 +387,7 @@ export default {
     updateChannel: function (row) {
       this.$axios({
         method: 'post',
-        url: `./api/device/query/channel/update/${this.deviceId}`,
+        url: `/api/device/query/channel/update/${this.deviceId}`,
         params: row
       }).then(function (res) {
         console.log(JSON.stringify(res));

+ 4 - 4
web_src/src/components/console.vue

@@ -114,7 +114,7 @@ export default {
     getSystemInfo: function (){
       this.$axios({
         method: 'get',
-        url: `./api/server/system/info`,
+        url: `/api/server/system/info`,
       }).then( (res)=> {
         if (res.data.code === 0) {
           this.$refs.consoleCPU.setData(res.data.data.cpu)
@@ -128,7 +128,7 @@ export default {
     getLoad: function (){
       this.$axios({
         method: 'get',
-        url: `./api/server/media_server/load`,
+        url: `/api/server/media_server/load`,
       }).then( (res)=> {
         if (res.data.code === 0) {
           this.$refs.consoleNodeLoad.setData(res.data.data)
@@ -139,7 +139,7 @@ export default {
     getResourceInfo: function (){
       this.$axios({
         method: 'get',
-        url: `./api/server/resource/info`,
+        url: `/api/server/resource/info`,
       }).then( (res)=> {
         if (res.data.code === 0) {
           this.$refs.consoleResource.setData(res.data.data)
@@ -151,7 +151,7 @@ export default {
 
       this.$axios({
         method: 'get',
-        url: `./api/server/system/configInfo`,
+        url: `/api/server/system/configInfo`,
       }).then( (res)=> {
         console.log(res)
         if (res.data.code === 0) {

+ 1 - 1
web_src/src/components/dialog/MediaServerEdit.vue

@@ -335,7 +335,7 @@ export default {
       var that = this;
       await that.$axios({
         method: 'get',
-        url:`./api/platform/exit/${deviceGbId}`
+        url:`/api/platform/exit/${deviceGbId}`
       }).then(function (res) {
         result = res.data;
       }).catch(function (error) {

+ 4 - 4
web_src/src/components/dialog/StreamProxyEdit.vue

@@ -195,7 +195,7 @@ export default {
       let that = this;
       this.$axios({
         method: 'get',
-        url:`./api/platform/query/10000/1`
+        url:`/api/platform/query/10000/1`
       }).then(function (res) {
         that.platformList = res.data.data.list;
       }).catch(function (error) {
@@ -212,7 +212,7 @@ export default {
       if (that.proxyParam.mediaServerId !== "auto"){
         that.$axios({
           method: 'get',
-          url:`./api/proxy/ffmpeg_cmd/list`,
+          url:`/api/proxy/ffmpeg_cmd/list`,
           params: {
             mediaServerId: that.proxyParam.mediaServerId
           }
@@ -230,7 +230,7 @@ export default {
       this.noneReaderHandler();
       this.$axios({
         method: 'post',
-        url:`./api/proxy/save`,
+        url:`/api/proxy/save`,
         data: this.proxyParam
       }).then((res)=> {
         this.dialogLoading = false;
@@ -261,7 +261,7 @@ export default {
       var that = this;
       await that.$axios({
         method: 'get',
-        url:`./api/platform/exit/${deviceGbId}`
+        url:`/api/platform/exit/${deviceGbId}`
       }).then(function (res) {
         result = res.data;
       }).catch(function (error) {

+ 1 - 1
web_src/src/components/dialog/SyncChannelProgress.vue

@@ -55,7 +55,7 @@ export default {
     getProgress(){
       this.$axios({
         method: 'get',
-        url:`./api/device/query/${this.deviceId}/sync_status/`,
+        url:`/api/device/query/${this.deviceId}/sync_status/`,
       }).then((res) => {
         if (res.data.code === 0) {
           if (!this.syncFlag) {

+ 2 - 2
web_src/src/components/dialog/addUser.vue

@@ -100,7 +100,7 @@ export default {
     onSubmit: function () {
       this.$axios({
         method: 'post',
-        url: "./api/user/add",
+        url: "/api/user/add",
         params: {
           username: this.username,
           password: this.password,
@@ -139,7 +139,7 @@ export default {
 
       this.$axios({
         method: 'get',
-        url: "./api/role/all"
+        url: "/api/role/all"
       }).then((res) => {
         this.loading = true;
         if (res.data.code === 0) {

+ 1 - 1
web_src/src/components/dialog/catalogEdit.vue

@@ -116,7 +116,7 @@ export default {
       console.log(this.form);
       this.$axios({
         method:"post",
-        url:`./api/platform/catalog/${!this.isEdit? "add":"edit"}`,
+        url:`/api/platform/catalog/${!this.isEdit? "add":"edit"}`,
         data: this.form
       }).then((res)=> {
           if (res.data.code === 0) {

+ 1 - 1
web_src/src/components/dialog/changePassword.vue

@@ -90,7 +90,7 @@ export default {
     onSubmit: function () {
       this.$axios({
         method: 'post',
-        url:"./api/user/changePassword",
+        url:"/api/user/changePassword",
         params: {
           oldPassword: crypto.createHash('md5').update(this.oldPassword, "utf8").digest('hex'),
           password: this.newPassword

+ 1 - 1
web_src/src/components/dialog/changePasswordForAdmin.vue

@@ -85,7 +85,7 @@ export default {
     onSubmit: function () {
       this.$axios({
         method: 'post',
-        url:"./api/user/changePasswordForAdmin",
+        url:"/api/user/changePasswordForAdmin",
         params: {
           password: this.newPassword,
           userId: this.form.id,

+ 1 - 1
web_src/src/components/dialog/changePushKey.vue

@@ -65,7 +65,7 @@ export default {
     onSubmit: function () {
       this.$axios({
         method: 'post',
-        url:"./api/user/changePushKey",
+        url:"/api/user/changePushKey",
         params: {
           pushKey: this.newPushKey,
           userId: this.form.id,

+ 1 - 1
web_src/src/components/dialog/channelMapInfobox.vue

@@ -44,7 +44,7 @@ export default {
       let that = this;
       this.$axios({
         method: 'get',
-        url: './api/play/start/' + deviceId + '/' + channelId
+        url: '/api/play/start/' + deviceId + '/' + channelId
       }).then(function (res) {
         that.isLoging = false;
         if (res.data.code === 0) {

+ 1 - 1
web_src/src/components/dialog/chooseChannel.vue

@@ -98,7 +98,7 @@ export default {
 
             this.$axios({
                 method:"post",
-                url:"./api/platform/update_channel_for_gb",
+                url:"/api/platform/update_channel_for_gb",
                 data:{
                     platformId:  that.platformId,
                     channelReduces:  that.chooseData

+ 4 - 4
web_src/src/components/dialog/chooseChannelForCatalog.vue

@@ -82,7 +82,7 @@ export default {
             let that = this;
             this.$axios({
                     method:"get",
-                    url:`./api/platform/catalog`,
+                    url:`/api/platform/catalog`,
                     params: {
                         platformId: that.platformId,
                         parentId: parentId
@@ -134,7 +134,7 @@ export default {
         removeCatalog: function (id, node){
           this.$axios({
             method:"delete",
-            url:`./api/platform/catalog/del`,
+            url:`/api/platform/catalog/del`,
             params: {
               id: id,
               platformId: this.platformId,
@@ -156,7 +156,7 @@ export default {
         setDefaultCatalog: function (id){
           this.$axios({
             method:"post",
-            url:`./api/platform/catalog/default/update`,
+            url:`/api/platform/catalog/default/update`,
             params: {
               platformId: this.platformId,
               catalogId: id,
@@ -201,7 +201,7 @@ export default {
                   onClick: () => {
                     this.$axios({
                       method:"delete",
-                      url:"./api/platform/catalog/relation/del",
+                      url:"/api/platform/catalog/relation/del",
                       data: data
                     }).then((res)=>{
                       console.log("移除成功")

+ 5 - 5
web_src/src/components/dialog/chooseChannelForGb.vue

@@ -121,7 +121,7 @@ export default {
           this.getCatalogFromUser((catalogId)=> {
             this.$axios({
               method:"post",
-              url:"./api/platform/update_channel_for_gb",
+              url:"/api/platform/update_channel_for_gb",
               data:{
                 platformId:  this.platformId,
                 all: all,
@@ -149,7 +149,7 @@ export default {
 
             this.$axios({
               method:"delete",
-              url:"./api/platform/del_channel_for_gb",
+              url:"/api/platform/del_channel_for_gb",
               data:{
                 platformId:  this.platformId,
                 all: all,
@@ -248,7 +248,7 @@ export default {
 
             this.$axios({
                     method:"get",
-                    url:`./api/platform/channel_list`,
+                    url:`/api/platform/channel_list`,
                     params: {
                         page: that.currentPage,
                         count: that.count,
@@ -290,7 +290,7 @@ export default {
         }).then(() => {
           this.$axios({
             method:"delete",
-            url:"./api/platform/del_channel_for_gb",
+            url:"/api/platform/del_channel_for_gb",
             data:{
               platformId:  this.platformId,
               channelReduces: this.multipleSelection
@@ -310,7 +310,7 @@ export default {
 
           this.$axios({
             method: "post",
-            url: "./api/platform/update_channel_for_gb",
+            url: "/api/platform/update_channel_for_gb",
             data: {
               platformId: this.platformId,
               channelReduces: this.multipleSelection,

+ 5 - 5
web_src/src/components/dialog/chooseChannelForStream.vue

@@ -134,7 +134,7 @@ export default {
           this.getCatalogFromUser((catalogId)=>{
             this.$axios({
               method:"post",
-              url:"./api/gbStream/add",
+              url:"/api/gbStream/add",
               data:{
                 platformId: this.platformId,
                 catalogId: catalogId,
@@ -163,7 +163,7 @@ export default {
 
             this.$axios({
               method:"delete",
-              url:"./api/gbStream/del",
+              url:"/api/gbStream/del",
               data:{
                 platformId: this.platformId,
                 all: all,
@@ -186,7 +186,7 @@ export default {
 
             this.$axios({
                 method: 'get',
-                url:`./api/gbStream/list`,
+                url:`/api/gbStream/list`,
                 params: {
                     page: that.currentPage,
                     count: that.count,
@@ -222,7 +222,7 @@ export default {
           }).then(() => {
             this.$axios({
               method:"delete",
-              url:"./api/gbStream/del",
+              url:"/api/gbStream/del",
               data:{
                 platformId: this.platformId,
                 gbStreams:  this.multipleSelection,
@@ -242,7 +242,7 @@ export default {
           this.getCatalogFromUser((catalogId)=>{
             this.$axios({
               method:"post",
-              url:"./api/gbStream/add",
+              url:"/api/gbStream/add",
               data:{
                 platformId: this.platformId,
                 catalogId: catalogId,

+ 1 - 1
web_src/src/components/dialog/deviceEdit.vue

@@ -131,7 +131,7 @@ export default {
       this.form.mobilePositionSubmissionInterval = this.form.mobilePositionSubmissionInterval||0
       this.$axios({
         method: 'post',
-        url:`./api/device/query/device/${this.isEdit?'update':'add'}/`,
+        url:`/api/device/query/device/${this.isEdit?'update':'add'}/`,
         params: this.form
       }).then((res) => {
         console.log(res.data)

+ 7 - 7
web_src/src/components/dialog/devicePlayer.vue

@@ -320,7 +320,7 @@ export default {
             if (tab.name === "codec") {
                 this.$axios({
                     method: 'get',
-                    url: './zlm/' +this.mediaServerId+ '/index/api/getMediaInfo?vhost=__defaultVhost__&schema=rtsp&app='+ this.app +'&stream='+ this.streamId
+                    url: '/zlm/' +this.mediaServerId+ '/index/api/getMediaInfo?vhost=__defaultVhost__&schema=rtsp&app='+ this.app +'&stream='+ this.streamId
                 }).then(function (res) {
                     that.tracksLoading = false;
                     if (res.data.code == 0 && res.data.tracks) {
@@ -397,7 +397,7 @@ export default {
             this.$refs[this.activePlayer].pause()
             that.$axios({
                 method: 'post',
-                url: './api/play/convert/' + that.streamId
+                url: '/api/play/convert/' + that.streamId
                 }).then(function (res) {
                     if (res.data.code === 0) {
                         that.convertKey = res.data.key;
@@ -434,7 +434,7 @@ export default {
             that.$refs.videoPlayer.pause()
             this.$axios({
                 method: 'post',
-                url: './api/play/convertStop/' + this.convertKey
+                url: '/api/play/convertStop/' + this.convertKey
               }).then(function (res) {
                 if (res.data.code == 0) {
                   console.log(res.data.msg)
@@ -494,7 +494,7 @@ export default {
             let that = this;
             this.$axios({
                 method: 'post',
-                url: './api/ptz/control/' + this.deviceId + '/' + this.channelId + '?command=' + command + '&horizonSpeed=' + this.controSpeed + '&verticalSpeed=' + this.controSpeed + '&zoomSpeed=' + this.controSpeed
+                url: '/api/ptz/control/' + this.deviceId + '/' + this.channelId + '?command=' + command + '&horizonSpeed=' + this.controSpeed + '&verticalSpeed=' + this.controSpeed + '&zoomSpeed=' + this.controSpeed
             }).then(function (res) {});
         },
         //////////////////////播放器事件处理//////////////////////////
@@ -506,7 +506,7 @@ export default {
             let that = this;
             this.$axios({
                 method: 'post',
-                url: './api/ptz/front_end_command/' + this.deviceId + '/' + this.channelId + '?cmdCode=' + cmdCode + '&parameter1=0&parameter2=' + presetPos + '&combindCode2=0'
+                url: '/api/ptz/front_end_command/' + this.deviceId + '/' + this.channelId + '?cmdCode=' + cmdCode + '&parameter1=0&parameter2=' + presetPos + '&combindCode2=0'
             }).then(function (res) {});
         },
         setSpeedOrTime: function (cmdCode, groupNum, parameter) {
@@ -516,7 +516,7 @@ export default {
             console.log('前端控制:0x' + cmdCode.toString(16) + ' 0x' + groupNum.toString(16) + ' 0x' + parameter2.toString(16) + ' 0x' + combindCode2.toString(16));
             this.$axios({
                 method: 'post',
-                url: './api/ptz/front_end_command/' + this.deviceId + '/' + this.channelId + '?cmdCode=' + cmdCode + '&parameter1=' + groupNum + '&parameter2=' + parameter2 + '&combindCode2=' + combindCode2
+                url: '/api/ptz/front_end_command/' + this.deviceId + '/' + this.channelId + '?cmdCode=' + cmdCode + '&parameter1=' + groupNum + '&parameter2=' + parameter2 + '&combindCode2=' + combindCode2
             }).then(function (res) {});
         },
         setCommand: function (cmdCode, groupNum, parameter) {
@@ -524,7 +524,7 @@ export default {
             console.log('前端控制:0x' + cmdCode.toString(16) + ' 0x' + groupNum.toString(16) + ' 0x' + parameter.toString(16) + ' 0x0');
             this.$axios({
                 method: 'post',
-                url: './api/ptz/front_end_command/' + this.deviceId + '/' + this.channelId + '?cmdCode=' + cmdCode + '&parameter1=' + groupNum + '&parameter2=' + parameter + '&combindCode2=0'
+                url: '/api/ptz/front_end_command/' + this.deviceId + '/' + this.channelId + '?cmdCode=' + cmdCode + '&parameter1=' + groupNum + '&parameter2=' + parameter + '&combindCode2=0'
             }).then(function (res) {});
         },
         copyUrl: function (dropdownItem){

+ 2 - 2
web_src/src/components/dialog/getCatalog.vue

@@ -89,7 +89,7 @@ export default {
             let that = this;
             this.$axios({
                     method:"get",
-                    url:`./api/platform/catalog`,
+                    url:`/api/platform/catalog`,
                     params: {
                         platformId: that.platformId,
                         parentId: parentId
@@ -111,7 +111,7 @@ export default {
           if (node.level === 0) {
             this.$axios({
               method:"get",
-              url:`./api/platform/info/` + this.platformId,
+              url:`/api/platform/info/` + this.platformId,
             })
               .then((res)=> {
                 if (res.data.code === 0) {

+ 1 - 1
web_src/src/components/dialog/importChannel.vue

@@ -60,7 +60,7 @@ export default {
       console.log(this.form);
       this.$axios({
         method:"post",
-        url:`./api/platform/catalog/${!this.isEdit? "add":"edit"}`,
+        url:`/api/platform/catalog/${!this.isEdit? "add":"edit"}`,
         data: this.form
       })
         .then((res)=> {

+ 1 - 1
web_src/src/components/dialog/onvifEdit.vue

@@ -81,7 +81,7 @@ export default {
       console.log(this.form);
       this.$axios({
         method: 'get',
-        url:`./api/onvif/rtsp`,
+        url:`/api/onvif/rtsp`,
         params: {
           hostname: this.form.hostName,
           timeout: 3000,

+ 3 - 3
web_src/src/components/dialog/platformEdit.vue

@@ -138,7 +138,7 @@ export default {
       showDialog: false,
       isLoging: false,
       onSubmit_text: "立即创建",
-      saveUrl: "./api/platform/save",
+      saveUrl: "/api/platform/save",
 
       platform: {
         id: null,
@@ -192,7 +192,7 @@ export default {
         this.saveUrl = "/api/platform/add";
         this.$axios({
           method: 'get',
-          url:`./api/platform/server_config`
+          url:`/api/platform/server_config`
         }).then(function (res) {
           console.log(res);
           if (res.data.code === 0) {
@@ -315,7 +315,7 @@ export default {
       var that = this;
       await that.$axios({
                 method: 'get',
-                url:`./api/platform/exit/${deviceGbId}`})
+                url:`/api/platform/exit/${deviceGbId}`})
         .then(function (res) {
             if (res.data.code === 0) {
               result = res.data.data;

+ 3 - 3
web_src/src/components/dialog/pushStreamEdit.vue

@@ -109,7 +109,7 @@ export default {
       if (this.edit) {
         this.$axios({
           method:"post",
-          url:`./api/push/save_to_gb`,
+          url:`/api/push/save_to_gb`,
           data: this.proxyParam
         }).then( (res) => {
           if (res.data.code === 0) {
@@ -129,7 +129,7 @@ export default {
       }else {
         this.$axios({
           method:"post",
-          url:`./api/push/add`,
+          url:`/api/push/add`,
           data: this.proxyParam
         }).then( (res) => {
           if (res.data.code === 0) {
@@ -159,7 +159,7 @@ export default {
       var that = this;
       await that.$axios({
         method:"get",
-        url:`./api/platform/exit/${deviceGbId}`
+        url:`/api/platform/exit/${deviceGbId}`
       }).then(function (res) {
         result = res.data;
       }).catch(function (error) {

+ 1 - 1
web_src/src/components/dialog/queryTrace.vue

@@ -72,7 +72,7 @@ export default {
     onSubmit: function () {
       console.log("onSubmit");
       this.isLoging = true;
-      let url = `./api/position/history/${this.channel.deviceId}?start=${this.searchFrom}&end=${this.searchTo}`;
+      let url = `/api/position/history/${this.channel.deviceId}?start=${this.searchFrom}&end=${this.searchTo}`;
       if (this.channel.channelId) {
         url+="&channelId=${this.channel.channelId}"
       }

+ 4 - 4
web_src/src/components/dialog/recordDownload.vue

@@ -71,7 +71,7 @@ export default {
         getProgress: function (callback){
           this.$axios({
             method: 'get',
-            url: `./api/gb_record/download/progress/${this.deviceId}/${this.channelId}/${this.stream}`
+            url: `/api/gb_record/download/progress/${this.deviceId}/${this.channelId}/${this.stream}`
           }).then((res)=> {
             console.log(res)
               if (res.data.code === 0) {
@@ -124,7 +124,7 @@ export default {
         stopDownloadRecord: function (callback) {
           this.$axios({
             method: 'get',
-            url: './api/gb_record/download/stop/' + this.deviceId + "/" + this.channelId+ "/" + this.stream
+            url: '/api/gb_record/download/stop/' + this.deviceId + "/" + this.channelId+ "/" + this.stream
           }).then((res)=> {
             if (callback) callback(res)
           });
@@ -132,7 +132,7 @@ export default {
         getFileDownload: function (){
           this.$axios({
             method: 'get',
-            url:`./record_proxy/${this.mediaServerId}/api/record/file/download/task/add`,
+            url:`/record_proxy/${this.mediaServerId}/api/record/file/download/task/add`,
             params: {
               app: this.app,
               stream: this.stream,
@@ -164,7 +164,7 @@ export default {
         getProgressForFile: function (callback){
           this.$axios({
             method: 'get',
-            url:`./record_proxy/${this.mediaServerId}/api/record/file/download/task/list`,
+            url:`/record_proxy/${this.mediaServerId}/api/record/file/download/task/list`,
             params: {
               app: this.app,
               stream: this.stream,

+ 1 - 1
web_src/src/components/live.vue

@@ -135,7 +135,7 @@ export default {
       this.loading = true
       this.$axios({
         method: 'get',
-        url: './api/play/start/' + deviceId + '/' + channelId
+        url: '/api/play/start/' + deviceId + '/' + channelId
       }).then(function (res) {
         if (res.data.code === 0 && res.data.data) {
           let videoUrl;

+ 1 - 1
web_src/src/components/map.vue

@@ -298,7 +298,7 @@ export default {
       let that = this;
       this.$axios({
         method: 'get',
-        url: './api/play/start/' + deviceId + '/' + channelId
+        url: '/api/play/start/' + deviceId + '/' + channelId
       }).then(function (res) {
         that.isLoging = false;
         if (res.data.code === 0) {

+ 5 - 5
web_src/src/components/service/DeviceService.js

@@ -9,7 +9,7 @@ class DeviceService{
   getDeviceList(currentPage, count, callback, errorCallback){
     this.$axios({
       method: 'get',
-      url:`./api/device/query/devices`,
+      url:`/api/device/query/devices`,
       params: {
         page: currentPage,
         count: count
@@ -25,7 +25,7 @@ class DeviceService{
   getDevice(deviceId, callback, errorCallback){
     this.$axios({
       method: 'get',
-      url:`./api/device/query/devices/${deviceId}`,
+      url:`/api/device/query/devices/${deviceId}`,
     }).then((res) => {
       if (typeof (callback) == "function") callback(res.data)
     }).catch((error) => {
@@ -82,7 +82,7 @@ class DeviceService{
   getChanel(isCatalog, catalogUnderDevice, deviceId, currentPage, count, callback, errorCallback) {
     this.$axios({
       method: 'get',
-      url: `./api/device/query/devices/${deviceId}/channels`,
+      url: `/api/device/query/devices/${deviceId}/channels`,
       params:{
         page: currentPage,
         count: count,
@@ -121,7 +121,7 @@ class DeviceService{
   getSubChannel(isCatalog, deviceId, channelId, currentPage, count, callback, errorCallback) {
     this.$axios({
       method: 'get',
-      url: `./api/device/query/sub_channels/${deviceId}/${channelId}/channels`,
+      url: `/api/device/query/sub_channels/${deviceId}/${channelId}/channels`,
       params:{
         page: currentPage,
         count: count,
@@ -161,7 +161,7 @@ class DeviceService{
     }
     this.$axios({
       method: 'get',
-      url: `./api/device/query/tree/${deviceId}`,
+      url: `/api/device/query/tree/${deviceId}`,
       params:{
         page: currentPage,
         count: count,

+ 7 - 7
web_src/src/components/service/MediaServer.js

@@ -9,7 +9,7 @@ class MediaServer{
   getOnlineMediaServerList(callback){
     this.$axios({
       method: 'get',
-      url:`./api/server/media_server/online/list`,
+      url:`/api/server/media_server/online/list`,
     }).then((res) => {
       if (typeof (callback) == "function") callback(res.data)
     }).catch((error) => {
@@ -19,7 +19,7 @@ class MediaServer{
   getMediaServerList(callback){
     this.$axios({
       method: 'get',
-      url:`./api/server/media_server/list`,
+      url:`/api/server/media_server/list`,
     }).then(function (res) {
       if (typeof (callback) == "function") callback(res.data)
     }).catch(function (error) {
@@ -30,7 +30,7 @@ class MediaServer{
   getMediaServer(id, callback){
     this.$axios({
       method: 'get',
-      url:`./api/server/media_server/one/` + id,
+      url:`/api/server/media_server/one/` + id,
     }).then(function (res) {
       if (typeof (callback) == "function") callback(res.data)
     }).catch(function (error) {
@@ -41,7 +41,7 @@ class MediaServer{
   checkServer(param, callback){
     this.$axios({
       method: 'get',
-      url:`./api/server/media_server/check`,
+      url:`/api/server/media_server/check`,
       params: {
         ip: param.ip,
         port: param.httpPort,
@@ -57,7 +57,7 @@ class MediaServer{
   checkRecordServer(param, callback){
     this.$axios({
       method: 'get',
-      url:`./api/server/media_server/record/check`,
+      url:`/api/server/media_server/record/check`,
       params: {
         ip: param.ip,
         port: param.recordAssistPort
@@ -72,7 +72,7 @@ class MediaServer{
   addServer(param, callback){
     this.$axios({
       method: 'post',
-      url:`./api/server/media_server/save`,
+      url:`/api/server/media_server/save`,
       data: param
     }).then(function (res) {
       if (typeof (callback) == "function") callback(res.data)
@@ -84,7 +84,7 @@ class MediaServer{
   delete(id, callback) {
     this.$axios({
       method: 'delete',
-      url:`./api/server/media_server/delete`,
+      url:`/api/server/media_server/delete`,
       params: {
         id: id
       }

+ 4 - 4
web_src/src/main.js

@@ -37,13 +37,13 @@ Vue.use(VueClipboard);
 Vue.use(ElementUI);
 Vue.use(VueCookies);
 Vue.use(VueClipboards);
-Vue.prototype.$axios = axios;
+
 Vue.prototype.$notify = Notification;
 Vue.use(Contextmenu);
 Vue.use(VCharts);
 
-axios.defaults.baseURL = (process.env.NODE_ENV === 'development') ? process.env.BASE_API : "";
-
+axios.defaults.baseURL = (process.env.NODE_ENV === 'development') ? process.env.BASE_API : (window.baseUrl?window.baseUrl:"");
+axios.defaults.withCredentials = true;
 // api 返回401自动回登陆页面
 axios.interceptors.response.use(function (response) {
   // 对响应数据做点什么
@@ -56,7 +56,7 @@ axios.interceptors.response.use(function (response) {
   }
   return Promise.reject(error);
 });
-
+Vue.prototype.$axios = axios;
 Vue.prototype.$cookies.config(60*30);
 
 new Vue({

+ 3 - 0
web_src/static/js/mapConfig.js

@@ -1,3 +1,6 @@
+
+window.baseUrl = ""
+
 // map组件全局参数, 注释此内容可以关闭地图功能
 window.mapParam = {
   // 开启/关闭地图功能