heyang 2 年 前
コミット
7ee2a74d58

+ 1 - 1
api/request/config.js

@@ -2,7 +2,7 @@ const config = {
 	//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.20:8080',//志伟
+	 //base_url: 'http://192.168.1.20:8080',//志伟
     // base_url: 'http://192.168.1.8:8080',//高升
 	// base_url: 'http://192.168.1.29:8080',//何成
     // base_url: 'http://192.168.1.43:9800',//43服务器

+ 3 - 2
manifest.json

@@ -50,10 +50,11 @@
     "quickapp" : {},
     /* 小程序特有相关 */
     "mp-weixin" : {
-        "appid" : "wx0cbc02ca7f6e7f25",
+        "appid" : "wx47259273fc0d88a7",
         "setting" : {
             "urlCheck" : false,
-            "minified" : true
+            "minified" : true,
+            "postcss" : true
         },
         "usingComponents" : true,
         "permission" : {},

+ 67 - 24
pages/earlyWarningManage/earlyWarningDetail.vue

@@ -35,15 +35,16 @@
 			<view class="small_title"><text></text><text>风险概况</text></view>
 			<view class="basics_li" style="margin-top:20rpx;">
 				<text>发生时间:</text>
-				<text>{{form.startTime}}至{{form.endTime?form.endTime:'-'}}</text>
+				<text v-if="form.everyDay" style="position: absolute;right: 10rpx;top:-33rpx;">+{{form.everyDayNum}}</text>
+				<text>{{form.startTime}}-{{form.endTime?form.endTime:'-'}}</text>
 			</view>
 			<view class="basics_li">
 				<text>持续时间:</text>
-				<text>{{form.riskDuration}}秒</text>
+				<text>{{form.riskDuration?form.riskDuration:'-'}}秒</text>
 			</view>
 			<view class="basics_li">
 				<text>风险响应人员:</text>
-				<text>{{form.responder}}</text>
+				<text>{{form.responder?form.responder:'-'}}</text>
 			</view>
 			<view class="basics_li">
 				<text>实验室内人员:</text>
@@ -110,37 +111,42 @@
 				<text>{{form.applyTime}}</text>
 			</view>
 		</view>
-		<view class="note" v-if="form.warningType==4 || form.warningType==1">
+		<!-- 通知短信 -->
+		<view class="note" v-if="form.warningType==4 || form.warningType==1" >
 			<view class="small_title"><text></text><text>通知短信</text></view>
 			<view class="note_li" style="margin-top:20rpx;" v-for="(item,index) in form.messageVOList">
 				<text>{{item.name}}</text>
 				<view class="note_li_r" v-if="item.isSuccess==1"><img  src="@/images/icon_yjxx_ytz.png"/><text>已通知</text></view>
 			</view>
 		</view>
-		<view class="note" v-if="(form.warningType==2 || form.warningType==3) && form.warningSubType==1 && form.voiceBroadcast==1">
+		<!-- 预警通知 -->
+		<view class="note" v-if="(form.warningType==4 || form.warningType==1) && form.warningSubType!=2 && form.warningSubType!=3 && form.warningSubType!=4 && form.voiceBroadcast==1">
 			<view class="small_title"><text></text><text>预警通知</text></view>
 			<view class="note_li" style="margin-top:20rpx;" >
-				<text>声光报警通知</text>
-				<view class="note_li_r" ><img  src="@/images/icon_yjxx_ytz.png"/><text>已通知</text></view>
+				<text>语音播报</text>
+				<view class="note_li_r"><img  src="@/images/icon_yjxx_ytz.png"/><text>已通知</text></view>
 			</view>
 		</view>
-		<view class="note" v-if="(form.warningType==1 || form.warningType==4) && form.warningSubType==1 && form.voiceBroadcast==1">
+		<view class="note" v-if="(form.warningType==2 || form.warningType==3) && form.warningSubType!=2 && form.warningSubType!=3 && form.warningSubType!=4 && form.voiceBroadcast==1">
 			<view class="small_title"><text></text><text>预警通知</text></view>
 			<view class="note_li" style="margin-top:20rpx;" >
-				<text>语音播报</text>
-				<view class="note_li_r"><img  src="@/images/icon_yjxx_ytz.png"/><text>已通知</text></view>
+				<text>声光报警通知</text>
+				<view class="note_li_r" ><img  src="@/images/icon_yjxx_ytz.png"/><text>已通知</text></view>
 			</view>
 		</view>
-		<view class="picture">
+		<view v-if="form.warningSubType!=2 && form.warningSubType!=3 && form.warningSubType!=4" class="picture">
 			<view class="small_title"><text></text><text>报警抓拍</text></view>
 			<view class="picture_b" >
-				<view class="video">
+				<view class="video" v-if="form.warningType!=1">
 					<video id="myvideo" class="video_t" :src="configUrl+form.recordVideo"></video>
 					<img  class="video_b" @click="lockVideo()" src="@/images/icon_bjzp_spbof.png"/>
 				</view>
+				<view v-if="form.warningType==1" class="img" @click="lockImg(form.warningDetailList)">
+					<img v-for="item in form.warningDetailList"  :src="configUrl+item.photoUrl"/>
+				</view>
 			</view>
 		</view>
-		<view class="bottom_btn" v-if="timeStatus" @click="handleClick('','monitor')">查看监控</view>
+		<view  class="bottom_btn" v-if="timeStatus && (form.warningSubType!=2 && form.warningSubType!=3 && form.warningSubType!=4)" @click="handleClick('','monitor')">查看监控</view>
 	</scroll-view>	
   </view>
 
@@ -172,22 +178,26 @@ export default {
   },
   onLoad(option) {
 	  let self = this;
+	  
 	  //先判断是否是通过点击列表进入
 	  if(option.warningId){
 		  this.warningId=option.warningId;
 	  }else{
 		//通过短信外链跳转进来
 		if(option.id){
+			console.log(11)
 			if(!uni.getStorageSync('token')){
+				console.log(22)
 			    uni.setStorageSync('warningId',option.id);
+				console.log(uni.getStorageSync('warningId'))
 			    uni.redirectTo({
 			        url: '/pages/login',
 			    });
-			}	
-		}else{
-			  this.warningId = uni.getStorageSync('warningId');
-			  uni.removeStorageSync('warningId');
-		}   
+			}else{
+				this.warningId = option.id;
+				uni.removeStorageSync('warningId');
+		    } 	
+		}  
 	  }
 	 
   },
@@ -217,18 +227,16 @@ export default {
 				console.log('预警没超过30分钟')
 				this.timeStatus=true;
 			}
-				console.log(this.timeStatus)
 			
 		},
 		//查看图片
 		lockImg(list){
-			console.log(list)
 			if(!list[0]){
 				return
 			}
 			let urlList=[];
 			for(let i=0;i<list.length;i++){
-				urlList.push(this.baseUrl+list[i].fileUrl)
+				urlList.push(this.configUrl+list[i].photoUrl)
 			}
 			wx.previewImage({
 				urls: urlList, //需要预览的图片http链接列表,多张的时候,url直接写在后面就行了
@@ -244,15 +252,33 @@ export default {
 			this.videoContext.requestFullScreen({ direction: 90 });  
 			this.videoContext.play();
 		},
+		//计算两个日期差值(天)
+		datedifference(sDate1, sDate2) {    //sDate1和sDate2是2006-12-18格式
+			let dateSpan,tempDate,iDays
+			sDate1 = Date.parse(sDate1)
+			sDate2 = Date.parse(sDate2)
+			dateSpan = sDate2 - sDate1
+			dateSpan = Math.abs(dateSpan)
+			iDays = Math.floor(dateSpan / (24 * 3600 * 1000))
+			return iDays
+		 },
 		//获取详情
 		async getInfo(){
 		    let _this = this;
-			console.log(_this.warningId)
-			const {data} = await warningNoticeLogDetail({id:_this.warningId})
+			const {data} = await warningNoticeLogDetail({id:this.warningId})
 			if(data.code==200){
 				let res=data.data
 				this.form=res;
-				
+				if(this.form.startTime!='' && this.form.startTime!=null && this.form.endTime !=''&& this.form.endTime !=null){
+	
+					if(this.form.startTime.split(' ')[0] != this.form.endTime.split(' ')[0]){
+						this.form.everyDay=true;
+						this.form.everyDayNum=this.datedifference(this.form.endTime.split(' ')[0],this.form.startTime.split(' ')[0])
+					}
+				}
+				if(this.form.endTime !=''&& this.form.endTime !=null){
+					this.form.endTime =this.form.endTime.split(' ')[1]
+				}
 				if(res.warningType==1){
 					uni.setNavigationBarTitle({
 						title:'算法识别预警信息'
@@ -486,7 +512,9 @@ export default {
 		.basics_li{
 			display: flex;
 			justify-content: space-between;
+			align-items: center;
 			margin: 0 30rpx;
+			position: relative;
 			>text:nth-of-type(1){
 				font-size: 28rpx;
 				font-family: PingFang SC-Medium, PingFang SC;
@@ -578,6 +606,21 @@ export default {
 					top: 55rpx;
 				}
 			}
+			.img{
+				display: flex;
+				justify-content:flex-start;
+				flex-wrap: wrap;
+				>img{
+					width: 180rpx;
+					height: 180rpx;
+					border-radius: 10rpx 10rpx 10rpx 10rpx;
+					margin-right: 38rpx;
+					margin-bottom: 20rpx;
+				}
+				>img:nth-child(3n+3){
+					margin-right: 0;
+				}
+			}
 			
 		}
 	}

+ 26 - 9
pages/earlyWarningManage/earlyWarningList.vue

@@ -3,8 +3,8 @@
   <view class="earlyWarning">
 	<scroll-view scroll-y @scrolltolower="scrollGet" class="info-max-box">
 		<viw class="list" v-for="(item,index) in dataList" :key="index">
-			<view class="list_t">{{item.date}}</view>
-			<view class="list_li" v-for="(item2,index2) in item.list" :key="index2" @click="handleClick(item2,'detail')">
+			<view class="list_t">{{item[0].createDate}}</view>
+			<view class="list_li" v-for="(item2,index2) in item" :key="index2" @click="handleClick(item2,'detail')">
 				<view class="list_li_t">
 					<view class="list_li_t_l"></view>
 					<view class="list_li_t_c orange_color" v-if="item2.warningType==1">算法识别</view>
@@ -45,9 +45,10 @@ export default {
 		//列表请求参数
 		getData:{
 			pageNum:1,
-			pageSize:20,
+			pageSize:10,
 		},
 		dataList:[],
+		dataArr:[],//临时存储
 		total:0,
 		timeStatus:false,//判断是否超过当前时间30分钟
 		
@@ -88,17 +89,33 @@ export default {
 		  }
 		  
 		},
+		//排序
+		sortClass(sortData){
+		  const groupBy = (array, f) => {
+		    let groups = {};
+		    array.forEach((o) => {
+		      let group = JSON.stringify(f(o));
+			  
+		      groups[group] = groups[group] || [];
+		      groups[group].push(o);
+		    });
+		    return Object.keys(groups).map((group) => {
+		      return groups[group];
+		    });
+		  };
+		  const sorted = groupBy(sortData, (item) => {
+		    return item.createDate; // 返回需要分组的对象
+		  });
+		  return sorted;
+		},
 		async getList(){
 			let self = this;
 			const {data} = await warningNoticeLogList(this.getData);
 			if(data.code==200){
-				let list=[];
-				for(let i in data.data.records[0]){
-					list.push({'date':i,'list':data.data.records[0][i]})
-				}
-				this.dataList=[...this.dataList,...list]
+				this.dataArr=[...this.dataArr,...data.data.records]
+				this.dataList=this.sortClass(this.dataArr)
+				console.log(this.dataList)
 				this.total=data.data.total;
-				 console.log(this.dataList)
 			}
 		},
 	  

+ 1 - 1
pages/login.vue

@@ -190,7 +190,7 @@ export default {
           });
         }else if(uni.getStorageSync('warningId')){//报警信息详情
           uni.redirectTo({
-            url: '/pages/earlyWarningManage/earlyWarningDetail'
+            url: '/pages/earlyWarningManage/earlyWarningDetail?id='+uni.getStorageSync('warningId')
           });
         }else{
           uni.redirectTo({

+ 1 - 1
pages/mine.vue

@@ -60,7 +60,7 @@
       <view class="button-max-big-box">
         <view class="button-max-box" @click="goPage('alarm')" v-if="userType==1">
           <img class="left-img" src="@/images/icon_003.png">
-          <view>安全报警</view>
+          <view>预警记录</view>
           <view class="view-three-one" v-if="securityAlertNum>0">{{securityAlertNum}}</view>
           <img class="right-img" src="@/images/icon_04.png">
         </view>

+ 1 - 0
pages_manage/useRegister/giveRegister.vue

@@ -170,6 +170,7 @@
 				_this.form.afterUse=Number( _this.form.afterUse)
 				_this.form.storageId=_this.form.id
 				_this.form.afterUsePic=_this.imgList.join(',')
+				console.log(_this.form)
 				const {data} = await giveRegisterAdd(_this.form);
 				if(data.code == 200){
 				    uni.showToast({

+ 1 - 0
pages_manage/useRegister/useRegister.vue

@@ -219,6 +219,7 @@
 					return
 				}
 				let obj={
+					subjectId:_this.form.subjectId,
 					bottleName:_this.form.airName,
 					beforeUse:_this.form.currentPressure,
 					beforeUsePic:_this.imgList.join(','),

+ 1 - 0
pages_student/useRegister/useRegister.vue

@@ -219,6 +219,7 @@
 					return
 				}
 				let obj={
+					subjectId:_this.form.subjectId,
 					bottleName:_this.form.airName,
 					beforeUse:_this.form.currentPressure,
 					beforeUsePic:_this.imgList.join(','),