Browse Source

add 单兵

wenhongquan 3 years ago
parent
commit
5ea7c438e4

+ 11 - 7
src/api/common.ts

@@ -77,13 +77,17 @@ export interface UserInfoResponse extends BaseResponse {
   data: UserInfo;
 }
 
-export const getUserInfo = (ticket: string) =>
-  request<UserInfoResponse>('GET', {
-    url: `http://61.147.254.211:30876/tpbd-cas/user?ticket=${ticket}`,
-    headers: {
-      AppId: '3bcb760743ea456faba29a1dfb247bf4',
-    },
-  });
+export const getUserInfo = (ticket: string) => {
+  debugger
+   return request<UserInfoResponse>('GET', {
+     url: `http://61.147.254.211:30876/tpbd-cas/user?ticket=${ticket}`,
+     headers: {
+       AppId: '3bcb760743ea456faba29a1dfb247bf4',
+     },
+   });
+}
+  
+ 
 export const NeedsReadUserName = [
   '武泽义',
   '戈亚武',

+ 36 - 2
src/api/resource.ts

@@ -98,8 +98,42 @@ export interface AllResourcesResponse {
   };
 }
 
+export interface SingleDeviceItem {
+  userId?: string;
+  userName?: string;
+  userType?: string;
+  deviceCode?: string;
+  gpsX?: string;
+  gpsY?: string;
+  height?: string;
+  angle?: string;
+  speed?: string;
+  startCount?: number;
+  dataSource?: number;
+  time?: string;
+  extendInfo?: null;
+  deviceExtendInfo?: null;
+  channelId?: string;
+}
+
+export interface AllResourcesResponse {
+  data: {
+    应急队伍: ResourcesItem[];
+    应急车队: ResourcesItem[];
+    应急仓库: ResourcesItem[];
+  };
+}
+
 /** 获取所有应急资源信息 */
-export const getAllResources = () =>
-  request<AllResourcesResponse>('GET', {
+export const getAllResources = () => {
+  return request<AllResourcesResponse>('GET', {
     url: `/zhdd/resource/location`,
   });
+}
+  
+export const getAllsingleDevice = () => { 
+   return request<AllResourcesResponse>('GET', {
+     url: `/zhdd/singleDevice/list`,
+   });
+
+};

+ 8 - 0
src/components/MarkerMap/constants.ts

@@ -6,6 +6,7 @@ const ICON_MAP_TYPES = {
   VIDEO_SURVEILLANCE: { name: '视频监控' as const },
   EMERGENCY_VEHICLES: { name: '应急车辆' as const },
   EMERGENCY_TEAM: { name: '应急队伍' as const },
+  SINGLE_PAWN: { name: '单兵' as const },
   EMERGENCY_WAREHOUSE: { name: '应急仓库' as const },
 };
 
@@ -155,3 +156,10 @@ export const VIDEO_SURVEILLANCE = [
     locations: '118.275809,33.929618',
   },
 ];
+
+export const SINGLE_PAWN = [
+  {
+    name: '单兵4',
+    locations: '118.269259,33.974288',
+  }
+];

+ 27 - 1
src/components/MarkerMap/dialog.ts

@@ -1,5 +1,5 @@
 import { IncidentItem } from '@/api/incident';
-import { ResourceItemDetail } from '@/api/resource';
+import { ResourceItemDetail, SingleDeviceItem } from '@/api/resource';
 import { useCommonStore } from '@/store';
 
 export const GET_INCIDENT_DIALOG_HTML = (
@@ -170,6 +170,30 @@ export const GET_TEAM_DIALOG_HTML = (item: ResourceItemDetail) => {
   return el;
 };
 
+
+export const GET_SINGLE_DEVICE_DIALOG_HTML = (item: SingleDeviceItem) => {
+  const el = document.createElement('div');
+  el.innerHTML = `
+  <div>
+    <div class="title">单兵设备</div>
+    <div class="content">
+      <div><span>名称:</span><span>${item.userName ?? '-'}</span></div>
+      <div><span>设备号:</span><span>${item.deviceCode ?? '-'}</span></div>
+      <div><span>定位时间</span><span>${item.time ?? '-'}</span></div>
+    </div>
+    <div class="action">
+      <button class="el-button el-button--primary el-button--small" type="button">
+        <span>查看单兵</span>
+      </button>
+    </div>
+    <i class="card-border-bottom-left"></i>
+    <i class="card-border-bottom-right"></i>
+  </div>
+  `;
+  return el;
+};
+
+
 export const renderElement = (image: any) => {
   const el = document.createElement('div');
   el.id = 'marker';
@@ -182,3 +206,5 @@ export const renderElement = (image: any) => {
 
   return el;
 };
+
+

+ 14 - 0
src/components/MarkerMap/index.tsx

@@ -34,6 +34,7 @@ import {
   GET_VEHICLES_DIALOG_HTML,
   GET_VIDEO_DIALOG_HTML,
   GET_WAREHOUSE_DIALOG_HTML,
+  GET_SINGLE_DEVICE_DIALOG_HTML,
   renderElement,
 } from './dialog';
 import { IncidentItemDetail } from '@/api/incident';
@@ -52,6 +53,7 @@ const MARKER_MAP_TYPES = [
   '应急队伍',
   '应急仓库',
   '应急事件',
+  '单兵'
 ] as const;
 
 export type MarkerMapType = typeof MARKER_MAP_TYPES[number];
@@ -163,6 +165,13 @@ export default defineComponent({
           handleAddMarkers('应急仓库', store.emergencyWarehouse, icon_map_yjck),
         remove: () => handleRemoveMarkers('应急仓库', store.emergencyWarehouse),
       },
+      {
+        type: '单兵',
+        hasActioned: state.hasTypes.includes('单兵'),
+        action: () =>
+          handleAddMarkers('单兵', store.singleDevice, icon_map_yjck),
+        remove: () => handleRemoveMarkers('单兵', store.singleDevice),
+      }
     ]);
 
     const getMarkerPopupHTML = (type: MarkerMapType, marker: MarkerType) => {
@@ -177,6 +186,10 @@ export default defineComponent({
             handleSetDetailMarker(marker);
             store.currentIncident = marker;
           });
+        case '单兵': { 
+            return GET_SINGLE_DEVICE_DIALOG_HTML(marker);
+        }
+        
         case '应急仓库':
           return GET_WAREHOUSE_DIALOG_HTML({
             name: '应急仓库 111',
@@ -471,6 +484,7 @@ export default defineComponent({
         updateTrafficLayerVisibility('none');
 
         store.getAllResources();
+        store.getAllsingleDevice();
         store.getHDIncidentList();
       });
       if (!route.query.id) return;

+ 2 - 2
src/router/index.ts

@@ -64,8 +64,8 @@ router.beforeEach(async (to, from) => {
   const main = useMainStore();
 
   if (!to.query.ticket && !window.localStorage.getItem('Authorization')) {
-    window.location.href = BaseLoginUrl;
-    return false;
+    // window.location.href = BaseLoginUrl;
+    // return false;
   }
 
   if (to.query.ticket && !window.localStorage.getItem('Authorization')) {

+ 1 - 1
src/store/index.ts

@@ -2,4 +2,4 @@ export { default as useMainStore } from './useMainStore';
 export { default as useCommonStore } from './useCommonStore';
 export { default as useIncidentStore } from './useIncidentStore';
 export { default as useMarkerStore } from './useMarkerStore';
-export { default as useDaHuaStore } from './useDaHuaStore.ts';
+export { default as useDaHuaStore } from './useDaHuaStore';

+ 24 - 1
src/store/useMarkerStore.ts

@@ -3,14 +3,16 @@ import {
   IncidentItem,
   IncidentItemDetail,
 } from '@/api/incident';
-import { getAllResources } from '@/api/resource';
+import { getAllResources, getAllsingleDevice } from '@/api/resource';
 import {
   PENDING_DISPOSAL_INCIDENT,
   PENDING_INCIDENT,
   // EMERGENCY_VEHICLES,
   VIDEO_SURVEILLANCE,
   WARNING_INCIDENT,
+  SINGLE_PAWN,
   // EMERGENCY_TEAM,
+  
 } from '@/components/MarkerMap/constants';
 import { defineStore } from 'pinia';
 
@@ -30,6 +32,7 @@ export interface MarkerStateType {
   emergencyVehicles: MarkerType[];
   emergencyTeam: MarkerType[];
   emergencyWarehouse: MarkerType[];
+  singleDevice: MarkerType[];
   /** 详情页面 点击监控点位 打开视频 */
   livevideovisible: boolean;
   livevideos: MarkerType[];
@@ -42,6 +45,7 @@ export interface MainActionsType {
   toggleLoading(): void;
   getHDIncidentList(): void;
   getAllResources(): void;
+  getAllsingleDevice(): void;
 }
 
 export default defineStore<'marker', MarkerStateType, {}, MainActionsType>(
@@ -56,6 +60,7 @@ export default defineStore<'marker', MarkerStateType, {}, MainActionsType>(
       videoSurveillance: VIDEO_SURVEILLANCE,
       emergencyVehicles: [],
       emergencyTeam: [],
+      singleDevice: SINGLE_PAWN,
       emergencyWarehouse: [],
       livevideos: [],
       livevideovisible: false,
@@ -74,6 +79,24 @@ export default defineStore<'marker', MarkerStateType, {}, MainActionsType>(
           this.toggleLoading();
         }
       },
+      async getAllsingleDevice() { 
+        try {
+          this.toggleLoading();
+          const { data } = await getAllsingleDevice();
+          
+          this.singleDevice = [];
+         
+          Object.values(data).forEach(datap => {
+            datap["locations"] = `${datap.gpsX},${datap.gpsY}`,
+            this.singleDevice.push(datap);
+          });
+           console.log(this.singleDevice);
+
+        } finally {
+          this.toggleLoading();
+        }
+      },
+
       async getAllResources() {
         try {
           this.toggleLoading();

+ 1 - 1
vite.config.ts

@@ -18,7 +18,7 @@ export default ({ command, mode }: ConfigEnv): UserConfigExport => {
     root: process.cwd(),
     base: './',
     server: {
-      host: 'localhost',
+      host: '0.0.0.0',
       open: true,
       port: 8000,
       // strictPort: true,