heyang 2 years ago
parent
commit
c7e2b5df5d
8 changed files with 57 additions and 93 deletions
  1. 3 1
      .env.development
  2. 6 3
      .env.production
  3. 2 1
      package.json
  4. 1 1
      src/utils/request.js
  5. 27 0
      src/utils/secret.js
  6. 12 10
      src/views/home.vue
  7. 4 6
      src/views/warningDetail.vue
  8. 2 71
      vue.config.js

+ 3 - 1
.env.development

@@ -13,13 +13,15 @@ VUE_APP_ENV = 'development'
 # 88服务器
 # VUE_APP_BASE_API = '192.168.1.88/labSystem'
 # 43服务器
- VUE_APP_BASE_API = '192.168.1.43/labSystem/'
+# VUE_APP_BASE_API = '192.168.1.43/labSystem/'
 # 柴
 # VUE_APP_BASE_API = '192.168.1.9:8080'
 # 暨大
 # VUE_APP_BASE_API = 'lab.sxitdlc.com/jndxlabSystem/'
 # 矿大-文昌
 #VUE_APP_BASE_API = 'lab.sxitdlc.com/kdwclabSystem/'
+# 苏大
+VUE_APP_BASE_API = 'lab.sxitdlc.com/sudalabSystem/'
 
 
 

+ 6 - 3
.env.production

@@ -2,8 +2,8 @@
 VUE_APP_TITLE = 实验室安全管理系统
 
 # 开发环境配置
-NODE_ENV=development
-VUE_APP_ENV = 'development'
+NODE_ENV=production
+VUE_APP_ENV = 'production'
 
 # ####################接口配置####################
 
@@ -22,4 +22,7 @@ VUE_APP_ENV = 'development'
 #VUE_APP_BASE_API = 'http://192.168.1.248/labSystem/'
 
 # 43服务器
- VUE_APP_BASE_API = '192.168.1.43/labSystem/'
+# VUE_APP_BASE_API = '192.168.1.43/labSystem/'
+
+# 苏大
+VUE_APP_BASE_API = 'lab.sxitdlc.com/sudalabSystem/'

+ 2 - 1
package.json

@@ -10,6 +10,7 @@
   "dependencies": {
     "axios": "^1.1.3",
     "core-js": "^3.8.3",
+    "crypto-js": "^4.1.1",
     "echarts": "^4.4.0",
     "element-ui": "^2.15.10",
     "flv.js": "^1.6.2",
@@ -17,8 +18,8 @@
     "mqtt": "^4.2.8",
     "node-sass": "^7.0.1",
     "qs": "^6.11.0",
-    "script-ext-html-webpack-plugin": "^2.1.5",
     "sass-loader": "^13.0.2",
+    "script-ext-html-webpack-plugin": "^2.1.5",
     "swiper": "^4.3.3",
     "vue": "^2.6.14",
     "vue-router": "^3.5.2"

+ 1 - 1
src/utils/request.js

@@ -23,7 +23,7 @@ axios.defaults.withCredentials = false;
 
 // 允许跨域
 axios.defaults.headers.post["Access-Control-Allow-Origin-Type"] = "*";
- //axios.defaults.headers.common["Authorization"] = 'Bearer e7e987c5-cf98-46bf-936e-70f0de7c9db5';//`Bearer ${localStorage.getItem('access_token')`;
+//axios.defaults.headers.common["Authorization"] = 'Bearer f49d7770-515a-4661-8d07-fc07256c8165';//`Bearer ${localStorage.getItem('access_token')`;
 axios.defaults.headers.common["Authorization"] = 'Bearer '+localStorage.getItem('Authorization')+''
 
 //设置超时

+ 27 - 0
src/utils/secret.js

@@ -0,0 +1,27 @@
+//引入crypto-js
+const CryptoJS = require('crypto-js');
+
+// //十六位十六进制数作为密钥(秘钥为随机生成,必须与后端保持一致!)
+// const key = 'J4ny0Ja678Y7P2so';
+// //十六位十六进制数作为密钥偏移量(秘钥为随机生成,必须与后端保持一致!)
+// const iv = 'pTNorfvZW2UZJbd0';
+
+const key = CryptoJS.enc.Utf8.parse("J4ny0Ja678Y7P2so");  //十六位十六进制数作为密钥
+const iv = CryptoJS.enc.Utf8.parse('pTNorfvZW2UZJbd0');   //十六位十六进制数作为密钥偏移量
+//解密方法
+function Decrypt(word) {
+  let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
+  let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
+  let decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
+  let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
+  return decryptedStr.toString();
+}
+
+//加密方法
+function Encrypt(word) {
+  let srcs = CryptoJS.enc.Utf8.parse(word);
+  let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
+  return encrypted.ciphertext.toString().toUpperCase();
+}
+
+export {Decrypt , Encrypt}

+ 12 - 10
src/views/home.vue

@@ -304,6 +304,7 @@ import {
 import Swiper from 'swiper'
 import $ from 'jquery'
 import mqtt from 'mqtt/dist/mqtt'
+import { Encrypt,Decrypt} from '@/utils/secret.js'
 export default {
 
   data(){
@@ -473,7 +474,8 @@ export default {
         console.log('开发配置',response.data)
         //判定http或者https
         let urlText = window.location.href.split('://')[0]+'://';
-        if(urlText=='https://'){
+        let outerNet=window.location.href.indexOf(response.data.ipIdentify) == -1//true外网 false 内网
+        if(outerNet){//外网
           //文件预览地址
           localStorage.setItem('filePreviewUrl',urlText+response.data.fileExtranetUrl)
           //摄像头代理访问地址
@@ -481,18 +483,18 @@ export default {
           //摄像头地址ip段
           localStorage.setItem('ipIdentify',response.data.ipIdentify)
           //摄像头访问地址
-          localStorage.setItem('cameraUrl','wss://'+response.data.cameraExtranetUrl)
+          localStorage.setItem('cameraUrl',urlText+response.data.cameraExtranetUrl)
           //MQTT地址
-          localStorage.setItem('mqttUrl','wss://'+response.data.mqttExtranetUrl)
+          localStorage.setItem('mqttUrl','wss://'+Decrypt(response.data.mqttExtranetUrl))
           //MQTT账号
-          localStorage.setItem('mqttUser',response.data.mqttExtranetUser)
+          localStorage.setItem('mqttUser',Decrypt(response.data.mqttExtranetUser))
           //MQTT密码
-          localStorage.setItem('mqttPassword',response.data.mqttExtranetPassword)
+          localStorage.setItem('mqttPassword',Decrypt(response.data.mqttExtranetPassword))
           //可视化大屏访问地址
           localStorage.setItem('screenUrl',urlText+response.data.screenExtranetUrl)
           //后台访问地址
           localStorage.setItem('pcVisitUrl',urlText+response.data.pcExtranetUrl)
-        }else if(urlText=='http://'){
+        }else{
           //文件预览地址
           localStorage.setItem('filePreviewUrl',urlText+response.data.fileIntranetUrl)
           //摄像头代理访问地址
@@ -500,13 +502,13 @@ export default {
           //摄像头地址ip段
           localStorage.setItem('ipIdentify',response.data.ipIdentify)
           //摄像头访问地址
-          localStorage.setItem('cameraUrl','wss://'+response.data.cameraIntranetUrl)
+          localStorage.setItem('cameraUrl',urlText+response.data.cameraIntranetUrl)
           //MQTT地址
-          localStorage.setItem('mqttUrl','ws://'+response.data.mqttIntranetUrl)
+          localStorage.setItem('mqttUrl','ws://'+Decrypt(response.data.mqttIntranetUrl))
           //MQTT账号
-          localStorage.setItem('mqttUser',response.data.mqttIntranetUser)
+          localStorage.setItem('mqttUser',Decrypt(response.data.mqttIntranetUser))
           //MQTT密码
-          localStorage.setItem('mqttPassword',response.data.mqttIntranetPassword)
+          localStorage.setItem('mqttPassword',Decrypt(response.data.mqttIntranetPassword))
           //可视化大屏访问地址
           localStorage.setItem('screenUrl',urlText+response.data.screenIntranetUrl)
           //后台访问地址

+ 4 - 6
src/views/warningDetail.vue

@@ -85,8 +85,7 @@
                            :id="urlList.id" :src="item.url"
                             :custom-cache='false' :autoplay="true" :controls="true"
                             :enable-danmu="false" :muted="true" :show-fullscreen-btn="true"
-                            :show-center-play-btn="false" :show-play-btn="false"
-                            @error="videoErrorCallback" >
+                            :show-center-play-btn="false" :show-play-btn="false">
                         </video>
                     </div>
                 </li>
@@ -227,16 +226,15 @@ export default {
 
       startListDeviceIds(obj).then((res) =>{
         if(res.code==200){
-          let data=res
           let list = [];
-          for(let i=0;i<data.data.length;i++){
+          for(let i=0;i<res.data.data.length;i++){
             let text = localStorage.getItem('cameraUrl');
-            let url = data.data[i].result.body.data.fmp4;
+            let url = res.data.data[i].fmp4;
             url = url.split("rtp/");
             let newUrl = text+'rtp/'+url[1];
             let obj = {
               name:"楼道监控"+(i+1),
-              id:data.data[i].result.body.data.deviceID,
+              id:res.data.data[i].deviceID,
               url:newUrl,
             }
             list.push(obj)

+ 2 - 71
vue.config.js

@@ -31,81 +31,12 @@ module.exports = defineConfig({
                 chunks: 'all',
                 minSize: 50000, //构建出来的chunk大于30000才会被分割
                 maxSize: 100000, //会尝试根据这个大小进行代码分割
-                // cacheGroups: {
-                //     libs: {
-                //         name: 'chunk-libs',
-                //         test: /[\\/]node_modules[\\/]/,
-                //         priority: 10,
-                //         chunks: 'initial'
-                //     },
-                //     elementUI: {
-                //         name: 'chunk-elementUI',
-                //         priority: 20,
-                //         test: /[\\/]node_modules[\\/]_?element-plus(.*)/,
-                //         chunks: 'initial'
-                //     },
-                //     echarts: {
-                //         name: 'chunk-echarts',
-                //         priority: 20,
-                //         test: /[\\/]node_modules[\\/]_?echarts(.*)/,
-                //     },
-                //     flv: {
-                //         name: 'chunk-flv',
-                //         priority: 20,
-                //         test: /[\\/]node_modules[\\/]_?flv(.*)/
-                //     },
-                //     jsJquery: {
-                //         name: 'chunk-jquery',
-                //         priority: 20,
-                //         test: /[\\/]node_modules[\\/]_?jquery(.*)/
-                //     },
-                //     mqtt: {
-                //         name: 'chunk-mqtt',
-                //         priority: 20,
-                //         test: /[\\/]node_modules[\\/]_?mqtt(.*)/
-                //     },
-                //     mqttPacket: {
-                //         name: 'chunk-mqtt-packet',
-                //         priority: 20,
-                //         test: /[\\/]node_modules[\\/]_?mqtt-packet(.*)/
-                //     },
-                // }
+
               })
             }
         )
   },
-  //去掉console
-  // configureWebpack: (config) => {
-  //   // 判断为生产模式下,因为开发模式我们是想保存console的
-  //   if (process.env.NODE_ENV === "production") {
-  //     config.optimization.minimizer.map((arg) => {
-  //       const option = arg.options.terserOptions.compress;
-  //       option.drop_console = true; // 打开开关
-  //       return arg;
-  //     });
-  //   }
-  // },
-  // configureWebpack: {
-  //   // 关闭 webpack 的性能提示
-  //   // performance: {
-  //   //   hints:false
-  //   // }
-  //
-  //   // //或者
-  //
-  //   // 警告 webpack 的性能提示
-  //   performance: {
-  //     hints: 'warning',
-  //     // 入口起点的最大体积
-  //     maxEntrypointSize: 50000000,
-  //     // 生成文件的最大体积
-  //     maxAssetSize: 30000000,
-  //     // 只给出 js 文件的性能提示
-  //     assetFilter: function (assetFilename) {
-  //       return assetFilename.endsWith('.js')
-  //     }
-  //   }
-  // }
+
 })