heyang 2 jaren geleden
bovenliggende
commit
9c4e13ddbc

+ 8 - 1
api/index.js

@@ -1232,7 +1232,14 @@ export const jinanGetStartList  = (data) => {
         data: data,
     })
 };
-
+//获取实验室视频地址(校区区分-暨南大学)
+export const jndxGetStartList  = (data) => {
+    return apiResquestFormVideo({
+        url: `/jinandaxue/api/play/startList/`,
+        method: 'GET',
+        data: data,
+    })
+};
 
 //扫码兑换调用
 export const exchangePoints  = (data) => {

+ 4 - 4
api/request/config.js

@@ -1,5 +1,5 @@
 const config = {
-	base_url: 'http://192.168.1.9:8080',//柴
+	//base_url: 'http://192.168.1.9:8080',//柴
 	// base_url: 'http://192.168.1.7:8080',//刘波
 	// base_url: 'http://192.168.1.17:8080',//周攀
     // base_url: 'http://192.168.1.8:8080',//高升
@@ -12,7 +12,7 @@ const config = {
     //base_url: 'https://lab.sxitdlc.com/appTest/',//88服务器线上
 	//base_url: 'https://lab.sxitdlc.com/labSystem/', //矿大地址
 	// base_url: 'https://lab.sxitdlc.com/jdlabSystem/', //交大地址
-    // base_url: 'https://lab.sxitdlc.com/jndxlabSystem/', //暨大地址
+     base_url: 'https://lab.sxitdlc.com/jndxlabSystem/', //暨大地址
       // base_url: 'https://lab.sxitdlc.com/kdwclabSystem/', //矿大文昌地址
 
 	//视频地址
@@ -23,8 +23,8 @@ const config = {
 	// mqtt_url: 'lab.sxitdlc.com/nhmqtt', //矿大MQTT
 	// mqtt_url: 'lab.sxitdlc.com/jdmqtt', //交大MQTT
 	//mqtt_url:'ws://192.168.1.43:1884',
-	// mqtt_url: 'lab.sxitdlc.com/jndxmqtt', //暨大MQTT
-	 mqtt_url: 'lab.sxitdlc.com/kdwcmqtt',  //矿大文昌MQTT
+	 mqtt_url: 'lab.sxitdlc.com/jndxmqtt', //暨大MQTT
+	// mqtt_url: 'lab.sxitdlc.com/kdwcmqtt',  //矿大文昌MQTT
     username: 'mqtt',
     password: 'mqtt@zd1883',
 }

BIN
images/kuangdaMap/map4.png


+ 258 - 395
pages/emergencyEvacuationBig.vue

@@ -6,38 +6,32 @@
 				<view class="picker-max-box">
 					<view class="picker-title-box">
 						<view></view>
-						<view>学院楼栋</view>
+						<view>所属学院</view>
+					</view>
+					<view class="picker-min-box" style="background:#f5f5f5;">
+						<view>{{collegeArray[deptIndex].name}}</view>
+						<img src="@/images/icon_06.png">
 					</view>
-					<picker @change="buildingChange"
-						:range-key="'label'" :value="value" :range="buildingList">
-						<view class="picker-min-box">
-							<view>{{buildingName?buildingName:'请选择学院楼栋'}}</view>
-							<img src="@/images/icon_06.png">
-						</view>
-					</picker>
 				</view>
 				<view class="picker-max-box">
 					<view class="picker-title-box">
 						<view></view>
-						<view>楼层</view>
+						<view>楼层楼栋</view>
+					</view>
+					<view class="picker-min-box" style="background:#f5f5f5;">
+						<view>{{deptArray[deptIndex].name}}</view>
+						<img src="@/images/icon_06.png">
 					</view>
-					<picker @change="floorChange" :disabled="!buildingId"
-						:range-key="'name'" :value="id" :range="floorList">
-						<view class="picker-min-box">
-							<view>{{floorName?floorName:'请选择楼层'}}</view>
-							<img src="@/images/icon_06.png">
-						</view>
-					</picker>
 				</view>
 				<view class="picker-max-box">
 					<view class="picker-title-box">
 						<view></view>
 						<view>实验室</view>
 					</view>
-					<picker @change="fjListChange" :disabled="!floorId"
+					<picker @change="fjListChange"
 						:range-key="'subjectName'" :value="id" :range="fjListArray">
 						<view class="picker-min-box">
-							<view>{{subName?subName:'请选择实验室'}}</view>
+							<view>{{fjListIndex?fjListArray[fjListIndex].subjectName:'请选择实验室'}}</view>
 							<img src="@/images/icon_06.png">
 						</view>
 					</picker>
@@ -63,7 +57,7 @@
 				<!-- 头部 -->
 				<view class="evacuation-title-box">
 					<view class="evacuation-title-name-box">{{subName}}</view>
-					<view class="site"><img src="@/images/icon_14.png">{{address}}</view>
+					<view class="site"><img src="@/images/icon_14.png">环境与气象研究院ECI公共实验室区</view>
 				</view>
 				<!-- 视频监控-选择疏散路径 -->
 				<!-- <view class="monito">
@@ -84,25 +78,6 @@
 						</view>
 					</view>
 				</view> -->
-				<!-- 滚动部分 -->
-				<!-- <view class="evacuation-scroll-box">
-					<view :class="videoIndex == index?'scroll-box-color':''"
-					@click="scrollBoxClick(index)"
-					v-for="(item,index) in videoList" :key="index">{{item.name}}</view>
-				</view> -->
-				<!-- 视频部分 -->
-				<!-- <view class="evacuation-video-box">
-					<video
-						:class="index == videoIndex?'video-a':'video-b'"
-						v-for="(item,index) in videoList" :key="index"
-						:id="urlList.id" :src="item.url"
-						poster="http://lab.sxitdlc.com:9300/statics/logo/logo.png"
-						: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" >
-					</video>
-				</view> -->
 				<!-- 地图部分 -->
 				<view class="roadmap">
 					<view class="roadmap_t">
@@ -118,7 +93,7 @@
 						</view>
 						</view>
 					<view class="evacuation-map-box">
-						<view class="evacuation-map-big-box" :class="floorId==5?'map-1':(floorId==6?'map-2':(floorId==7?'map-3':''))">
+						<view class="evacuation-map-big-box">
 							<view class="evacuation-map-min-for-box" :class="subId == item.subjectId?'evacuation-map-min-for-box-color':''"
 							v-for="(item,index) in fjList" :key="index">{{item.room}}</view>
 							<img class="map-min-img" src="@/images/Version2.3/icon_zjt.gif" v-show="lightList[0].type">
@@ -134,7 +109,7 @@
 				<view class="video-max-box" v-if="urlList[0]">
 					<video
 						v-for="(item,index) in urlList" :key="index" :id="urlList.id" :src="item.url"
-						poster="http://lab.sxitdlc.com:9300/statics/logo/logo.png"
+						:poster="videoCover"
 						: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"
@@ -184,24 +159,21 @@
 
 <script>
     import { config } from '@/api/request/config.js'
-    import { lablayout,evacuate,closure,lineEvacuate,getRedis,getDeviceList,textParseUrlIps,
-	getCameraByFloor,jinanGetStartList,nanhuGetStartList,wenchangGetStartList,lineEvacuateTow,treeselectByUser,getBuilding} from '@/api/index.js'
+    import { lablayout,evacuate,closure,lineEvacuate,getRedis,getDeviceList,textParseUrlIps,jndxGetStartList,getCameraByFloor,nanhuGetStartList,lineEvacuateTow,laboratoryInfo } from '@/api/index.js'
     export default {
         data() {
             return {
+				 videoCover:uni.getStorageSync('videoCover'),
 				//页面状态
 				pageType:"",
+				//学院
+				collegeArray:[{name:"环境与气象研究院",id:"142"}],
+				//楼栋
+				deptArray:[{name:"ECI公共实验室区",id:"137"}],
 				deptIndex:0,
-				//院系楼栋数据
-				buildingList:[],
-				buildingName:"",
-				buildingId:"",
-				//楼层数据
-				floorList:[],
-				floorName:"",
-				floorId:"",
 				//实验室
 				fjListArray:[],
+				fjListIndex:"",
 				//疏散方向
 				buttonArray:[
 					{name:"向左疏散",id:"1"},
@@ -255,144 +227,36 @@
 				startPoint:{},
 				//摄像头信息
 				deptId:'',
-				itemData:{
-					hardwareNUM:'',
-					name:'',
-				},
+				itemData:{},
 				broadcastType:false,
-				address:"",
+				videoHardwareNUM:[],//实验室和楼道摄像头编码
+
 			}
 		},
         onLoad(option) {
-			this.treeselectByUser(option);
-			this.getAppExitLine();
-			getApp().watch(this.getMqttLineData,'lineData');
 			let self = this;
 			//判断入口(执行疏散)
+			if(option.item){
+				let item = JSON.parse(decodeURIComponent(option.item));
+				this.subId = item.subId;
+				this.title = item.title;
+				this.type = item.type;
+				this.itemData.subjectId = item.subId;
+				this.evacuateTwo();
+				this.laboratoryInfo();
+			}else{
+				//判断入口(首页按钮)
+				this.getRedis();
+			}
 		},
 		onShow(){
-			// this.lablayout();
-			// this.getCameraByFloor();
+			this.getAppExitLine();
+			this.lablayout();
+            getApp().watch(this.getMqttLineData,'lineData');
+
+
 		},
 		methods: {
-			//根据账户信息查询学院楼栋数据
-			async treeselectByUser(option){
-				const {data} = await treeselectByUser()
-				let list = [];
-				for(let i=0;i<data.data.length;i++){
-					for(let o=0;o<data.data[i].children.length;o++){
-						let obj = {
-							label:data.data[i].label+'-'+data.data[i].children[o].label,
-							value:data.data[i].children[o].id,
-						}
-						list.push(obj);
-						// if(i==0&&o==0){
-						// 	this.$set(this,'buildingId',obj.value);
-						// 	this.$set(this,'deptId',obj.value);
-						// 	this.$set(this,'buildingName',obj.label);
-						// }
-					}
-				}
-				this.$set(this,'buildingList',list);
-				this.$set(this,'buildingName',"");
-				this.$set(this,'buildingId',"");
-				this.$set(this,'deptId',"");
-				this.$set(this,'floorList',[]);
-				this.$set(this,'floorName',"");
-				this.$set(this,'floorId',"");
-			    this.$set(this,'fjListArray',[]);
-				this.$set(this,'subName',"");
-				this.$set(this,'subId',"");
-				// this.getBuilding(this.buildingId);
-				if(option.item){
-					let item = JSON.parse(decodeURIComponent(option.item));
-					console.log("item",item)
-					this.subId = item.subId;
-					this.subName = item.subjectName;
-					this.address = item.address
-					this.buildingId = item.buildingId;
-					this.deptId = item.buildingId;
-					this.floorId = item.floorId;
-					this.title = item.title;
-					this.type = item.type;
-					this.lablayout(this.buildingId,this.floorId);
-					this.evacuateTwo();
-				}else{
-					//判断入口(首页按钮)
-					this.getRedis();
-				}
-			},
-			//根据账户信息查询学院楼栋数据
-			async getBuilding(buildingId){
-				const {data} = await getBuilding(buildingId)
-				// 过滤了三楼
-				let list = [];
-				for(let i=0;i<data.data.length;i++){
-					if(data.data[i].id != 7){
-						list.push(data.data[i]);
-					}
-				}
-				this.$set(this,'floorList',list);
-				this.$set(this,'floorName',"");
-				this.$set(this,'floorId',"");
-			    this.$set(this,'fjListArray',[]);
-				this.$set(this,'subName',"");
-				this.$set(this,'subId',"");
-				// if(data.data[0]){
-				// 	this.$set(this,'floorName',data.data[0].name);
-				// 	this.$set(this,'floorId',data.data[0].id);
-				// 	this.lablayout(this.buildingId,this.floorId);
-				// }
-			},
-			//获取实验室布局
-			async lablayout(buildingId,floorId){
-				console.log('buildingId',buildingId)
-				console.log('floorId',floorId)
-				let self = this;
-				const {data} = await lablayout(buildingId)
-				if(data.code == 200){
-				  for(let i=0;i<data.data.length;i++){
-					if(data.data[i].id == floorId){
-					  let newList = [];
-					  self.fjList = data.data[i].list;
-					  for(let o=0;o<data.data[i].list.length;o++){
-						if(data.data[i].list[o].subjectId != -1){
-							newList.push(data.data[i].list[o]);
-						}
-					  }
-					  this.$set(this,'fjListArray',newList);
-					 //  if(newList[0]){
-						//   console.log("newList",newList[0])
-						// this.$set(this,'subName',newList[0].subjectName);
-						// this.$set(this,'subId',newList[0].subjectId);
-					 //  }
-					}
-				  }
-				}
-			},
-			//学院楼栋选中
-			buildingChange(e){
-				// this.$set(this,'buildingIndex',e.detail.value);
-				this.$set(this,'buildingName',this.buildingList[e.detail.value].label);
-				this.$set(this,'buildingId',this.buildingList[e.detail.value].value);
-				this.$set(this,'deptId',this.buildingList[e.detail.value].value);
-				this.getBuilding(this.buildingList[e.detail.value].value);
-			},
-			//楼层选中
-			floorChange(e){
-				// this.$set(this,'floorIndex',e.detail.value);
-				this.$set(this,'floorName',this.floorList[e.detail.value].name);
-				this.$set(this,'floorId',this.floorList[e.detail.value].id);
-				this.lablayout(this.buildingId,this.floorList[e.detail.value].id);
-			},
-			//实验室选择
-			fjListChange(e){
-				this.$set(this,'subName',this.fjListArray[e.detail.value].subjectName);
-				this.$set(this,'subId',this.fjListArray[e.detail.value].subjectId);
-				this.itemData.name=this.fjListArray[e.detail.value].subjectName
-				this.itemData.floorId=this.fjListArray[e.detail.value].floorId
-				this.itemData.id=this.fjListArray[e.detail.value].id
-			},
 			getAppExitLine(){
 				let list = [{type:"lab/exit/line"}];
 				getApp().appMqttOn(1,list);
@@ -421,18 +285,47 @@
 			        url:'/pages_manage/workbench/laboratory/monitor?item='+encodeURIComponent(JSON.stringify(this.itemData))+'&deptId='+this.deptId
 			    })
 			},
+			//获取实验室摄像头
+			async laboratoryInfo(){
+
+			  let _this = this;
+			  const {data} = await laboratoryInfo(_this.itemData.subjectId);
+			  if(data.code == 200){
+			     let list = data.data[0];
+				 list.labHardwareVOList.forEach(function(item){
+					 if(item.hardwareTypeEnum.enumName=='VIDEO_MONITOR'){
+						 console.log(item.hardwareNUM)
+						 _this.videoHardwareNUM.push(item.hardwareNUM)
+					 }
+				 })
+
+				 this.getCameraByFloor();
+
+			  }
+			},
 			//获取楼层摄像头列表
 			async getCameraByFloor(){
-				const {data} = await getCameraByFloor({floorId:this.floorId})
+				let _this=this;
+				const {data} = await getCameraByFloor({floorId:5})
 				if(data.code == 200){
 					if(data.data[0]){
-						this.itemData.hardwareNUM=data.data.join(',')
-						this.wenchangGetStartList(data.data);
-						// this.startUrl(response.data);
+						let list=_this.videoHardwareNUM.concat(data.data)
+						let qc=[]
+						for(var i = 0; i < list.length-1; i++){
+							for(var j = i+1; j < list.length; j++){
+								if(list[i]===list[j]){
+									list.splice(j,1);
+									j--;
+								}
+							}
+						}
+						this.nanhuGetStartList(list);
+					}else{
+						this.nanhuGetStartList(_this.videoHardwareNUM);
 					}
 				}
 			},
-			async wenchangGetStartList(rows){
+			async nanhuGetStartList(rows){
 				let self = this;
 				let list = "";
 				for(let i=0;i<rows.length;i++){
@@ -444,11 +337,11 @@
 				  deviceIds:list,
 				  // deviceIds:'440102004920000000011111,2C440102004920000000011112',
 				};
-				const {data} = await jinanGetStartList(obj)
+				const {data} = await jndxGetStartList(obj)
 				if(data.code == 200){
                     let list = [];
                     for(let i=0;i<data.data.length;i++){
-                         let text = 'https://lab.sxitdlc.com/wenchang/stream/';
+                        let text = 'https://lab.sxitdlc.com/jinandaxue/stream/';
                         let url = data.data[i].result.body.data.hls;
                         url = url.split("rtp/");
                         let newUrl = text+'rtp/'+url[1];
@@ -603,38 +496,38 @@
 			        }
 			    });
 			},
-			//发送语音
-			async textParseUrlIps(text){
-				let self = this;
-				let newList = [];
-				for(let i=0;i<self.trumpetList.length;i++){
-				  if(self.trumpetList[i].type){
-					let obj = {
-					  sn:self.trumpetList[i].deviceSn,
-					  port:self.trumpetList[i].port,
-					  deviceIp:self.trumpetList[i].deviceIp,
-					  type:"",
-					  name:"",
-					  speed:"",
-					  params:{
-						tid:"",
-						vol:self.trumpetList[i].deviceVol,
-						urls:[]
-					  }
-					};
-					newList.push(obj);
-				  }
-				}
-				const {data} = await textParseUrlIps(newList,text)
-				if(data.code == 200){
-					uni.showToast({
-						title: '发送成功',
-						icon:"none",
-						mask:true,
-						duration: 2000
-					});
-				}
-			},
+      //发送语音
+      async textParseUrlIps(text){
+        let self = this;
+        let newList = [];
+        for(let i=0;i<self.trumpetList.length;i++){
+          if(self.trumpetList[i].type){
+            let obj = {
+              sn:self.trumpetList[i].deviceSn,
+              port:self.trumpetList[i].port,
+              deviceIp:self.trumpetList[i].deviceIp,
+              type:"",
+              name:"",
+              speed:"",
+              params:{
+                tid:"",
+                vol:self.trumpetList[i].deviceVol,
+                urls:[]
+              }
+            };
+            newList.push(obj);
+          }
+        }
+        const {data} = await textParseUrlIps(newList,text)
+        if(data.code == 200){
+          uni.showToast({
+            title: '发送成功',
+            icon:"none",
+            mask:true,
+            duration: 2000
+          });
+        }
+      },
 			//监听应急疏散数据变更
 			getMqttLineData(val){
 				console.log('收到疏散MQTT')
@@ -663,15 +556,12 @@
 					if(data.data){
 						this.isEvacuate=false;
 						this.deptId = data.data.deptId;
-						this.buildingId = data.data.buildId;
-						this.floorId = data.data.floorId;
 						this.subId = data.data.subId;
 						this.subName = data.data.subName;
-						this.address = data.data.deptName+'-'+data.data.buildName+'-'+data.data.floorName
-						// this.lablayout(data.data.buildId,data.data.floorId);
-						this.lablayout(this.buildingId,this.floorId);
+						this.itemData.subjectId = data.data.subId;
+						this.laboratoryInfo();
 						this.evacuate();
-						// this.getBuilding(this.buildingId);
+						console.log('测试',data.data.subId)
 					}else{
 						this.pageType = 1;
 						this.isEvacuate=true;
@@ -679,6 +569,18 @@
 				}
 
 			},
+			//实验室选择
+			fjListChange(e){
+				this.fjListIndex = e.detail.value;
+				this.$set(this,'subName',this.fjListArray[this.fjListIndex].subjectName);
+				this.$set(this,'subId',this.fjListArray[e.detail.value].subjectId);
+				this.$set(this,'deptId',this.fjListArray[e.detail.value].deptId);
+
+				this.itemData.name=this.fjListArray[e.detail.value].subjectName
+				this.itemData.floorId=this.fjListArray[e.detail.value].floorId
+				this.itemData.id=this.fjListArray[e.detail.value].id
+				this.itemData.subjectId=this.fjListArray[e.detail.value].subjectId
+			},
 			//疏散路线选择
 			buttonChangeTwo(e){
 				this.buttonArrayIndex = e.detail.value;
@@ -740,9 +642,10 @@
 					});
 					return
 				}
-				this.address = this.buildingName+''+this.floorName
+
 				this.lineEvacuateTow();
-				this.getCameraByFloor();
+				this.laboratoryInfo();
+
 			},
 			/* 2.5获取疏散线路 */
 			async lineEvacuateTow(){
@@ -846,14 +749,14 @@
 				}
 				this.lightList = newList;
 				console.log('灯数据改变',this.lightList);
+
 				this.pageType = 2;
 				this.$forceUpdate();
 				this.getDeviceList();
-				this.getCameraByFloor();
 			},
 			async getDeviceList(){
 				let obj ={
-					floorId:this.floorId,
+					floorId:5,
 					page:1,
 					pageSize:100,
 				};
@@ -869,6 +772,27 @@
 			scrollBoxClick(index){
 				this.videoIndex = index;
 			},
+			//获取实验室布局
+			async lablayout(){
+				let self = this;
+				const {data} = await lablayout(137)
+				if(data.code == 200){
+				  for(let i=0;i<data.data.length;i++){
+					if(data.data[i].id == 5){
+					  self.fjList = data.data[i].list;
+					  let newList = [];
+					  for(let o=0;o<data.data[i].list.length;o++){
+						if(data.data[i].list[o].subjectId != -1){
+							newList.push(data.data[i].list[o]);
+						}
+					  }
+
+					  this.$set(this,'fjListArray',newList);
+					}
+				  }
+
+				}
+			},
 		},
         beforeDestroy(){
 			//断开mqtt连接
@@ -950,11 +874,12 @@
 				border-radius:20rpx;
 				padding:20rpx 0 30rpx;
 				.evacuation-title-box{
-					// height:150rpx;
+					height:150rpx;
 					//border-bottom:1rpx solid #dedede;
 					background: #FFFFFF;
 					border-radius: 20rpx;
-					padding:34rpx 22rpx;
+					padding-left:22rpx;
+					padding-top:34rpx;
 					box-sizing :border-box;
 					.evacuation-title-name-box{
 						font-size: 30rpx;
@@ -1143,209 +1068,147 @@
 						overflow:hidden;
 						border:1rpx solid #E0E0E0;
 						margin-top:20rpx;
-						.map-1{
-							background:url(../images/kuangdaMap/map1.png);
+						.evacuation-map-big-box{
+							height:285rpx;
+							width:641rpx;
+							background:url(../images/Version2.3/icon_bj_syspmtcy_jinan.png);
+							background-size 100%
+							margin:28rpx 13rpx ;
+							position relative
+							.evacuation-map-min-for-box{
+								overflow: hidden;
+								display: inline-block;
+								line-height:70rpx;
+								text-align: center;
+								font-size:14rpx;
+							}
+							.evacuation-map-min-for-box-color{
+								background: rgba(0,189,255,0.3);
+							}
 							.evacuation-map-min-for-box:nth-child(1){
-								margin:4rpx 0 0 0;
-								width:54rpx;
-								height:102rpx;
+							    margin:0rpx 80rpx 0 0;
+								height:92rpx;
+								width:92rpx;
 							}
 							.evacuation-map-min-for-box:nth-child(2){
-								margin:4rpx 54rpx 0 0;
-								width:54rpx;
-								height:102rpx;
+								margin: 0rpx 0 0 0;
+								height: 92rpx;
+								width: 57rpx;
 							}
 							.evacuation-map-min-for-box:nth-child(3){
-								margin:4rpx 54rpx 0 0;
-								width:100rpx;
-								height:102rpx;
+								margin: 0rpx 0 0 0;
+								width:58rpx;
+								height:92rpx;
 							}
 							.evacuation-map-min-for-box:nth-child(4){
-								margin:4rpx 0 0 0;
-								width:135rpx;
-								height:102rpx;
+								margin: 0rpx 0 0 0;
+								width:58rpx;
+								height:92rpx;
 							}
 							.evacuation-map-min-for-box:nth-child(5){
-								margin:4rpx 0 0 0;
-								width:95rpx;
-								height:102rpx;
+								margin: 0rpx 0 0 0;
+								width:58rpx;
+								height:92rpx;
 							}
 							.evacuation-map-min-for-box:nth-child(6){
-								margin:4rpx 0 0 0;
-								width:54rpx;
-								height:102rpx;
+								margin: 0rpx 0 0 0;
+								width:58rpx;
+								height:92rpx;
 							}
 							.evacuation-map-min-for-box:nth-child(7){
-								margin:78rpx 0 0 0;
-								width:130rpx;
-								height:102rpx;
+								margin: 0rpx 0 0 0;
+								width:58rpx;
+								height:92rpx;
 							}
 							.evacuation-map-min-for-box:nth-child(8){
-								margin:78rpx 0 0 0;
-								width:149rpx;
-								height:102rpx;
+								margin: 0rpx 50rpx 0 0;
+								width:58rpx;
+								height:92rpx;
 							}
+							/* 第二层 */
 							.evacuation-map-min-for-box:nth-child(9){
-								margin:78rpx 0 0 0;
-								width:84rpx;
-								height:102rpx;
+								margin:0rpx 0rpx 0 0;
+								width:52rpx;
+								height:135rpx;
 							}
 							.evacuation-map-min-for-box:nth-child(10){
-								margin:78rpx 0 0 0;
-								width:84rpx;
-								height:102rpx;
+								margin:46rpx 0 0 0rpx;
+								width:59rpx;
+								height:135rpx;
 							}
 							.evacuation-map-min-for-box:nth-child(11){
-								margin:78rpx 0 0 0;
-								width:94rpx;
-								height:102rpx;
+								margin:46rpx 0 0 0rpx;
+								width:63rpx;
+								height:135rpx;
 							}
 							.evacuation-map-min-for-box:nth-child(12){
-								margin:78rpx 0 0 0;
-								width:44rpx;
-								height:102rpx;
+								margin:46rpx 0 0 0rpx;
+								width:57rpx;
+								height:135rpx;
 							}
 							.evacuation-map-min-for-box:nth-child(13){
-								margin:78rpx 0 0 0;
-								width:64rpx;
-								height:102rpx;
-							}
-							.map-min-img:nth-child(14){
-								top: 134rpx;
-								left: 80rpx;
+								margin:46rpx 0 0 0rpx;
+								width:58rpx;
+								height:135rpx;
 							}
-							.map-min-img:nth-child(15){
-								top: 134rpx;
-								left: 160rpx;
+							.evacuation-map-min-for-box:nth-child(14){
+								margin:46rpx 0 0 0rpx;;
+								width:58rpx;
+								height:135rpx;
 							}
-							.map-min-img:nth-child(16){
-								top: 134rpx;
-								left:280rpx;
+							.evacuation-map-min-for-box:nth-child(15){
+								margin:46rpx 0 0 0rpx;
+								width:60rpx;
+								height:135rpx;
 							}
-							.map-min-img:nth-child(17){
-								top: 134rpx;
-								left:340rpx;
+							.evacuation-map-min-for-box:nth-child(16){
+								margin:46rpx 0 0 0rpx;
+								width:57rpx;
+								height:135rpx;
 							}
-							.map-min-img:nth-child(18){
-								top: 134rpx;
-								left:460rpx;
+							.evacuation-map-min-for-box:nth-child(17){
+								margin:46rpx 0 0 0rpx;
+								width:58rpx;
+								height:135rpx;
 							}
-							.map-min-img:nth-child(19){
-								top: 134rpx;
-								left:540rpx;
+							.evacuation-map-min-for-box:nth-child(18){
+								margin:46rpx 0 0 0rpx;
+								width:58rpx;
+								height:135rpx;
 							}
-						}
-						.map-2{
-							background:url(../images/kuangdaMap/map2.png);
-							.evacuation-map-min-for-box:nth-child(1){
-								margin:4rpx 0 0 0;
-								width:54rpx;
-								height:102rpx;
-							}
-							.evacuation-map-min-for-box:nth-child(2){
-								margin:4rpx 54rpx 0 0;
-								width:54rpx;
-								height:102rpx;
-							}
-							.evacuation-map-min-for-box:nth-child(3){
-								margin:4rpx 54rpx 0 0;
-								width:100rpx;
-								height:102rpx;
-							}
-							.evacuation-map-min-for-box:nth-child(4){
-								margin:4rpx 0 0 0;
-								width:135rpx;
-								height:102rpx;
-							}
-							.evacuation-map-min-for-box:nth-child(5){
-								margin:4rpx 0 0 0;
-								width:145rpx;
-								height:102rpx;
-							}
-							.evacuation-map-min-for-box:nth-child(6){
-								margin:4rpx 0 0 0;
-								width:106rpx;
-								height:102rpx;
-							}
-							.evacuation-map-min-for-box:nth-child(7){
-								margin:78rpx 0 0 0;
-								width:106rpx;
-								height:102rpx;
-							}
-							.evacuation-map-min-for-box:nth-child(8){
-								margin:78rpx 0 0 0;
-								width:100rpx;
-								height:102rpx;
-							}
-							.evacuation-map-min-for-box:nth-child(9){
-								margin:78rpx 0 0 0;
-								width:100rpx;
-								height:102rpx;
-							}
-							.evacuation-map-min-for-box:nth-child(10){
-								margin:78rpx 0 0 0;
-								width:92rpx;
-								height:102rpx;
-							}
-							.evacuation-map-min-for-box:nth-child(11){
-								margin:78rpx 0 0 0;
-								width:90rpx;
-								height:102rpx;
+
+
+
+
+
+							.map-min-img{
+								position: absolute;
+								width:34rpx;
+								height:22rpx;
 							}
-							.evacuation-map-min-for-box:nth-child(12){
-								margin:78rpx 0 0 0;
-								width:53rpx;
-								height:102rpx;
+							.map-min-img:nth-child(19){
+								top: 113rpx;
+								left: 70rpx;
 							}
-							.map-min-img:nth-child(13){
-								top: 134rpx;
-								left: 80rpx;
+							.map-min-img:nth-child(20){
+								top: 113rpx;
+								left: 120rpx;
 							}
-							.map-min-img:nth-child(14){
-								top: 134rpx;
-								left: 160rpx;
+							.map-min-img:nth-child(21){
+								top: 113rpx;
+								left:230rpx;
 							}
-							.map-min-img:nth-child(15){
-								top: 134rpx;
+							.map-min-img:nth-child(22){
+								top: 113rpx;
 								left:280rpx;
 							}
-							.map-min-img:nth-child(16){
-								top: 134rpx;
-								left:340rpx;
-							}
-							.map-min-img:nth-child(17){
-								top: 134rpx;
-								left:460rpx;
+							.map-min-img:nth-child(23){
+								top: 113rpx;
+								left:350rpx;
 							}
-							.map-min-img:nth-child(18){
-								top: 134rpx;
-								left:540rpx;
-							}
-						}
-						.map-3{
-							background:url(../images/kuangdaMap/map3.png);
-						}
-						.evacuation-map-big-box{
-							height:293rpx;
-							width:644rpx;
-							// background:url(../images/Version2.3/icon_bj_syspmtcy_jinan.png);
-							background-size 100%
-							margin:28rpx 13rpx ;
-							position relative
-							.evacuation-map-min-for-box{
-								overflow: hidden;
-								display: inline-block;
-								line-height:70rpx;
-								text-align: center;
-								font-size:14rpx;
-							}
-							.evacuation-map-min-for-box-color{
-								background: rgba(0,189,255,0.3);
-							}
-							.map-min-img{
-								position: absolute;
-								width:34rpx;
-								height:22rpx;
+							.map-min-img:nth-child(24){
+								top: 113rpx;
+								left:400rpx;
 							}
 						}
 					}
@@ -1448,8 +1311,8 @@
 					.trumpet-max-box{
 						display :flex;
 						justify-content :flex-start;
-						margin-top :22rpx;
 						flex-wrap: wrap;
+						margin-top :22rpx;
 						.trumpet-for-box{
 							display:inline-block;
 							width:200rpx;

File diff suppressed because it is too large
+ 0 - 1454
pages/emergencyEvacuationBig/emergencyEvacuationBig.vue


File diff suppressed because it is too large
+ 0 - 1571
pages/emergencyEvacuationBig/emergencyEvacuationBigOne.vue


+ 40 - 27
pages_manage/workbench/laboratory/monitor.vue

@@ -7,7 +7,7 @@
       <video
           v-for="(item,index) in urlList" :key="index" :id="urlList.id" :src="item.url"
           :poster="videoCover"
-          :custom-cache='false' :autoplay="true" :controls="true"
+          :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" >
@@ -53,7 +53,7 @@
         </view>
       </view>
 	  <view class="null-device-box" v-if="!trumpetList[0]">
-		  暂无广播设备
+	  		  暂无广播设备
 	  </view>
     </view>
   </view>
@@ -61,11 +61,11 @@
 
 <script>
 import { config } from '@/api/request/config.js'
-import { getChannels,wenchangGetStartList,jinanGetStartList,nanhuGetStartList ,getDeviceListBySub ,textParseUrlIps ,voice } from '@/api/index.js'
+import { getChannels,wenchangGetStartList,nanhuGetStartList ,jndxGetStartList,getDeviceListBySub ,textParseUrlIps ,voice } from '@/api/index.js'
 export default {
   data() {
     return {
-	  videoCover:uni.getStorageSync('videoCover'),
+		videoCover:uni.getStorageSync('videoCover'),
       itemData:{},
       urlList:[],
       deptId:"",
@@ -81,7 +81,6 @@ export default {
           value:"2"
         },
       ],
-
       current:2,
       trumpetList:[],
       //滑动记录
@@ -97,13 +96,8 @@ export default {
     this.deptId = JSON.parse(decodeURIComponent(option.deptId));
     console.log(this.itemData)
     console.log(this.deptId)
-
-    // if(this.deptId == 102){
-    //   this.wenchangGetStartList();
-    // }else if(this.deptId == 113){
-    //   this.nanhuGetStartList();
-    // }
-	this.GetVideoList();
+	
+	 this.jndxGetStartList();//暨南大学调用摄像头列表
     this.getDeviceListBySub();
     // this.getChannels();
   },
@@ -145,7 +139,6 @@ export default {
     async voice(){
       let obj = {
         txt:this.text,
-
         type:'1'
       };
       const {data} = await voice(this.itemData.id,obj);
@@ -308,7 +301,7 @@ export default {
           let obj = {
             sn:self.trumpetList[i].deviceSn,
             port:self.trumpetList[i].port,
-			      deviceIp:self.trumpetList[i].deviceIp,
+            deviceIp:self.trumpetList[i].deviceIp,
             type:"",
             name:"",
             speed:"",
@@ -338,7 +331,7 @@ export default {
     //获取喇叭列表
     async getDeviceListBySub(){
       let obj = {
-        floorId:5,
+        floorId:this.itemData.floorId,
         subId:this.itemData.id,
         page:1,
         pageSize:100
@@ -352,33 +345,53 @@ export default {
         // console.log(data);
       }
     },
-    //查询摄像头地址(矿大文昌大学)
-    async GetVideoList(){
+
+	//查询摄像头地址(暨南大学)
+	async jndxGetStartList(){
+	  let obj = {
+	    page:'1',
+	    count:'10',
+	    deviceIds:this.itemData.hardwareNUM
+	  };
+	  const {data} = await jndxGetStartList(obj);
+	  if(data.code == 200){
+	    let list = [];
+	    for(let i=0;i<data.data.length;i++){
+	      let text = 'https://lab.sxitdlc.com/jinandaxue/stream/';
+	      let url = data.data[i].result.body.data.hls;
+	      url = url.split("rtp/");
+	      let newUrl = text+'rtp/'+url[1];
+	      let obj = {
+	        id:data.data[i].result.body.data.deviceID,
+	        url:newUrl,
+	      }
+	      list.push(obj)
+	      console.log("obj",obj)
+	    }
+	    this.urlList = list;
+	  }
+	},
+    //查询摄像头地址
+    async getChannels(){
       let obj = {
         page:'1',
         count:'10',
         deviceIds:this.itemData.hardwareNUM
       };
-      const {data} = await wenchangGetStartList(obj);
+      const {data} = await getChannels(obj);
       if(data.code == 200){
         let list = [];
         for(let i=0;i<data.data.length;i++){
-          let text = 'https://lab.sxitdlc.com/wenchang/stream/';
-          let url = data.data[i].result.body.data.hls;
-          url = url.split("rtp/");
-          let newUrl = text+'rtp/'+url[1];
           let obj = {
             id:data.data[i].result.body.data.deviceID,
-            url:newUrl,
+            url:data.data[i].result.body.data.fmp4,
           }
           list.push(obj)
-          console.log("obj",obj)
         }
         this.urlList = list;
       }
     },
-
-	videoErrorCallback(e){
+    videoErrorCallback(e){
       console.log("播放失败",e);
       // uni.showToast({
       //     title: '视频播放失败',
@@ -473,7 +486,7 @@ export default {
         margin-top :22rpx;
         .trumpet-for-box{
           display:inline-block !important;
-          width:204rpx;
+          width:200rpx;
           height:60rpx;
           line-height:60rpx;
           font-size:24rpx;