Sfoglia il codice sorgente

fix: dahua component

hi-cactus! 3 anni fa
parent
commit
37c97cf0de

+ 4 - 4
index.html

@@ -7,9 +7,9 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>交通运输应急指挥系统</title>
 
-    <script src="../webClient/defaultConfig.js"></script>
-    <script src="../webClient/initWebSocket.js"></script>
-    <script src="../webClient/webClient_initWnd.js"></script>
+<!--    <script src="../webClient/defaultConfig.js"></script>-->
+<!--    <script src="../webClient/initWebSocket.js"></script>-->
+<!--    <script src="../webClient/webClient_initWnd.js"></script>-->
 
     <link rel="stylesheet" href="http://61.147.254.211:21009/minemapapi/v2.1.0/minemap.css">
     <script src="http://61.147.254.211:21009/minemapapi/v2.1.0/minemap.js"></script>
@@ -173,4 +173,4 @@
     <script type="module" src="/src/main.ts"></script>
 </body>
 
-</html>
+</html>

+ 1 - 0
src/api/resource.ts

@@ -4,6 +4,7 @@ import { BaseResponse } from './type';
 export interface ResourceListItem {
   id?: number;
   resourceType?: number;
+  locationType?: number;
   name?: string; //名称
   address?: string; //地址
   longitude?: string; // 经度

+ 3 - 7
src/components/MarkerMap/dialog.ts

@@ -1,9 +1,10 @@
 import { IncidentItem } from '@/api/incident';
 import { ResourceItemDetail, SingleDeviceItem } from '@/api/resource';
 import { useCommonStore } from '@/store';
+import { MarkerType } from "@/store/useMarkerStore";
 
 export const GET_INCIDENT_DIALOG_HTML = (
-  item: IncidentItem,
+  item: MarkerType,
   callback = () => {},
 ) => {
   const commonStore = useCommonStore();
@@ -56,12 +57,7 @@ export const GET_VIDEO_DIALOG_HTML = (
   {
     name,
     addr,
-    link,
-  }: {
-    name: string;
-    addr: string;
-    link: string;
-  },
+  }: MarkerType,
   callback = () => {},
 ) => {
   const el = document.createElement('div');

+ 15 - 55
src/components/MarkerMap/index.tsx

@@ -221,9 +221,6 @@ export default defineComponent({
           var callback = () => {
             console.log(marker['deviceCode']);
             console.log(marker['userId']);
-            const self = this;
-
-            
             // daHuaStore.DAHUAUserObj(marker["userId"]).then(deviceUser=>{
             //              console.log(deviceUser);
             //              let memberObj = {
@@ -264,38 +261,6 @@ export default defineComponent({
               },
               '*',
             );
-
-            return;
-
-            marker['userId'] &&
-              daHuaStore.DAHUAUserObj(marker['userId']).then((deviceUser) => {
-                console.log(deviceUser);
-                let memberObj = {
-                  userName: deviceUser.userName,
-                  userId: deviceUser.userCode,
-                  region: deviceUser.paasId,
-                  type: 'single',
-                  // speak:'true',
-                  number: deviceUser.userPhone,
-                  deviceId: marker['deviceCode'],
-                  channelId: marker['channelId'],
-                };
-                let meetObj = JSON.parse(
-                  localStorage.getItem('meeting') ?? '{}',
-                );
-                let memberList = [];
-                memberList.push(meetObj.member[0]);
-                memberList.push(memberObj);
-                meetObj.member = memberList;
-                console.log(meetObj);
-                daHuaStore.DAHUAMeetingMember(meetObj).then((data) => {
-                  // daHuaStore.DAHUAMeetingUser(meetObj.meetId);
-                  initSocket(meetObj.user.userCode, memberObj);
-                });
-
-                //  console.log(memberObj);
-                //  meetObj.mebmber.push(memberObj);
-              });
             // console.log(daHuaStore.deviceUser);
           };
           return GET_SINGLE_DEVICE_DIALOG_HTML(
@@ -454,7 +419,6 @@ export default defineComponent({
     };
 
     const updateTrafficSource = () => {
-      debugger
       if (state.map.getSource('Traffic')) {
         state.map.removeSource('Traffic');
       }
@@ -665,36 +629,31 @@ export default defineComponent({
         },
       );
       try {
-        var html = document.createElement("div");
+        const html = document.createElement("div");
         actionTypes.value.forEach(atypes => {
           if (atypes?.action == null) return;
-          var name = atypes.type;
-          var c = (atypes?.action?.toString().split("handleAddMarkers"));
+          const name = atypes.type;
+          const c = (atypes?.action?.toString().split("handleAddMarkers"));
           if (c.length <= 1) return;
-          var args1 = c[1].replaceAll("(","").replaceAll(")","");
+          const args1 = c[1].replaceAll("(","").replaceAll(")","");
           // debugger
-          var args = args1.split(",");
+          const args = args1.split(",");
          
           if (eval(args[2]) == undefined) return;
-          var div = document.createElement("div");
+          const div = document.createElement("div");
           div.className = "tipitem"
 
-          var imagee = renderElement((eval(args[2])));
+          const imagee = renderElement((eval(args[2])));
           div.append(imagee);
-          var c1 = document.createElement("span"); c1.innerHTML = (name);
+          const c1 = document.createElement("span"); c1.innerHTML = (name);
           div.append(c1);
           html.append(div);
           
         });
         state.map["tipcontentRef"].append(html);
-
-       
-
-      } catch (ee) { 
+      } catch (ee) {
 
       }
-      
-      
 
       state.map.on('load', function () {
         updateTrafficSource();
@@ -740,13 +699,14 @@ export default defineComponent({
       if (!route.query.id) return;
       // 如果存在id
       await incidentStore.getIncidentItem(route.query.id as string);
+      // @ts-ignore
       handleSetDetailMarker(incidentStore.incidentDetail.baseInfo ?? {});
 
-      const vPlayAreaEl = document.getElementById('vPlayArea');
+      // const vPlayAreaEl = document.getElementById('vPlayArea');
 
-      vPlayAreaEl &&
-        (vPlayAreaEl.style.height = window.innerHeight - 20 + 'px');
-      window.theSocket && window.theSocket.resize();
+      // vPlayAreaEl &&
+        // (vPlayAreaEl.style.height = window.innerHeight - 20 + 'px');
+      // window.theSocket && window.theSocket.resize();
     });
 
     watch(
@@ -799,7 +759,7 @@ export default defineComponent({
       <div class="task-map-container">
         <MapView v-model:map={state.map} />
         {/* <div style="width:35%;height:20%;background-color:blue"> */}
-        <div id='vPlayArea'  style="width:30%;"/>
+        {/*<div id='vPlayArea'  style="width:30%;"/>*/}
         {/* </div> */}
 
         <div

+ 1 - 2
src/layout/BaseLayout/index.scss

@@ -9,11 +9,10 @@
 
   .dahua-content {
     position: fixed;
-    opacity: 1!important;
     top: 0;
     left: 0;
     &.display {
-      opacity: 1!important;
+      visibility: visible!important;
       width: 100%;
       height: 100vh;
       z-index: 10;

+ 7 - 1
src/layout/BaseLayout/index.tsx

@@ -63,11 +63,17 @@ export default defineComponent({
         // @ts-ignore
         DAHUA.contentWindow.postMessage('onload','*');
       }
+      window.addEventListener('message',e=>{
+          if (e.data === 'closeIframe') {
+            daHuaStore.dahuaUserVisible = false;
+          }
+      },false)
+
     });
 
     return () => (
       <section class="base-layout-container">
-        <iframe style={{opacity: 0}} class={clsx('dahua-content',{['display']: daHuaStore.dahuaUserVisible})}
+        <iframe style={{visibility: 'hidden'}} class={clsx('dahua-content',{['display']: daHuaStore.dahuaUserVisible})}
                 id="DAHUA" name="DAHUA" src="http://127.0.0.1:8080" frameborder="0" />
         <header class="base-layout-title-contatisner">
           <div class="back-to-home" onClick={() => router.push('/home')}></div>

+ 7 - 4
src/store/useMarkerStore.ts

@@ -5,9 +5,9 @@ import {
 } from '@/api/incident';
 import {
   getAllResources,
-  getAllsingleDevice,
-  SingleDeviceItem,
-} from '@/api/resource';
+  getAllsingleDevice, ResourceItemDetail,
+  SingleDeviceItem
+} from "@/api/resource";
 import {
   PENDING_DISPOSAL_INCIDENT,
   PENDING_INCIDENT,
@@ -21,7 +21,7 @@ import { type } from 'os';
 import { defineStore } from 'pinia';
 
 type AllResources = NonNullable<IncidentItemDetail['baseInfo']> &
-  NonNullable<SingleDeviceItem>;
+  NonNullable<SingleDeviceItem> & ResourceItemDetail;
 
 type Simply<T> = { [K in keyof T]: T[K] };
 
@@ -107,16 +107,19 @@ export default defineStore<'marker', MarkerStateType, {}, MainActionsType>(
         try {
           this.toggleLoading();
           const { data } = await getAllResources();
+          // @ts-ignore
           this.emergencyVehicles =
             data.应急车队.map((i) => ({
               ...i,
               locations: `${i.longitude},${i.latitude}`,
             })) ?? [];
+          // @ts-ignore
           this.emergencyTeam =
             data.应急队伍.map((i) => ({
               ...i,
               locations: `${i.longitude},${i.latitude}`,
             })) ?? [];
+          // @ts-ignore
           this.emergencyWarehouse =
             data.应急仓库.map((i) => ({
               ...i,

+ 1 - 0
src/views/HomePage/MessageCard/index.tsx

@@ -23,6 +23,7 @@ export default defineComponent({
             <a
               onClick={async (e) => {
                 e.preventDefault();
+                // @ts-ignore
                 markerStore.currentIncident = item;
                 item.id && (await store.getIncidentItem(item.id));
                 router.push(`/incidentDetail?id=${item.id}`);

+ 5 - 0
src/views/IncidentDetail/EmergencyLinkageCard/index.tsx

@@ -18,6 +18,11 @@ export default defineComponent({
 
     const handleDaHuaSystem = () => {
       dahuaStore.dahuaUserVisible = true;
+      const DAHUA = document.getElementById('DAHUA') as HTMLIFrameElement;
+      DAHUA?.contentWindow?.postMessage(
+        'creatMeeting',
+        '*',
+      );
     };
 
     return () => (

+ 1 - 0
src/views/IncidentDetail/index.scss

@@ -374,6 +374,7 @@
           flex-direction: column;
           align-items: center;
           font-size: px2rem(18px * 2);
+          cursor: pointer;
 
           img {
             width: px2rem(117px * 2);