wenhongquan 3 年之前
父节点
当前提交
1dce0e9713
共有 5 个文件被更改,包括 126 次插入71 次删除
  1. 10 7
      index.html
  2. 80 61
      public/login.js
  3. 14 0
      src/api/resource.ts
  4. 13 3
      src/layout/BaseLayout/index.tsx
  5. 9 0
      src/store/useMarkerStore.ts

+ 10 - 7
index.html

@@ -9,21 +9,24 @@
     <script>
         window.spuser = '<%- spuser %>'
     </script>
+    <script src="./lib/jquery.js"></script>
+    <script src="./lib/md5.js"></script>
+    <script src="./lib/jsencrypt.min.js"></script>
     <!-- <script src="./flexible.js"></script> -->
+    <script src="./login.js?time=1"></script>
     <script src="./webClient/defaultConfig.js?time=111"></script>
     <script src="./webClient/initWebSocket.js?time=111"></script>
     <script src="./webClient/webClient_initWnd.js?time=114"></script>
-    <script src="./lib/jquery.js"></script>
-    <script src="./lib/md5.js"></script>
-    <script src="./lib/jsencrypt.min.js"></script>
+
+
 
     <!--    <script src="../webClient/defaultConfig.js"></script>-->
     <!--    <script src="../webClient/initWebSocket.js"></script>-->
     <!--    <script src="../webClient/webClient_initWnd.js"></script>-->
-    <script src="./js/common.js"></script>
-    <script src="./login.js"></script>
-    <script src="./meeting.js"></script>
-    <script src="./js/videoplay.js"></script>
+    <script src="./js/common.js?time=1"></script>
+
+    <script src="./meeting.js?time=1"></script>
+    <script src="./js/videoplay.js?time=1"></script>
 
     <!-- <script src="https://gw.alipayobjects.com/os/antv/pkg/_antv.g6-3.1.1/build/g6.js"></script> -->
     <link rel="stylesheet" href="<%- mapurl %>/minemapapi/v2.1.0/minemap.css">

+ 80 - 61
public/login.js

@@ -39,6 +39,7 @@ Package.prototype = {
     },
 
     keepalive: function() {
+
         let _t = this;
         if (localStorage.getItem("token")) {
             $.ajax({
@@ -66,78 +67,96 @@ Package.prototype = {
                     // }, 20000);
                 },
                 error: function(data) {
+                    localStorage.removeItem("token")
                     _t.login()
                 },
             });
+        } else {
+            setTimeout(() => {
+                _t.login();
+            }, 1000 * (_t.logincount++));
+
         }
     },
+    logincount: 0,
 
     login: async function() {
         let _t = this;
         var loginName = this.settings.username;
         var password = this.settings.password;
         localStorage.setItem("password", password);
-        _t.firstLogin(loginName).catch((firstLoginRes) => {
-            //console.log("firstLoginRes: ", firstLoginRes);
-            var md1 = hex_md5(password); //第1次加密
-            var md2 = hex_md5(loginName + md1); //第2次加密
-            var md3 = hex_md5(md2); //第3次加密
-            var md4 = hex_md5(loginName + ":" + firstLoginRes.realm + ":" + md3); //第4次加密
-            var signature = hex_md5(md4 + ":" + firstLoginRes.randomKey); //第5次加密
-            $.ajax({
-                type: "POST",
-                url: this.settings.URL + "/videoService/accounts/authorize",
-                contentType: "application/json", //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
-                dateType: "json",
-                async: false,
-                data: JSON.stringify({
-                    userName: loginName,
-                    signature: signature,
-                    randomKey: firstLoginRes.randomKey,
-                    encryptType: "MD5",
-                    clientType: "winpc",
-                    pid: 2548,
-                    expiredTime:86400,
-                }),
-                beforeSend: function(xhr) {
-                    xhr.setRequestHeader("X-Subject-Token", "");
-                    xhr.setRequestHeader(
-                        "Content-Type",
-                        "application/json;charset=UTF-8"
-                    );
-                },
-                success: function(jsonResult) {
-                    if (typeof jsonResult === "string") {
-                        if (jsonResult && JSON.parse(jsonResult).token) {
-                            localStorage.setItem("token", JSON.parse(jsonResult).token);
-                            localStorage.setItem("userId", JSON.parse(jsonResult).userId);
-                            localStorage.setItem("url", _t.settings.URL);
-                            localStorage.setItem("userName", loginName);
-                            // _t.settings.token = JSON.parse(jsonResult).token;
-                            console.log("localStorage-->", localStorage);
-                            _t.keepalive();
-                            //   window.location.href = "./pages/菜单.html";
-                        }
-                    } else {
-                        if (jsonResult && jsonResult.token) {
-                            localStorage.setItem("token", jsonResult.token);
-                            localStorage.setItem("userId", jsonResult.userId);
-                            localStorage.setItem("url", _t.settings.URL);
-                            localStorage.setItem("userName", loginName);
-                            // _t.settings.token = JSON.parse(jsonResult).token;
-                            console.log("localStorage-->", localStorage);
-                            _t.keepalive();
-                            //   window.location.href = "./pages/菜单.html";
-                        }
-                    }
-                },
-                error: function(data) {
-                    let msg = JSON.parse(data.responseText).message;
-                    $(".loginTip .error-wrap .error").html(msg);
-                    $(".loginTip").show();
-                },
-            });
-        });
+
+        localStorage.setItem('url', _t.settings.URL);
+        try {
+            if (window.dologin) {
+                window.dologin();
+            }
+        } catch (error) {}
+        console.log("_-------")
+
+        _t.keepalive();
+
+        // _t.firstLogin(loginName).catch((firstLoginRes) => {
+        //     //console.log("firstLoginRes: ", firstLoginRes);
+        //     var md1 = hex_md5(password); //第1次加密
+        //     var md2 = hex_md5(loginName + md1); //第2次加密
+        //     var md3 = hex_md5(md2); //第3次加密
+        //     var md4 = hex_md5(loginName + ":" + firstLoginRes.realm + ":" + md3); //第4次加密
+        //     var signature = hex_md5(md4 + ":" + firstLoginRes.randomKey); //第5次加密
+        //     $.ajax({
+        //         type: "POST",
+        //         url: this.settings.URL + "/videoService/accounts/authorize",
+        //         contentType: "application/json", //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
+        //         dateType: "json",
+        //         async: false,
+        //         data: JSON.stringify({
+        //             userName: loginName,
+        //             signature: signature,
+        //             randomKey: firstLoginRes.randomKey,
+        //             encryptType: "MD5",
+        //             clientType: "winpc",
+        //             pid: 2548,
+        //             expiredTime:86400,
+        //         }),
+        //         beforeSend: function(xhr) {
+        //             xhr.setRequestHeader("X-Subject-Token", "");
+        //             xhr.setRequestHeader(
+        //                 "Content-Type",
+        //                 "application/json;charset=UTF-8"
+        //             );
+        //         },
+        //         success: function(jsonResult) {
+        //             if (typeof jsonResult === "string") {
+        //                 if (jsonResult && JSON.parse(jsonResult).token) {
+        //                     localStorage.setItem("token", JSON.parse(jsonResult).token);
+        //                     localStorage.setItem("userId", JSON.parse(jsonResult).userId);
+        //                     localStorage.setItem("url", _t.settings.URL);
+        //                     localStorage.setItem("userName", loginName);
+        //                     // _t.settings.token = JSON.parse(jsonResult).token;
+        //                     console.log("localStorage-->", localStorage);
+        //                     _t.keepalive();
+        //                     //   window.location.href = "./pages/菜单.html";
+        //                 }
+        //             } else {
+        //                 if (jsonResult && jsonResult.token) {
+        //                     localStorage.setItem("token", jsonResult.token);
+        //                     localStorage.setItem("userId", jsonResult.userId);
+        //                     localStorage.setItem("url", _t.settings.URL);
+        //                     localStorage.setItem("userName", loginName);
+        //                     // _t.settings.token = JSON.parse(jsonResult).token;
+        //                     console.log("localStorage-->", localStorage);
+        //                     _t.keepalive();
+        //                     //   window.location.href = "./pages/菜单.html";
+        //                 }
+        //             }
+        //         },
+        //         error: function(data) {
+        //             let msg = JSON.parse(data.responseText).message;
+        //             $(".loginTip .error-wrap .error").html(msg);
+        //             $(".loginTip").show();
+        //         },
+        //     });
+        // });
     },
 
     signOut() {

+ 14 - 0
src/api/resource.ts

@@ -136,6 +136,14 @@ export interface SingleDeviceResponse {
   };
 }
 
+export interface DHUserResponse {
+  data: {
+    token: String;
+    userId: String;
+    userName:String;
+  };
+}
+
 /** 获取所有应急资源信息 */
 export const getAllResources = () => {
   return request<AllResourcesResponse>('GET', {
@@ -155,6 +163,12 @@ export const getAllvideoDevice = () => {
   });
 };
 
+export const getDHUserToken = () => {
+  return request<DHUserResponse>('GET', {
+    url: `zhdd/dh/getVideoToken`,
+  });
+};
+
 export interface WarehouseResponse extends BaseResponse {
   data: ResourcesItem[];
 }

+ 13 - 3
src/layout/BaseLayout/index.tsx

@@ -2,7 +2,7 @@ import { defineComponent, onMounted, watchEffect, ref } from "vue";
 import { RouterView, useRoute, useRouter } from 'vue-router';
 import MarkerMap from '@/components/MarkerMap';
 import './index.scss';
-import { useIncidentStore, useDaHuaStore, useMainStore,useCommonStore } from '@/store';
+import { useIncidentStore, useDaHuaStore, useMainStore,useCommonStore,useMarkerStore } from '@/store';
 import { constants } from 'zlib';
 import clsx from "clsx";
 import moment from 'moment';
@@ -133,12 +133,13 @@ export default defineComponent({
 
     const mainStore = useMainStore();
     const commonstore = useCommonStore();
+    const markerstore = useMarkerStore();
 
     const sqdh = ref(import.meta.env.VITE_DH_SERVER as string + "/index.html");
 
     const markmap = ref(null);
 
-    console.log(sqdh.value);
+    // console.log(sqdh.value);
 
 
     const handleDaHuaSystem = () => {
@@ -153,7 +154,7 @@ export default defineComponent({
     // ]);
 
     // login da hua
-    onMounted(() => {
+    onMounted(async () => {
 
       var dv = document.getElementsByClassName('videoifram')[0];
       var x = 0;
@@ -213,6 +214,15 @@ export default defineComponent({
         dv.style.cursor = 'default';
       }
 
+      try {
+        window.dologin = async () => {
+          await markerstore.initDHUser();
+        };
+         window.dologin();
+      } catch (error) {
+        console.log(error)
+      }
+
       // if (!localStorage.getItem('DAHUA_token')) {
       //   daHuaStore.DAHUALogin();
       // } else {

+ 9 - 0
src/store/useMarkerStore.ts

@@ -10,6 +10,8 @@ import {
   SingleDeviceItem,
   getAllvideoDevice,
   searchWarehouseByGoods,
+  DHUserResponse,
+  getDHUserToken,
 } from '@/api/resource';
 import {
   PENDING_DISPOSAL_INCIDENT,
@@ -58,6 +60,7 @@ export interface MainActionsType {
   getAllResources(): void;
   getAllsingleDevice(): void;
   searchWarehouseByGoods(name?: string): void;
+  initDHUser(): void;
 }
 
 export default defineStore<'marker', MarkerStateType, {}, MainActionsType>(
@@ -91,6 +94,12 @@ export default defineStore<'marker', MarkerStateType, {}, MainActionsType>(
           this.toggleLoading();
         }
       },
+      async initDHUser() {
+        const { data } = await getDHUserToken();
+        localStorage.setItem('token', data.token.toString());
+        localStorage.setItem('userId', data.userId.toString());
+        localStorage.setItem('userName', data.userName.toString());
+      },
       async getAllsingleDevice() {
         try {
           this.toggleLoading();