heyang 2 years ago
parent
commit
1ef83e6729

+ 57 - 7
api/index.js

@@ -4,6 +4,14 @@ import { apiResquestJsonList } from './request/request.js'
 import { apiResquestFormVideo } from './request/request.js'
 import { apiResquestTimer } from './request/request.js'
 //3.3.3安全检查--------------------------------
+//查询人员身份标识
+export const getGentleIdentifier  = (data) => {
+    return apiResquest({
+        url: `/security/checkSet/getGentle`,
+        method: 'GET',
+        data: data,
+    })
+};
 //数据统计
 export const dataStatistics  = (data) => {
     return apiResquest({
@@ -52,6 +60,14 @@ export const getCheckStatusCount  = (data) => {
         data: data,
     })
 };
+//各检查状态数据数量
+export const getManageStatusCount  = (data) => {
+    return apiResquest({
+        url: `/zd-security/checkManage/getManageStatusCount`,
+        method: 'GET',
+        data: data,
+    })
+};
 //巡查计划--获取巡查组列表
 export const checkGroupList  = (data) => {
     return apiResquest({
@@ -201,6 +217,13 @@ export const getCheckPlanBySubId = (data) => {
         data: data
     })
 };
+//开展检查-根据实验室id查询该实验室有关计划
+export const buildBySub = (data) => {
+    return apiResquestForm({
+        url: '/laboratory/subject/buildBySub/list?name='+data,
+        method: 'GET',
+    })
+};
 //问题整改重大项-判断是否上传签名
 export const checkSign = (data) => {
     return apiResquestForm({
@@ -241,6 +264,39 @@ export const checkHazardAdd  = (data) => {
 		data: {...data}
 	})
 };
+//开展检查-安全信息牌
+export const getInforSign = (data) => {
+    return apiResquestForm({
+        url: `/laboratory/subject/manger/subQuery/`+data+`/0`,
+        method: 'GET',
+    })
+};
+
+//公共---------------------------------------------------------------------------
+// 获取院系
+export const listDepartments = (data) => {
+    return apiResquestForm({
+        url: '/system/dept/departments/list',
+        method: 'GET',
+    })
+};
+
+//根据学院id查询楼栋
+export const getBuildingList  = (data) => {
+    return apiResquest({
+        url: `/system/dept/`+data+`/building/list`,
+        method: 'GET',
+    })
+};
+
+
+
+
+
+
+
+
+
 
 
 
@@ -1403,13 +1459,7 @@ export const getDicts = (dictType) => {
     })
 };
 
-// 获取院系
-export const listDepartments = (data) => {
-    return apiResquestForm({
-        url: '/system/dept/departments/list',
-        method: 'GET',
-    })
-};
+
 
 //获取报警信息列表
 export const getSafeWarnList = (data) => {

+ 5 - 5
api/request/config.js

@@ -1,17 +1,17 @@
 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.20:8080',//志伟
+	// base_url: 'http://192.168.1.17: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服务器
 	// base_url: 'https://demo.sxitdlc.com/xzgd/',
 
 	// base_url: 'https://lab.sxitdlc.com/labNhSystem/',//43服务器高升测试
-	//base_url: 'https://lab.sxitdlc.com/labAppTest/',//43服务器线上
+	base_url: 'https://lab.sxitdlc.com/labAppTest/',//43服务器线上
     // base_url: 'https://lab.sxitdlc.com/appTest/',//88服务器线上
-	// base_url: 'https://lab.sxitdlc.com/labSystem/', //矿大地址
+	 //base_url: 'https://lab.sxitdlc.com/labSystem/', //矿大地址
       // base_url: 'https://lab.sxitdlc.com/labSaasSystem/', //矿大化工
 	// base_url: 'https://lab.sxitdlc.com/jdlabSystem/', //交大地址
     // base_url: 'https://lab.sxitdlc.com/jndxlabSystem/', //暨大地址

+ 1 - 1
pages.json

@@ -102,7 +102,7 @@
 			"style": {
 				"navigationBarTitleText": "随手拍上报"
 			}
-		},
+		},	
 		{
 			"path": "pages/pages_safetyExamine/snapshotManage/snapshotList",
 			"style": {

+ 4 - 5
pages/home.vue

@@ -1,15 +1,13 @@
 <template>
   <view id="home">
-    <manage-home v-if="userType==1" ref="manage"></manage-home>
-    <user-home v-if="userType==2"></user-home>
-    <supplier-home v-if="userType==3"></supplier-home>
-    <tab-bar v-if="userType!=3"></tab-bar>
+    <safety-examine-home></safety-examine-home>
   </view>
 </template>
 <script>
 import { manageHome } from '@/pages/manageWorkbench'
 import { userHome } from '@/pages/studentWorkbench.vue'
 import { supplierHome } from '@/pages/supplierWorkbench.vue'
+import { safetyExamineHome} from '@/pages/safetyExamineWorkbench.vue'
 import { tabBar } from '@/component/tabBar.vue'
 export default {
   name: "home",
@@ -17,7 +15,8 @@ export default {
     manageHome,
     userHome,
     supplierHome,
-    tabBar
+    tabBar,
+	safetyExamineHome
   },
   data() {
     return {

+ 3 - 71
pages/login.vue

@@ -160,14 +160,11 @@ export default {
         this.getOpenId();//获取openid
         if(data.data.type == "00" ||data.data.type == "11"){//管理端
           uni.setStorageSync('userType',"1");
-          this.getToken()//订阅消息
 
         }else if(data.data.type == 22){//学生端
           uni.setStorageSync('userType',"2");
-          this.getToken()//订阅消息
         }else if(data.data.type == 33){//供应商端
           uni.setStorageSync('userType',"3");
-          this.getToken2()//订阅消息
         }
         if(this.checkedType){
           uni.setStorageSync('userName',this.username)
@@ -176,77 +173,12 @@ export default {
           uni.removeStorageSync('userName')
           uni.removeStorageSync('password')
         }
-        if(uni.getStorageSync('saoCode')){
-          uni.redirectTo({
-            url: '/pages/saoCode/saoCode'
-          });
-        }else if(uni.getStorageSync('mid')){
-          uni.redirectTo({
-            url: '/pages_student/mine/codeSuccess'
-          });
-        }else if(uni.getStorageSync('saoCodeId')){
-          uni.redirectTo({
-            url: '/pages_manage/workbench/laboratory/laboratoryInfo'
-          });
-        }else{
-          uni.redirectTo({
-            url: '/pages/home',
-          });
-        }
-
-      }
-    },
-    //订阅列表查询
-    async getInfoListId(){
-      let _this = this;
-      const {data} = await getDemoInfoList(this.getData)
-      if(data.code==200){
-        let _this=this;
-        let res =data.data
-        //_this.getToken(res)
+        uni.redirectTo({
+          url: '/pages/home',
+        });
 
       }
     },
-    //学生端和管理端订阅消息,出库确认通知,审核结果通知,待审核通知
-    getToken() {
-      let _this = this
-      wx.requestSubscribeMessage({
-        tmplIds:['Vg6iHUEg6hor7RvP37M7oFCoYGreCu11apJqRB2j37w','0gFoOByDYhCOthJW0tgUi3SHTkLMUK11EfIYlS_qJi4','6yzAPx_o9jn_2xhTt7blDcxjYD1x0vUV1JxUsKqpG4k'],//此处的id替换你要发送订阅的模板id,可在小程序后台新建模板中获取
-        success(res) {
-          if(res.errMsg=='requestSubscribeMessage:ok'){
-            uni.showToast({
-              title:'订阅成功!',
-              icon:"none",
-              mask:true,
-              duration: 2000
-            });
-          }
-
-        },
-        fail: function(res) {
-        }
-      })
-    },
-    //供应商端订阅消息,待办事项通知
-    getToken2() {
-      let _this = this
-      wx.requestSubscribeMessage({
-        tmplIds:['2HtEIQ3_PmS0yMd3PHPIIawRqnSP0_He5wrhVKeuqaw'],//此处的id替换你要发送订阅的模板id,可在小程序后台新建模板中获取
-        success(res) {
-          if(res.errMsg=='requestSubscribeMessage:ok'){
-            uni.showToast({
-              title:'订阅成功!',
-              icon:"none",
-              mask:true,
-              duration: 2000
-            });
-          }
-
-        },
-        fail: function(res) {
-        }
-      })
-    }
   },
 
 }

+ 27 - 15
pages/pages_safetyExamine/dangerManage/dangerDetail.vue

@@ -77,12 +77,12 @@
 				</view>
 				<view class="project">
 					<view class="project_t">隐患描述:</view>
-					<view class="project_b">{{infoDialogData.checkHazardApplyDto.hazardDescribe}}</view>
+					<view class="project_b">{{infoData.checkHazardApplyDto.hazardDescribe}}</view>
 				</view>
 				<view class="picture">
 					<view class="picture_t">隐患照片</view>
-					<view class="picture_b">
-						<img  :src="imgItem.fileUrl"  v-for="(imgItem,index) in infoData.checkHazardApplyDto.uploadDtoList" :key="index"  @click="lockImg(infoData.checkHazardApplyDto.uploadDtoList)"/>
+					<view class="picture_b" @click="lockImg(infoData.checkHazardApplyDto.uploadDtoList)">
+						<img  :src="baseUrl+imgItem.fileUrl"  v-for="(imgItem,index) in infoData.checkHazardApplyDto.uploadDtoList" :key="index"  />
 					</view>
 				</view>
 			</view>
@@ -100,8 +100,8 @@
 				</view>
 				<view class="picture">
 					<view class="picture_t">整改照片:</view>
-					<view class="picture_b">
-						<img :src="imgItem.fileUrl" @click="lockImg(imgItem)" v-for="(imgItem,imgIndex) in item.uploadDtoList" :key="imgIndex">
+					<view class="picture_b" @click="lockImg(item.uploadDtoList)">
+						<img :src="baseUrl+imgItem.fileUrl"  v-for="(imgItem,imgIndex) in item.uploadDtoList" :key="imgIndex">
 					</view>
 				</view>
 				<view class="grade">
@@ -154,7 +154,7 @@
 					<view class="left-title-p">隐患照片(最多上传5张):</view>
 					<view class="right-img-box">
 						<view class="img-box" v-for="(imgUrl,imgIndex) in form.uploadDtoList" :key="imgIndex">
-							<img class="img-data" :src="configURL+imgUrl">
+							<img class="img-data" :src="baseUrl+imgUrl.fileUrl">
 							<img class="position-img" src="@/pages_manage/images/icon_ssp_closure.png" @click="delImg(imgIndex)">
 						</view>
 						<img class="add-button" src="@/pages_manage/images/icon_07.png" @click="selectImage()" v-if="form.uploadDtoList.length<5">
@@ -176,7 +176,7 @@
 			</view>
 		</view>
 		<!-- 暂无法整改 -->
-		<view v-if="rectifyStatus==4" class="incapable danger">
+		<!-- <view v-if="rectifyStatus==4" class="incapable danger">
 			<view class="grade">
 				<text>整改结果:</text>
 				<text style="color: #0183FA;">暂无法整改</text>
@@ -202,14 +202,14 @@
 				<text>整改时间:</text>
 				<text >2023-04-0114:00</text>
 			</view>
-		</view>
+		</view> -->
 		
 	
 	</scroll-view>
 	<view class="bottom_btn" @click="submitForm('rectify')" v-if="rectifyStatus==2">提交</view>
 	<view class="bottom_btn_tow" v-if="rectifyStatus==3">
-		<text @click="submitForm('pass')">驳回</text>
-		<text @click="submitForm('reject')">通过</text>
+		<text @click="submitForm('reject')">驳回</text>
+		<text @click="submitForm('pass')">通过</text>
 	</view>
   </view>
 
@@ -225,9 +225,9 @@ export default {
   },
   data() {
     return {
+		baseUrl:config.base_url,
 		id:'',
 		pageType:0,
-		configURL:config.base_url,
 		//列表请求参数
 		getData:{
 		 pageNum:1,
@@ -254,10 +254,12 @@ export default {
 		infoData:{},
 		item:{},
 		rectifyStatus:'',//1已完成 2待整改 3待复核 4 暂无法整改
+		checkType:null,
 		
 	}
   },
   onLoad(option) {
+	  console.log(option.item)
 	 if(option.item){
 		 this.item=JSON.parse(decodeURIComponent(option.item)); 
 		 this.id=this.item.id
@@ -278,7 +280,7 @@ export default {
 	  	  this.resultIndex = index;
 		  if(index==0){
 			  this.form.resultArray=1
-		  }else if(idnex==1){
+		  }else if(index==1){
 			  this.form.resultArray=0
 		  }
 	    },
@@ -302,6 +304,12 @@ export default {
 					this.infoData=data.data
 					this.form.checkHazardId=data.data.checkHazardApplyDto.id;
 					this.form.rectifyType=data.data.checkType;
+					if(data.data.checkRectifyApplyList.length>0){
+						for(let i=0;i<data.data.checkRectifyApplyList.length;i++){
+							this.form.id=data.data.checkRectifyApplyList[i].id;
+						}
+					}
+					this.checkType=data.data.checkType;//检查类型 1校院巡查 2实验室自查
 					
 					if(data.data.checkRectifyApplyList[0]){
 						this.tabTextTow.push({'type':'detail','name':'隐患检查'})
@@ -367,8 +375,9 @@ export default {
 			}
 			let urlList=[];
 			for(let i=0;i<list.length;i++){
-				urlList.push(list[i].fileUrl)
+				urlList.push(this.baseUrl+list[i].fileUrl)
 			}
+			console.log(urlList)
 			wx.previewImage({
 				urls: urlList, //需要预览的图片http链接列表,多张的时候,url直接写在后面就行了
 				current: '', // 当前显示图片的http链接,默认是第一个
@@ -433,7 +442,7 @@ export default {
 		        success: (uploadFileRes) => {
 		            let res = JSON.parse(uploadFileRes.data);
 					if(res.code == 200){
-						this.form.uploadDtoList.push({'fileUrl':res.data.url,'fileName':res.data.name});
+						self.form.uploadDtoList.push({'fileUrl':res.data.url,'fileName':res.data.name});
 					}else{
 						uni.showToast({
 							title: res.msg,
@@ -482,6 +491,9 @@ export default {
 			        mask:true,
 			        duration: 2000
 			    });
+				uni.navigateTo({
+				    url: '/pages/pages_safetyExamine/examineManage/examineList?pageType='+this.checkType
+				});
 			   
 			}
 		},
@@ -496,7 +508,7 @@ export default {
 	display flex;
 	// padding: 0 30rpx;
 	// box-sizing: border-box;
-	padding-bottom: 20rpx;
+	padding-bottom: 120rpx;
 	box-sizing: border-box;
 	
 	.info-max-box{

+ 120 - 59
pages/pages_safetyExamine/dangerManage/dangerList.vue

@@ -11,7 +11,7 @@
 		<view class="lab_title">
 			<picker @change="collegeChange" :value="collegeIndex" :range="collegeArray" class="lab_title_l">
 				<view class="lab_title_l_n">
-					<view>{{collegeArray[collegeIndex]}}</view>
+					<view>{{getData.deptName?getData.deptName:'选择学院'}}</view>
 					<img src="@/images/Version3.3.3/icon_06.png">
 				</view>
 			</picker>
@@ -19,32 +19,36 @@
 				<view class="lab_title_r_btn" @click="searchBtn">
 					<img src="@/images/Version3.3.3/icon_aqjc_ss.png"/>
 				</view>
-				<input type="text" v-model="getData.name" placeholder="实验室/房间号" maxlength="50" placeholder-style="color: #CCCCCC;font-size:26rpx;">
+				<input type="text" v-model="getData.searchValue" placeholder="实验室/房间号" maxlength="50" placeholder-style="color: #CCCCCC;font-size:22rpx;">
+				<view class="clear" @click="clearBtn">清除</view>
 			</view>
 		</view>
 	</view>
 	
 	<scroll-view scroll-y @scrolltolower="scrollGet" class="info-max-box">
 		<view class="list_three">
-			<view class="list_three_li" v-for="(item,index) in  dataList" :key="index" @click="handleClick('','detail')">
+			<view class="list_three_li" v-for="(item,index) in  dataList" :key="index" @click="handleClick(item,'detail')">
 				<view class="list_three_li_t">
 					<view class="list_three_li_t_l">
 						<img src="@/images/Version3.3.3/icon_xyxc_qx.png"/>
 						<text></text>
 					</view>
-					<view class="list_three_li_t_c">实验室名称-房间号</view>
-					<view class="list_three_li_t_c2">已逾期</view>
+					<view class="list_three_li_t_c">{{item.subRoom}}</view>
+					<view class="list_three_li_t_c2" v-if="item.overdueStatus==1">已逾期</view>
 					<view class="list_three_li_t_r"></view>
 				</view>
 				<view class="list_three_li_m">
-					<view class="list_three_li_m_t">计划标题计划标题计划标题计划标题计划标题计划...</view>
+					<view class="list_three_li_m_t">{{item.title}}</view>
 					<view class="list_three_li_m_b">
-						<text class="blue_color">待整改</text>
-						<text>校院巡查</text>
-						<text>环境与测绘学院</text>
+						<text class="green_color" v-if="item.rectifyStatus==1">已完成</text>
+						<text class="blue_color" v-if="item.rectifyStatus==2">待整改</text>
+						<text class="orange_color" v-if="item.rectifyStatus==3">待复核</text>
+						<text class="gray_color" v-if="item.rectifyStatus==4">暂无法整改</text>
+						<text>{{item.hazardType==1?'校院巡查':'实验室自查'}}</text>
+						<text>{{item.collegeName}}</text>
 					</view>
 				</view>
-				<view class="list_three_li_b">整改期限:2023-01-01</view>
+				<view class="list_three_li_b">整改期限:{{item.rectifyDeadline}}</view>
 			</view>
 		</view>
 	</scroll-view>
@@ -54,7 +58,7 @@
 
 <script>
 import { config } from '@/api/request/config.js'
-import { } from '@/api/index.js'
+import {checkHazardAppList,conditionCollegeInfo} from '@/api/index.js'
 export default {
   name: "rectifyList",
   components: {
@@ -67,6 +71,9 @@ export default {
 		getData:{
 		 pageNum:1,
 		 pageSize:20,
+		 hazardType:'1',//1是院校巡查,2是实验室自查
+		 rectifyStatus:'',//1已完成 2待整改 3待复核 4 暂无法整改
+		 searchValue:'',
 		},
 		tabTextTow:['全部','待检查','待复核','已完成','暂无法整改'],
 		curTabTow:0,
@@ -84,14 +91,14 @@ export default {
 		},
 		collegeList:[{name:'学院名称',type:false},{name:'学院名称',type:false},{name:'学院名称',type:false},{name:'学院名称',type:false},{name:'学院名称',type:false},{name:'学院名称',type:false},],
 		collegeIndex :0,
-		collegeArray:['选择学院','学院名称1','学院名称2','学院名称3',],
-		dataList:[{name:'计划标题计划标题计划标题计划标题',},{name:'计划标题计划标题计划标题计划标题',},{name:'计划标题计划标题计划标题计划标题',},{name:'计划标题计划标题计划标题计划标题',},{name:'计划标题计划标题计划标题计划标题',}],
+		collegeArray:[],
+		dataList:[],
 	}
   },
   onLoad(option) {
 	 if(option.form){
-		this.form=JSON.parse(decodeURIComponent(option.form)); 
-		console.log(this.form)
+	 		this.form=JSON.parse(decodeURIComponent(option.form)); 
+	 		console.log(this.form)
 	 }
 	 if(option.pageType==1){
 	 		  uni.setNavigationBarTitle({
@@ -107,70 +114,105 @@ export default {
 	  
   },
   mounted(){
-	  
+	  this.getList();
+	  this.conditionCollegeInfo();
   },
   methods: {
 		//顶部tab点击
 		tabClickTow(index) {
 			this.curTabTow = index;
+			this.getData.pageNum=1;
+			this.getData.searchValue='';
+			this.getData.deptId='';
+			this.getData.deptName='';
+			this.dataList=[];
+			if(index==0){
+				this.getData.rectifyStatus='';
+			}else if(index==1){//待整改
+				this.getData.rectifyStatus=2;
+			}else if(index==2){//待复核
+				this.getData.rectifyStatus=3;
+			}else if(index==3){//已完成
+				this.getData.rectifyStatus=1;
+			}else if(index==4){//暂无法整改
+				this.getData.rectifyStatus=4;
+			}
+			this.getList()
 		},
 		//选择学院
 		collegeChange(e){
 			this.collegeIndex = e.target.value;
+			this.getData.deptId=this.collegeList[e.target.value].deptId
+			this.getData.deptName=this.collegeList[e.target.value].deptName
 			this.dataList=[];
-			this.getList();  
+			this.getList(); 
 		},
 		//实验室搜索
 		searchBtn(){
 			this.dataList=[];
 			this.getList();
 		},
+		//清除
+		clearBtn(){
+			  this.getData.pageNum=1;
+			  this.collegeIndex=0;
+			  this.getData.deptId='';
+			  this.getData.deptName='';
+			  this.getData.searchValue='';
+			  this.dataList=[];
+			  this.getList();
+		},
 		//滚动事件
 		scrollGet(){
 			let self=this;
-			if(self.total<=self.getData.pageNum){
-			    console.log('没有更多数据!')
-			}else{
-					setTimeout(function(){
-						self.getData.pageNum += 1;
-						self.getList(); 
-					},1000)
-						 
+			if(this.pageType==1){//当页面切换到检查管理列表里的时候
+				if(self.total/self.getData.pageSize<=self.getData.pageNum){
+				    console.log('没有更多数据!')
+				}else{
+						setTimeout(function(){
+							self.getData.pageNum += 1;
+							self.getList(); 
+						},1000)
+							 
+				}
 			}
+			
 		},
-	    
-		//学院选择
-		collegeSelete(index){
-			this.collegeList[index].type = !this.collegeList[index].type
-		},
-	    handleClick(item,doType){
-		  let self=this;
-		  if( doType=='subBtn'){//	
-		  
-		  }else if(doType=='detail'){//详情
-			  uni.navigateTo({
-			  	 url: '/pages/pages_safetyExamine/dangerManage/dangerDetail?form='+encodeURIComponent(JSON.stringify(this.form))
-			  })
-		  }
-		  
+	    //查询学院列表
+	    async conditionCollegeInfo(){
+	    	let _this = this;
+	    	const {data} = await conditionCollegeInfo();
+	    	if(data.code == 200){
+	    		data.data.forEach(function(item){
+	    			item.type=false;
+	    		})
+	    		_this.collegeList=data.data;
+	    		
+	    		//检查管理
+	    		for(let i=0;i<data.data.length;i++){
+	    			_this.collegeArray.push(data.data[i].deptName)
+	    		}
+	    	}
+	    },
+	    handleClick(row,doType){
+	      let self=this;
+	      if( doType=='subBtn'){//	
+	      
+	      }else if(doType=='detail'){//详情
+	    	  uni.navigateTo({
+	    	  	 url: '/pages/pages_safetyExamine/dangerManage/dangerDetail?item='+encodeURIComponent(JSON.stringify(row))
+	    	  })
+	      }
+	      
+	    },
+	    async getList(){
+	    	let self = this;
+	    	const {data} = await checkHazardAppList(this.getData);
+	    	if(data.code==200){
+	    		this.dataList=[...this.dataList,...data.data.records]
+	    		this.total=data.data.total;
+	    	}
 	    },
-		async getList(){
-				  let list=[{name:'实验室名称-房间号',type:false,id:4},{name:'实验室名称-房间号',type:false,id:5}]
-				  this.total=5;
-				  this.dataList=[...this.dataList,...list]
-				
-				  
-		 //    let self = this;
-		 //    let obj = {
-		 //        pageNum:this.getData.page,
-		 //        pageSize:this.getData.pageSize,
-		 //    };
-		 //    const {data} = await groupList(obj);
-		 //    if(data.code==200){
-					 //  this.total=data.total;
-					 //  this.dataList=[...this.dataList,...data.data]
-				  // }
-		},
 	  
   }
 }
@@ -283,6 +325,9 @@ export default {
 						margin-left:20rpx;
 						color: #999999;
 						font-size:28rpx;
+						white-space: nowrap;
+						overflow: hidden;
+						text-overflow: ellipsis;
 					}
 					>img{
 						width: 14rpx;
@@ -303,6 +348,7 @@ export default {
 					position: absolute;
 					top: 0rpx;
 					left:0rpx;
+					z-index: 100;
 					>img{
 						width: 20rpx;
 						height: 20rpx;
@@ -312,12 +358,24 @@ export default {
 					}
 				}
 				>input{
-					width: 360rpx;
+					width: 274rpx;
 					height: 60rpx;
 					position: absolute;
 					top: 0rpx;
 					left: 60rpx;
 				}
+				.clear{
+					width: 60rpx;
+					height: 60rpx;
+					position: absolute;
+					top: 0rpx;
+					right:20rpx;
+					font-size: 30rpx;
+					font-family: PingFang SC-Medium, PingFang SC;
+					font-weight: 400;
+					color: #0183FA;
+					line-height: 60rpx;
+				}
 			}
 		}
 		
@@ -412,6 +470,9 @@ export default {
 					color: #666666;
 					line-height: 40rpx;
 					margin-top:22rpx;
+					overflow: hidden;
+					text-overflow:ellipsis;
+					white-space: nowrap;
 				}
 				.list_three_li_m_b{
 					margin-top:26rpx;
@@ -437,7 +498,7 @@ export default {
 					}
 					>text:nth-of-type(3){
 						display: inline-block;
-						width: 380rpx;
+						width: 280rpx;
 						font-size: 26rpx;
 						font-family: PingFang SC-Medium, PingFang SC;
 						font-weight: 400;

+ 4 - 1
pages/pages_safetyExamine/dangerManage/dangerManage.vue

@@ -13,7 +13,7 @@
 				<view :class="{on:curTabTow==index}" class="tabTitle_tow_text">{{item}}</view>
 			    <view :class="{on:curTabTow==index}" class="tabTitle_tow_across"></view>
 			</view>
-		</view>
+		</view><strong></strong>
 		<view class="lab_title">
 			<picker @change="collegeChange" :value="collegeIndex" :range="collegeArray" class="lab_title_l">
 				<view class="lab_title_l_n">
@@ -557,6 +557,9 @@ export default {
 					color: #666666;
 					line-height: 40rpx;
 					margin-top:22rpx;
+					overflow: hidden;
+					text-overflow:ellipsis;
+					white-space: nowrap;
 				}
 				.list_three_li_m_b{
 					margin-top:26rpx;

+ 201 - 28
pages/pages_safetyExamine/examineManage/examineAdd.vue

@@ -21,31 +21,53 @@
 					</view>
 				</picker>
 			</view>
-			<view class="basics_li">
+			<!-- <view class="basics_li">
 				<view class="basics_li_l">楼栋</view>
 				<view class="basics_li_r building_r">
 					<input class="picker-text"  type="text" disabled v-model="form.buildName" placeholder="选择实验室后自动匹配" placeholder-style="font-size: 30rpx;color:#333;">
 				</view>
-			</view>
+			</view> -->
 			<view class="basics_li">
-				<view class="basics_li_l">检查类型</view>
-				<picker @change="categoryChange" :value="categoryIndex" :range="categoryArray" class="scope_r">
+				<view class="basics_li_l">楼栋</view>
+				<picker @change="buildingChange" :value="collegeIndex" :range="buildingArray" class="scope_r">
 					<view class="basics_li_r college_r">
-						<view>{{form.checkType?(form.checkType==1?'校院巡查':'实验室自查'):'选择检查类型'}}</view>
+						<view>{{form.buildName?form.buildName:'选择楼栋'}}</view>
 						<img src="@/images/Version3.3.3/icon_06.png">
 					</view>
 				</picker>
 			</view>
+			
 			<view class="basics_li">
 				<view class="basics_li_l">计划标题</view>
 				<picker @change="planChange" :value="planIndex" :range="planArray" class="scope_r">
 					<view class="basics_li_r college_r">
-						<view>{{form.title?form.title:'选择检查类型'}}</view>
+						<view>{{form.title?form.title:'选择计划标题'}}</view>
 						<img src="@/images/Version3.3.3/icon_06.png">
 					</view>
 				</picker>
 			</view>
-			<view class="custom"  @click="customFun">自定义输入</view>
+			<view class="basics_li">
+				<view class="basics_li_l">检查类型</view>
+				<picker @change="categoryChange" :value="categoryIndex" :disabled="isCustom" :range="categoryArray" class="scope_r">
+					<view class="basics_li_r college_r">
+						<view>{{form.checkType?(form.checkType==1?'校院巡查':'实验室自查'):'选择检查类型'}}</view>
+						<img src="@/images/Version3.3.3/icon_06.png">
+					</view>
+				</picker>
+			</view>
+			<view class="period">
+				<view class="period_l">检查周期</view>
+				<view class="period_r">
+					<picker mode="date" @change="startChange(form,$event)" :disabled="isCustom">
+						<input class="picker-text"  disabled type="text" v-model="form.cycleStartTime" placeholder="开始时间">
+					</picker>
+					<view>至</view>
+					<picker mode="date"  @change="endChange(form,$event)" :disabled="isCustom"> 
+						<input class="picker-text2" disabled type="text" v-model="form.cycleEndTime" placeholder="结束时间">
+					</picker>
+				</view>
+			</view>
+			<view class="custom"  @click="customFun">{{isCustom?'自定义输入':'选择计划'}}</view>
 		</view>
 		<view class="inspect">
 			<view class="inspect_li">
@@ -59,7 +81,7 @@
 			</view>
 			<view class="inspect_li" v-if="form.checkResult==0">
 				<view class="inspect_li_l">整改日期</view>
-				<picker mode="date" @change="startChange(form,$event)">
+				<picker mode="date" @change="rectifyDeadline(form,$event)">
 					<view class="inspect_li_r date_r">
 						<input disabled class="picker-text" type="text" v-model="form.rectifyDeadline" placeholder="请选择日期" placeholder-style="font-size: 30rpx;color:#333;">
 						<img src="@/images/Version3.3.3/icon_rl.png">
@@ -80,12 +102,12 @@
 		<view class="popup-big-box">
 			<view class="popup-input-box">
 				<input type="text" maxlength="10" v-model="room" placeholder="请输入房间号">
-				<view @click="getSelectInfoByRoom">搜索</view>
+				<view @click="buildBySub">搜索</view>
 			</view>
 			<view class="popup-for-max-box">
 				<view class="popup-for-null" v-if="!roomList[0]">暂无数据</view>
 				<view class="popup-for-box" v-for="(item,index) in roomList" :key="index">
-					<view class="name-p">{{item.name}} ({{item.room}})</view>
+					<view class="name-p">{{item.name}}</view>
 					<view class="button-p" @click="popupClickItem(item)">确定</view>
 				</view>
 			</view>
@@ -112,7 +134,7 @@
 
 <script>
 import { config } from '@/api/request/config.js'
-import { getSelectInfoByRoom,conditionCollegeInfo,subjectList,getCheckPlanBySubId,checkManageAdd,findCheckManage} from '@/api/index.js'
+import { buildBySub,listDepartments,subjectList,getCheckPlanBySubId,checkManageAdd,findCheckManage,getBuildingList} from '@/api/index.js'
 export default {
   name: "rectifyList",
   components: {
@@ -139,10 +161,13 @@ export default {
 			collegeName:'',
 			buildId:'',//楼栋
 			buildName:'',
+			roomNumber:'',//房间号
 			checkType:'',// 检查类型(1校院巡查 2实验室自查)    
 			checkResult:'1',// 检查结果 0不符合 1符合 
 			rectifyDeadline:'',//整改期限
 			rectifyNotice:'1',//整改通知(1整改告知书 2整改通知书)
+			cycleStartTime:'',
+			cycleEndTime:'',
 			checkHazardDtoList:[
 				{
 					voiceRemark:[],//语音备忘存储
@@ -176,20 +201,28 @@ export default {
 		room:"",
 		roomList:[],
 		item:{},
+		isCustom:true,
+		buildingArray:[],
+		buildingList:[],
 		
 	}
   },
   onLoad(option) {
 	 if(option.id){
-	 		 this.id=option.id
-	 		 this.findCheckManage()
+	 	this.id=option.id
+	 	this.findCheckManage()
 	 }
+	 //通过实验室id查询计划
+	 if(option.subId){
+	 	this.getCheckPlanBySubId(option.subId)
+	 }
+	 
   },
   onShow() {
 	  
   },
   mounted(){
-	   this.conditionCollegeInfo();
+	   this.listDepartments();
   },
   methods: {
 		//滚动事件
@@ -205,7 +238,21 @@ export default {
 	    },
 		customFun(){
 			let self=this;
-			self.$refs.popup.open()
+			
+			self.isCustom=!self.isCustom
+			if(self.isCustom){//自定义
+				self.form.title='';
+				self.form.checkType='';
+				self.form.cycleStartTime='';
+				self.form.cycleEndTime='';
+			}else{//选择计划
+				
+				self.form.title='';
+				self.form.checkType='';
+				self.form.cycleStartTime='';
+				self.form.cycleEndTime='';
+				self.$refs.popup.open()
+			}
 		},
 		titleCancel(){
 			let self=this;
@@ -216,6 +263,35 @@ export default {
 			this.form.title=this.customTitle;
 			self.$refs.popup.close()
 		},
+		//开始时间选中事件
+		startChange(form,e){
+			if(new Date(e.target.value).getTime()>=new Date(form.cycleEndTime).getTime()){
+				 uni.showToast({
+					title: '结束时间不能小于开始时间',
+					icon:"none",
+					mask:true,
+					duration: 2000
+				});
+			}else{
+				form.cycleStartTime=e.target.value
+			}
+			
+			console.log(e.target.value)
+			console.log(form.cycleStartTime)
+		},
+		//结束时间选中事件
+		endChange(form,e){
+			if(new Date(form.cycleStartTime).getTime()>=new Date(e.target.value).getTime()){
+				 uni.showToast({
+					title: '结束时间不能小于开始时间',
+					icon:"none",
+					mask:true,
+					duration: 2000
+				});
+			}else{
+				form.cycleEndTime=e.target.value
+			}
+		},
 		//详情
 		async findCheckManage(){
 			let _this = this;
@@ -240,14 +316,16 @@ export default {
 					this.form.id=data.data.id;
 					//根据实验室id查询实验室计划
 					if(data.data.subId){
+						this.form.cycleStartTime=data.data.cycleStartTime;
+						this.form.cycleEndTime=data.data.cycleEndTime;
 						this.getCheckPlanBySubId(data.data.subId)
 					}
 			}
 		},
 		//查询学院列表
-		async conditionCollegeInfo(){
+		async listDepartments(){
 			let _this = this;
-			const {data} = await conditionCollegeInfo();
+			const {data} = await listDepartments();
 			if(data.code == 200){
 					
 				for(let i=0;i<data.data.length;i++){
@@ -268,11 +346,35 @@ export default {
 			}
 		},
 		
-		
+		//根据学院id查询楼栋
+		async getBuildingList(deptId){
+			let _this = this;
+			const {data} = await getBuildingList(deptId);
+			if(data.code == 200){
+				console.log(_this.form.buildId)
+				
+				for(let i=0;i<data.data.length;i++){
+					_this.buildingArray.push(data.data[i].deptName)
+					if(_this.form.buildId==data.data[i].deptId){
+						this.$set(this.form,"buildName",data.data[i].deptName)
+					}
+				}
+				console.log(_this.form.buildName)
+				_this.buildingList=data.data;
+			}
+		},
+		//楼栋选中
+		buildingChange(e){
+			this.form.buildId=this.buildingList[e.target.value].deptId
+			this.form.buildName=this.buildingList[e.target.value].deptName
+		},
+		//学院选中
 		collegeChange(e){
 			this.collegeIndex = e.target.value;
 			 this.form.deptId=this.collegeList[e.target.value].deptId
-			 this.form.deptName=this.collegeList[e.target.value].deptName
+			 this.form.collegeName=this.collegeList[e.target.value].deptName
+			 console.log()
+			 this.getBuildingList(this.form.deptId)
 		},
 		//检查类型
 		categoryChange(e){
@@ -288,6 +390,21 @@ export default {
 			this.planIndex = e.target.value;
 			this.form.title=this.planList[e.target.value].title
 			this.form.checkPlanId=this.planList[e.target.value].id
+			
+			this.form.subId=this.planList[e.target.value].subId;
+			this.form.subjectName=this.planList[e.target.value].subjectName;
+			this.form.deptId=this.planList[e.target.value].deptId;
+			this.form.collegeName=this.planList[e.target.value].collegeName;
+			this.form.buildId=this.planList[e.target.value].buildId;
+			this.form.buildName=this.planList[e.target.value].buildName;
+			this.form.checkType=this.planList[e.target.value].checkType;
+			this.form.checkResult=this.planList[e.target.value].checkResult==null?'1':data.data.checkResult;
+			this.form.cycleStartTime=this.planList[e.target.value].cycleStartTime;
+			this.form.cycleEndTime=this.planList[e.target.value].cycleEndTime;
+			this.form.cycleEndTime=this.planList[e.target.value].cycleEndTime;
+			
+			
+			
 		},
 		resultChange(e){
 			this.resultIndex = e.target.value;
@@ -299,7 +416,7 @@ export default {
 			
 		},
 		//开始时间选中事件
-		startChange(form,e){
+		rectifyDeadline(form,e){
 			form.rectifyDeadline=e.target.value
 		},
 		//整改通知
@@ -323,7 +440,7 @@ export default {
 			}
 		},
 		//搜索房间接口
-		async getSelectInfoByRoom(){
+		async buildBySub(){
 			let self = this;
 			if(!this.room){
 				uni.showToast({
@@ -334,7 +451,7 @@ export default {
 				});
 				return
 			}
-			const {data} = await getSelectInfoByRoom(this.room);
+			const {data} = await buildBySub(this.room);
 			if(data.code==200){
 				if(data.data[0]){
 					this.roomList = data.data;
@@ -353,9 +470,17 @@ export default {
 			this.$set(this.form,"subId",item.id)
 			this.$set(this.form,"subjectName",item.name)
 			this.$set(this.form,"deptId",item.deptId)
-			this.$set(this.form,"collegeName",item.deptName)
-			this.$set(this.form,"buildId",item.building)
-			this.$set(this.form,"buildName",item.buildName)
+			this.$set(this.form,"buildId",item.buildId)
+			this.$set(this.form,"roomNumber",item.room)
+			//获取学院名称
+			for(let i=0;i<this.collegeList.length;i++){
+				if(this.collegeList[i].deptId==item.deptId){
+					this.$set(this.form,"collegeName",this.collegeList[i].deptName)
+				}
+			}
+			//请求楼栋数据
+			this.getBuildingList(item.deptId)
+			
 			this.popupType = false;
 			this.getCheckPlanBySubId(item.id)
 		},
@@ -373,7 +498,7 @@ export default {
 						if(codeRoom){
 							self.roomList = [];
 							self.room = codeRoom;
-							self.getSelectInfoByRoom();
+							self.buildBySub();
 							self.popupType = true;
 						}else{
 							uni.showToast({
@@ -406,6 +531,9 @@ export default {
 					mask:true,
 					duration: 2000
 				});
+				uni.redirectTo({
+				    url: '/pages/pages_safetyExamine/examineManage/examineList'
+				});
 			}
 		  },
   }
@@ -426,7 +554,7 @@ export default {
 	.basics{
 		margin: 0 30rpx;
 		width: 690rpx;
-		height: 632rpx;
+		height: 740rpx;
 		background: #FFFFFF;
 		border-radius: 20rpx;
 		padding: 30rpx 28rpx 0;
@@ -472,6 +600,9 @@ export default {
 					font-weight: 400;
 					color: #333333;
 					line-height: 80rpx;
+					white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
 				}
 				>img{
 					width: 14rpx;
@@ -494,7 +625,7 @@ export default {
 					>img{
 						width:30rpx;
 						height:28rpx;
-						margin:16rpx 18rpx 0 0;
+						margin:26rpx 18rpx 0 0;
 					}
 				}
 			}
@@ -512,6 +643,48 @@ export default {
 				}
 			}
 		}
+		.period{
+			display: flex;
+			justify-content: flex-start;
+			align-items: center;
+			margin-bottom: 24rpx;
+			.period_l{
+				width: 146rpx;
+				font-size: 30rpx;
+				font-family: PingFang SC-Medium, PingFang SC;
+				font-weight: 400;
+				color: #333333;
+				line-height: 42rpx;
+				text-align: left;
+			}
+			.period_r{
+				width: 490rpx;
+				height: 80rpx;
+				border-radius: 10rpx;
+				border: 1rpx solid #E0E0E0;
+				display: flex;
+				justify-content: flex-start;
+				align-items: center;
+				.picker-text{
+					font-size: 30rpx;
+					font-family: PingFang SC-Medium, PingFang SC;
+					font-weight: 400;
+					color: #333;
+					line-height: 80rpx;
+					width: 230rpx;
+					text-align: center;
+				}
+				.picker-text2{
+					font-size: 30rpx;
+					font-family: PingFang SC-Medium, PingFang SC;
+					font-weight: 400;
+					color: #333;
+					line-height: 80rpx;
+					width: 230rpx;
+					text-align: center;
+				}
+			}
+		}
 		.custom{
 			width: 150rpx;
 			height: 60rpx;

+ 1 - 1
pages/pages_safetyExamine/examineManage/examineAddTow.vue

@@ -519,7 +519,7 @@
 						duration: 2000
 					});
 					uni.redirectTo({
-					    url: '/pages/pages_safetyExamine/examineManage/examineList?form='+encodeURIComponent(JSON.stringify(this.form))
+					    url: '/pages/pages_safetyExamine/examineManage/examineList'
 					});
 				}
 			  },

+ 87 - 46
pages/pages_safetyExamine/examineManage/examineDetail.vue

@@ -5,30 +5,30 @@
 		<view class="basics">
 			<view class="basics_li">
 				<text>学院:</text>
-				<text>环测学院</text>
+				<text>{{infoData.collegeName}}</text>
 			</view>
 			<view class="basics_li">
 				<text>实验室:</text>
-				<text>实验室名称-房间号</text>	
+				<text>{{infoData.subjectName}}-{{infoData.roomNumber}}</text>	
 			</view>
 			<view class="basics_li">
 				<text>楼栋:</text>
-				<text>楼栋名称</text>
+				<text>{{infoData.buildName}}</text>
 			</view>
 			<view class="basics_li">
 				<text>检查类型:</text>
-				<text>校级巡查</text>
+				<text>{{infoData.checkType==1?'校园巡查':(infoData.checkType==2?'实验室自查':'')}}</text>
 			</view>
 			<view class="basics_li">
 				<text>检查范围:</text>
-				<text>全校</text>
+				<text>{{infoData.checkRange==1?'全校':(infoData.checkRange==2?'学院':'实验室')}}</text>
 			</view>
 			<view class="basics_li" style="border:none;">
 				<text>检查计划:</text>
-				<text>2023年3月份校级督导检查</text>
+				<text>{{infoData.title}}</text>
 			</view>
 		</view>
-		<view class="attachment">
+		<!-- <view class="attachment">
 			<view class="attachment_t">
 				<text>材料附件</text>
 				<text>点击文件标题查看</text>
@@ -38,62 +38,59 @@
 				<text>文件标题文件标题</text>
 				<img class="attachment_li_del" src="@/images/Version3.3.3/icon_fjgk_sc.png"/>
 			</view>
-		</view>
-		<view class="basics">
+		</view> -->
+		<view class="basics" v-if="manageStatus==2">
 			<view class="basics_li">
 				<text>检查结果:</text>
-				<text>不符合</text>
+				<text>{{infoData.checkResult==0?'不符合':(infoData.checkResult==1?'符合':'')}}</text>
 			</view>
 			<view class="basics_li">
 				<text>整改期限:</text>
-				<text>2023-04-06</text>	
-			</view>
+				<text>{{infoData.rectifyDeadline}}</text>	
+			</view>	
 			<view class="basics_li">
 				<text>整改通知:</text>
-				<text  style="color: #0183FA;">整改告知书</text>
+				<text style="color: #0183FA;">{{infoData.rectifyNotice == 1?'整改告知书':(infoData.rectifyNotice == 2?'整改通知书':'')}}</text>
 			</view>
 			<view class="basics_li">
 				<text>检查者:</text>
-				<text>管理员</text>
+				<text>{{infoData.checkUser}}</text>
 			</view>
-			<view class="basics_li" style="border: none;">
+			<view class="basics_li" style="border:none;">
 				<text>检查时间:</text>
-				<text>2023-04-06</text>
+				<text>{{infoData.checkTime}}</text>
 			</view>
 		</view>
-		<view class="inconformity" @click="inconformityFun()">不符合项<img v-if="inconformityStatus" src="@/images/Version3.3.3/icon_bfhx_xq.png"/><img v-if="!inconformityStatus" src="@/images/Version3.3.3/icon_bfhx_sq.png"/></view>
-		<view v-for="(item,index) in dangerList">
+		<view class="inconformity" @click="inconformityFun()" v-if="manageStatus==2">不符合项<img v-if="inconformityStatus" src="@/images/Version3.3.3/icon_bfhx_xq.png"/><img v-if="!inconformityStatus" src="@/images/Version3.3.3/icon_bfhx_sq.png"/></view>
+		<view v-for="(item,index) in infoData.checkHazardDtoList" v-if="manageStatus==2">
 			<view class="danger">
 				<view class="sort">{{item.sort}}</view>
 				<view class="grade" :style="item.switch?'border-bottom: 1rpx solid #D8D8D8;':'border:none;'">
-					<text>第项隐患</text>
-					<text style="color: #0183FA;">待整改 >></text>
+					<text>第{{index+1}}项隐患</text>
+					<text style="color: #0183FA;" @click="dangerItem(item)">{{item.rectifyStatus==1?'已完成':(item.rectifyStatus==2?'待整改':(item.rectifyStatus==3?'待复核':(item.rectifyStatus==4?'暂无法整改':'')))}} >></text>
 				</view>
 				<view v-if="item.switch">
 					<view class="grade">
 						<text>隐患等级:</text>
-						<text>一般隐患</text>
+						<text>{{item.hazardLevel==2?'一般隐患':(item.hazardLevel==1?'重大隐患':(item.hazardLevel==3?'管理问题':''))}}</text>
 					</view>
 					<view class="project">
 						<view class="project_t">检查项目:</view>
-						<view class="project_b">1检查项目名称—1.1检查项目名称名称名称名称—1.1.1检查项目名称名称名称名称名称名称名称名称</view>
-						<view class="project_b2">此检查项在当前实验室累计出现9次隐患</view>
+						<view class="project_b">{{item.hazardCheckProStr}}</view>
+						<view class="project_b2" v-if="item.hazardCheckCount>0">此检查项在当前实验室累计出现{{item.hazardCheckCount}}次隐患</view>
 					</view>
 					<view class="project">
 						<view class="project_t">检查要点:</view>
-						<view class="project_b">检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点</view>
+						<view class="project_b">{{item.hazardCheckPoint}}</view>
 					</view>
 					<view class="project">
 						<view class="project_t">隐患描述:</view>
-						<view class="project_b">检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点检查要点</view>
+						<view class="project_b">{{item.hazardDescribe}}</view>
 					</view>
 					<view class="picture">
 						<view class="picture_t">隐患照片</view>
-						<view class="picture_b">
-							<img  src="@/images/Version3.3.3/icon_xyxc_syszc.png"/>
-							<img  src="@/images/Version3.3.3/icon_xyxc_syszc.png"/>
-							<img  src="@/images/Version3.3.3/icon_xyxc_syszc.png"/>
-							<img  src="@/images/Version3.3.3/icon_xyxc_syszc.png"/>
+						<view class="picture_b" @click="lockImg(item.uploadDtoList)">
+							<img  :src="baseUrl+imgItem.fileUrl"   v-for="(imgItem,imgIndex) in item.uploadDtoList"/>
 						</view>
 					</view>
 				</view>
@@ -101,14 +98,14 @@
 			<view class="pack_up" @click="switchFun(item)">{{item.switch?'收起':'展开'}}<img v-if="item.switch" src="@/images/Version3.3.3/icon_06_1.png"/><img v-if="!item.switch" src="@/images/Version3.3.3/icon_06.png"/></view>
 		</view>
 	</scroll-view>
-	<view class="report" @change="buttonChange">整改报告</view>	
+	<view class="report" @change="buttonChange" v-if="manageStatus==2">整改报告</view>	
   </view>
 
 </template>
 
 <script>
 import { config } from '@/api/request/config.js'
-import {checkSign,queryDeptSignByUserId} from '@/api/index.js'
+import {checkSign,queryDeptSignByUserId,findCheckManage} from '@/api/index.js'
 export default {
   name: "rectifyList",
   components: {
@@ -116,24 +113,29 @@ export default {
   },
   data() {
     return {
+		baseUrl:config.base_url,
+		manageStatus:0,//0 待检查 1 检查中 2已检查
 		pageType:0,
-		dangerList:[{sort:1,switch:false,},{sort:2,switch:false,},{sort:3,switch:false,},{sort:4,switch:false,}],
 		inconformityStatus:false,
+		infoData:{},
 	}
   },
   onLoad(option) {
-	 if(option.form){
-		this.form=JSON.parse(decodeURIComponent(option.form)); 
-		console.log(this.form)
+	 if(option.id){
+	 	this.id=option.id
+	 	this.findCheckManage()
 	 }
-	 if(option.pageType==1){
-		  uni.setNavigationBarTitle({
-				title:'校院巡查管理'
-		  })
-	 }else if(option.pageType==2){
-		  uni.setNavigationBarTitle({
-				title:'实验室自查管理'
-		  })
+	 if(option.manageStatus){//检查状态
+		 this.manageStatus=option.manageStatus;
+	 }
+	 if(option.manageStatus==0 || option.manageStatus==1){
+		uni.setNavigationBarTitle({
+			title:'待检查'
+		})
+	 }else if(option.manageStatus==2){
+	 	uni.setNavigationBarTitle({
+	 		title:'已检查'
+	 	})
 	 }
   },
   onShow() {
@@ -148,15 +150,51 @@ export default {
 		scrollGet(){
 			
 		},
+		//详情
+		async findCheckManage(){
+			let _this = this;
+			const {data} = await findCheckManage({id:this.id});
+			if(data.code == 200){
+				
+				data.data.checkHazardDtoList.forEach(function(item){
+					item.switch=false;
+				})
+				this.infoData=data.data;
+			}
+		},
+		//查看图片
+		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)
+			}
+			wx.previewImage({
+				urls: urlList, //需要预览的图片http链接列表,多张的时候,url直接写在后面就行了
+				current: '', // 当前显示图片的http链接,默认是第一个
+				success: function(res) {},
+				fail: function(res) {},
+				complete: function(res) {},
+			})
+		},
+		//隐患项跳转详情
+		dangerItem(row){
+			uni.navigateTo({
+				 url: '/pages/pages_safetyExamine/dangerManage/dangerDetail?item='+encodeURIComponent(JSON.stringify(row))
+			})
+		},
 		//隐患项收起展开
 	    inconformityFun(){
 			this.inconformityStatus=!this.inconformityStatus;
 			if(this.inconformityStatus){
-				this.dangerList.forEach(function(item){
+				this.infoData.checkHazardDtoList.forEach(function(item){
 					item.switch=true;
 				})
 			}else{
-				this.dangerList.forEach(function(item){
+				this.infoData.checkHazardDtoList.forEach(function(item){
 					item.switch=false;
 				})
 			}
@@ -360,6 +398,9 @@ export default {
 				color: #333333;
 				line-height: 80rpx;
 				text-align: right;
+				white-space: nowrap;
+			    overflow: hidden;
+			    text-overflow: ellipsis;
 			}
 		}
 	}

+ 14 - 5
pages/pages_safetyExamine/examineManage/examineList.vue

@@ -54,13 +54,13 @@
 				<view v-if="item.manageStatus==2" class="list_three_li_b_three">
 					<img src="@/images/Version3.3.3/icon_djcsys.png"/>
 					<text>整改进度:</text>
-					<text>{{item.rectifySchedule}}</text>
+					<text @click="handleClick(item,'detail')">{{item.rectifySchedule}}</text>
 					<text class="report">整改报告</text>
 				</view>
 			</view>
 		</view>
 	</scroll-view>	
-	<view class="bottom_btn" @click="handleClick('startInspect')">开始检查</view>
+	<view class="bottom_btn" @click="handleClick('','startInspect')">开始检查</view>
   </view>
 
 </template>
@@ -119,11 +119,11 @@ export default {
 	 }
   },
   onShow() {
-	 //获取当前日期
-	 this.currentDate=this.getNowFormatDate() 
+	
   },
   mounted(){
-	 
+	  //获取当前日期
+	  this.currentDate=this.getNowFormatDate() 
 	  this.getList(); 
 	  this.conditionCollegeInfo();
 	  
@@ -210,6 +210,14 @@ export default {
 			  uni.navigateTo({
 			      url: '/pages/pages_safetyExamine/examineManage/examineAdd?id='+row.id
 			  });
+		  }else if(doType=='detail'){
+			  uni.navigateTo({
+			      url: '/pages/pages_safetyExamine/examineManage/examineDetail?id='+row.id+'&manageStatus='+row.manageStatus
+			  });
+		  }else if(doType=='startInspect'){//开始检查
+			  uni.navigateTo({
+			      url: '/pages/pages_safetyExamine/examineManage/examineAdd'
+			  });
 		  }
 		  
 	    },
@@ -249,6 +257,7 @@ export default {
 				})
 				this.dataList=[...this.dataList,...data.data.records]
 				this.total=data.data.total;
+				console.log(this.dataList)
 			}
 		},
 	  

+ 119 - 25
pages/pages_safetyExamine/inforSign.vue

@@ -2,43 +2,45 @@
 <template>
   <view class="examine">
 	<scroll-view scroll-y @scrolltolower="scrollGet" class="info-max-box">
+		<view class="header">
+			<view class="header_l">
+				<text>{{itemData.typeName}}</text>
+				<text></text>
+				<text>{{itemData.levelName}}</text>
+			</view>
+			<view class="header_r">{{itemData.deptName}}-{{itemData.room}}</view>
+		</view>
 		<view  class="basics">
 			<view class="grade">
 				<text>责任单位:</text>
-				<text>环境与测绘学院</text>
+				<text>{{itemData.deptName}}</text>
 			</view>
 			<view class="grade">
 				<text>实验室负责人:</text>
-				<text>姓名-13233556655</text>
+				<text >{{itemData.adminName}}-{{itemData.adminPhone?itemData.adminPhone:'未填写'}}</text>
 			</view>
 			<view class="duty">
 				<view class="duty_l">安全责任人:</view>
 				<view class="duty_r">
-					<text>姓名-13233556655</text>
-					<text>姓名-13233556655</text>
+					<text>{{itemData.safeUserNameAdminPhone}}</text>
 				</view>
 			</view>
 		</view>
-		<view class="category">
-			<view class="title">主要危险类别</view>
-			<view class="category_li"><text></text><text>火灾</text></view>
-			<view class="category_li"><text></text><text>火灾盗窃高温化学试剂使用不当引发的燃烧、爆炸等风险室内通风不畅及尾气排放引发的健康风险废液处理不当引发的燃烧、爆炸等风险</text></view>
+		<view class="category" v-if="item.privateList.length>0 && item.classifyType==1" v-for="(item,index) in  itemData.classifyList">
+			<view class="title" :style="'background:'+item.showColour">{{item.classifyName}}</view>
+			<view class="category_li" v-for="(item2,index2) in item.privateList" :key="index2"><text></text><text>{{item2.infoName}}</text></view>
 		</view>
-		<view class="category">
-			<view class="title">安全警示标识</view>
-			<view class="identify_img">
-				<img src="@/images/Version3.3.3/icon_cg.png"/>
-				<img src="@/images/Version3.3.3/icon_cg.png"/>
-				<img src="@/images/Version3.3.3/icon_cg.png"/>
-				<img src="@/images/Version3.3.3/icon_cg.png"/>
-				<img src="@/images/Version3.3.3/icon_cg.png"/>
-				<img src="@/images/Version3.3.3/icon_cg.png"/>
+		<view class="category" v-if="item.privateList.length>0 && item.classifyType==2" v-for="(item,index) in  itemData.classifyList">
+			<view class="title">{{item.classifyName}}</view>
+			<view class="identify_img" @click="lockImg(item.privateList)">
+				<img :src="baseUrl+item2.infoContent" v-for="(item2,index2) in item.privateList" :key="index2"/>
 			</view>
 		</view>
-		<view class="category">
-			<view class="title">紧急报警电话</view>
-			<view class="telephone_li">设备处:83590983</view>
+		<view class="category" v-if="item.privateList.length>0 && item.isSpecial==2" v-for="(item,index) in  itemData.classifyList">
+			<view class="title">{{item.classifyName}}</view>
+			<view class="telephone_li" v-for="(item3,index3) in item.privateList" :key="index3">{{item3.infoContent}}</view>
 		</view>
+		
 	</scroll-view>
 	<view  class="bottom_btn" @click="handleClick('start')">开展检查</view>
   </view>
@@ -47,7 +49,7 @@
 
 <script>
 import { config } from '@/api/request/config.js'
-import { getSelectInfoByRoom} from '@/api/index.js'
+import { getSelectInfoByRoom,getInforSign} from '@/api/index.js'
 export default {
   name: "rectifyList",
   components: {
@@ -55,27 +57,59 @@ export default {
   },
   data() {
     return {
-		configURL:config.base_url,
+		baseUrl:config.base_url,
 		pageType:2,
+		id:'',
+		itemData:{},
 	}
   },
   onLoad(option) {
-	 
+	 if(option.subId){
+	 	this.id=option.subId;
+	 }
   },
   onShow() {
 	  
   },
   mounted(){
-	  
+	  this.getInforSign()
   },
   methods: {
 		//滚动事件
 		scrollGet(){},
+		//查询详情
+		async getInforSign(){
+		  let self = this;
+		  let id = uni.getStorageSync('saoCodeId');
+		  const {data} = await getInforSign(id);
+		  if(data.code == 200){
+		    this.itemData = data.data;
+			console.log(this.itemData)
+		  }
+		},
+		//查看图片
+		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].infoContent)
+			}
+			wx.previewImage({
+				urls: urlList, //需要预览的图片http链接列表,多张的时候,url直接写在后面就行了
+				current: '', // 当前显示图片的http链接,默认是第一个
+				success: function(res) {},
+				fail: function(res) {},
+				complete: function(res) {},
+			})
+		},
 	    handleClick(doType){
 		  let self=this;
 		  if(doType=='start'){//提交
 			  uni.navigateTo({
-			      url: '/pages/pages_safetyExamine/examineManage/examineAdd'
+			      url: '/pages/pages_safetyExamine/examineManage/examineAdd?id='+ uni.getStorageSync('saoCodeId')
 			  });
 		  }
 	    },
@@ -94,6 +128,66 @@ export default {
 		padding-bottom: 128rpx;
 		box-sizing: border-box;
 	}
+	.header{
+		width: 690rpx;
+		height: 100rpx;
+		background: #FFFFFF;
+		border-radius: 20rpx 20rpx 20rpx 20rpx;
+		margin: 20rpx 30rpx;
+		padding: 0 30rpx;
+		box-sizing: border-box;
+		display: flex;
+		justify-content: flex-start;
+		align-items: center;
+		.header_l{
+			width: auto;
+			height: 60rpx;
+			background: #FFFFFF;
+			border-radius: 50rpx 50rpx 50rpx 50rpx;
+			opacity: 1;
+			border: 1rpx solid #DF4848;
+			padding: 0 20rpx;
+			box-sizing: border-box;
+			display: flex;
+			justify-content: flex-start;
+			align-items: center;
+			margin-right: 26rpx;
+			
+			>text:nth-of-type(1){
+				font-size: 24rpx;
+				font-family: PingFang SC-Medium, PingFang SC;
+				font-weight: 400;
+				color: #DF4848;
+				line-height: 60rpx;
+			}
+			>text:nth-of-type(2){
+				display: inline-block;
+				width: 0rpx;
+				height: 19rpx;
+				opacity: 1;
+				border: 1rpx solid #A2A2A2;
+				margin: 0 10rpx;
+			}
+			>text:nth-of-type(3){
+				font-size: 24rpx;
+				font-family: PingFang SC-Medium, PingFang SC;
+				font-weight: 400;
+				color: #DF4848;
+				line-height: 60rpx;
+			}
+		}
+		.header_r{
+			font-size: 30rpx;
+			font-family: PingFang SC-Medium, PingFang SC;
+			font-weight: 400;
+			color: #333333;
+			line-height: 60rpx;
+			flex: 1;
+			white-space: nowrap;
+			overflow: hidden;
+			text-overflow: ellipsis;
+		}
+	}
 	.basics{
 		width: 690rpx;
 		background: #FFFFFF;

+ 6 - 5
pages/pages_safetyExamine/patrolPlan/patrolPlanAdd.vue

@@ -30,7 +30,7 @@
 				<view class="scope_l">检查范围</view>
 				<picker @change="scopeChange" :value="scopeIndex" :range="scopeArray" class="scope_r">
 					<view class="scope_r_n">
-						<view>{{scopeArray[scopeIndex]}}</view>
+						<view>{{form.checkRange?(form.checkRange==1?'全校':(form.checkRange==2?'学院':'实验室')):'选择检查范围'}}</view>
 						<img src="@/images/Version3.3.3/icon_06.png">
 					</view>
 				</picker>
@@ -68,7 +68,7 @@
 				</view>
 			</view>
 		</view>
-	  </view>
+	</view>
   </view>
 
 </template>
@@ -138,7 +138,6 @@ export default {
 	  
   },
   mounted(){
-	this.getAllSubNum();
   },
   methods: {
 		//滚动事件
@@ -215,6 +214,8 @@ export default {
 						_this.conditionCollegeInfo();
 					}else if(e.target.value==0){//全校
 						_this.getAllSubNum();
+					}else if(e.target.value==2){
+						console.log('选择实验室')
 					}
 				  } else if (res.cancel) {
 					  
@@ -270,7 +271,7 @@ export default {
 		patrolChange(){
 			this.form.tiemQuickList=this.tiemQuickList//检查周期快捷存储
 			this.form.scopeIndex=this.scopeIndex//检查范围
-			uni.navigateTo({
+			uni.redirectTo({
 			    url: '/pages/pages_safetyExamine/patrolPlan/patrolPlanAddMember?form='+encodeURIComponent(JSON.stringify(this.form))+'&pageType=1'
 			});
 		},
@@ -282,7 +283,7 @@ export default {
 			}else if(this.scopeIndex==2){//实验室
 			    this.form.tiemQuickList=this.tiemQuickList//检查周期快捷存储
 			    this.form.scopeIndex=this.scopeIndex//检查范围
-				uni.navigateTo({
+				uni.redirectTo({
 				    url: '/pages/pages_safetyExamine/patrolPlan/patrolPlanAddLab?form='+encodeURIComponent(JSON.stringify(this.form))+'&pageType=1'
 				});
 			}

+ 2 - 2
pages/pages_safetyExamine/patrolPlan/patrolPlanAddLab.vue

@@ -145,7 +145,7 @@ export default {
 			this.seleteListLab.forEach(function(item){
 				subIds.push(item.subId)
 			})
-			this.$set(this.form,'subId', subIds.join(','))
+			this.$set(this.form,'subIds', subIds.join(','))
 		}
 		if(this.pageType==1){
 			uni.redirectTo({
@@ -181,7 +181,7 @@ export default {
 				  item.type=false;
 			  })
 			  this.dataList=[...this.dataList,...data.rows]
-			  this.total=data.data.total;
+			  _this.total=data.total;
 			  if(this.seleteListLab.length>0){//如果有选中的数据
 			  		for(let i=0;i<this.dataList.length;i++){
 			  			if(this.seleteListLab.findIndex((item)=>item.id===this.dataList[i].id) !=-1){//不等于-1说明数组里有当前元素,可以改为选中

+ 5 - 4
pages/pages_safetyExamine/patrolPlan/patrolPlanAddMember.vue

@@ -40,6 +40,7 @@ export default {
 		checkLevel:'0',
 		groupName:'',
 		
+		
       },
 	  total:0,
 	  dataList:[],
@@ -116,7 +117,7 @@ export default {
 		
 		this.$set(this.form,'checkGroupId',this.seleteListMember[0].id)
 		this.$set(this.form,'checkGroupName',this.seleteListMember[0].groupName)
-	  	const {data} = await checkGroupDetail({id:id});
+	  	const {data} = await checkGroupDetail({id:id,selectEnable:'1'});
 	  	if(data.code == 200){
 	  	    this.$set(this.form,'checkGroupMemberList',data.data.checkGroupMemberList)
 			if(this.pageType==1){
@@ -139,12 +140,12 @@ export default {
 	      const {data} = await checkGroupList(_this.getData);
 	      if(data.code==200){
 			  
-			  if(data.data.records){
-				  data.data.records.forEach(function(item){
+			  if(data.data){
+				  data.data.forEach(function(item){
 					  item.type=false
 				  })
 			  }
-			  this.dataList=[...this.dataList,...data.data.records]
+			  this.dataList=[...this.dataList,...data.data]	
 			  //如果有选中的数据
 			  if(this.seleteListMember.length>0){
 					for(let i=0;i<this.dataList.length;i++){

+ 16 - 13
pages/pages_safetyExamine/patrolPlan/patrolPlanEdit.vue

@@ -37,8 +37,9 @@
 			<view class="delay_inspect" >
 				<view class="delay_inspect_l" v-if="form.checkStatus==1">待检查实验室:<text>{{form.subjectNum}}间</text></view>
 				<view class="delay_inspect_r" v-if="form.checkStatus==1">未开始</view>
-				<view class="delay_inspect_l" v-if="form.checkStatus==2">检查进度:<text>{{form.checkSchedule}}</text></view>
+				<view class="delay_inspect_l" v-if="form.checkStatus==2 || form.checkStatus==3">检查进度:<text>{{form.checkSchedule}}</text></view>
 				<view class="delay_inspect_r_tow" v-if="form.checkStatus==2">进行中</view>
+				<view class="delay_inspect_r_tow" v-if="form.checkStatus==3">已结束</view>
 			</view>
 			<view class="basics">
 				<view class="title">
@@ -128,7 +129,7 @@
 							<text>{{item.collegeName}}</text>
 						</view>
 					</view>
-					<view class="list_three_li_b" >
+					<view class="list_three_li_b" v-if="item.manageStatus==2">
 						<img src="@/images/Version3.3.3/icon_djcsys.png"/>
 						<text>整改进度:</text>
 						<text>{{item.rectifySchedule}}</text>
@@ -575,7 +576,7 @@ export default {
 		//根据id查询巡查组员
 		async checkGroupDetail(id){
 			let _this = this;
-			const {data} = await checkGroupDetail({id:id});
+			const {data} = await checkGroupDetail({id:id,selectEnable:'1'});
 			if(data.code == 200){
 				 this.$set(this.form,'checkGroupMemberList',data.data.checkGroupMemberList)
 				 this.$set(this.form,'checkGroupName',data.data.groupName)
@@ -591,7 +592,7 @@ export default {
 			  console.log(11)
 		  }else if(doType=='detail'){//详情
 			  uni.navigateTo({
-			      url: '/pages/pages_safetyExamine/examineManage/examineDetail'
+			      url: '/pages/pages_safetyExamine/examineManage/examineDetail?id='+item.id+'&manageStatus='+item.manageStatus
 			  });
 		  }
 		  
@@ -1268,7 +1269,7 @@ export default {
 		.list_three_li{
 			position: relative;
 			width: 690rpx;
-			height: 360rpx;
+			height:auto;
 			background: #fff;
 			border-radius: 10rpx;
 			overflow: hidden;
@@ -1295,7 +1296,7 @@ export default {
 					}
 				}
 				.list_three_li_t_c{
-					width: 570rpx;
+					width: 630rpx;
 					height: 110rpx;
 					position: absolute;
 					left: 30rpx;
@@ -1309,7 +1310,7 @@ export default {
 					overflow: hidden;
 					text-overflow:ellipsis;
 					white-space: nowrap;
-					padding-right: 60rpx;
+					padding-right: 120rpx;
 					box-sizing: border-box;
 				}
 				.list_three_li_t_c2{
@@ -1338,13 +1339,15 @@ export default {
 				}
 			}
 			.list_three_li_m{
-				position: absolute;
-				top: 110rpx;
-				left: 0;
+				// position: absolute;
+				// top: 110rpx;
+				// left: 0;
 				width: 690rpx;
 				height: 158rpx;
 				padding-left: 30rpx;
 				box-sizing: border-box;
+				margin-top: 110rpx;
+				overflow: hidden;
 				.list_three_li_m_t{
 					font-size: 28rpx;
 					font-family: PingFang SC-Medium, PingFang SC;
@@ -1395,9 +1398,9 @@ export default {
 			.list_three_li_b{
 				height: 80rpx;
 				width: 100%;
-				position: absolute;
-				top: 278rpx;
-				left: 0;
+				// position: absolute;
+				// top: 278rpx;
+				// left: 0;
 				display: flex;
 				justify-content: flex-start;
 				align-items: center;

+ 9 - 2
pages/pages_safetyExamine/patrolPlan/patrolPlanList.vue

@@ -47,6 +47,7 @@
 				</view>
 			</view>
 		</view>
+		<img class="null-img" v-if="!dataList[0]" src="@/images/null-data-1.png">
 	</scroll-view>	
 	<view class="bottom_btn" @click="handleClick('','subBtn')">发起巡查计划</view>
   </view>
@@ -130,11 +131,11 @@ export default {
 		  let self=this;
 		  
 		  if( doType=='subBtn'){//发起巡查计划	
-			 uni.navigateTo({
+			 uni.redirectTo({
 			     url: '/pages/pages_safetyExamine/patrolPlan/patrolPlanAdd?pageType='+this.getData.checkType
 			 });
 		  }else if(doType=='edit'){//编辑
-			  uni.navigateTo({
+			  uni.redirectTo({
 			      url: '/pages/pages_safetyExamine/patrolPlan/patrolPlanEdit?pageType='+row.checkType+'&id='+row.id
 			  });
 		  }
@@ -156,6 +157,12 @@ export default {
 .examine{
 	height:100%;
 	display flex;
+	.null-img{
+		display block
+		width:276rpx;
+		height:321rpx;
+		margin:100rpx 0 0 274rpx;
+	}
 	.info-max-box{
 		flex: 1;
 		overflow: scroll;

+ 6 - 6
pages/pages_safetyExamine/snapshotManage/snapshotDetail.vue

@@ -18,7 +18,7 @@
 			<view class="picture">
 				<view class="picture_t">隐患照片:</view>
 				<view class="picture_b" @click="lockImg(item.yhDtoList)">
-					<img  :src="item.fileUrl" v-for="(item,index) in item.yhDtoList"/>
+					<img  :src="baseUrl+item.fileUrl" v-for="(item,index) in item.yhDtoList"/>
 				</view>
 			</view>
 			<view class="grade">
@@ -50,7 +50,7 @@
 					<view class="left-title-p">隐患照片(最多上传5张):</view>
 					<view class="right-img-box">
 						<view class="img-box" v-for="(imgUrl,imgIndex) in form.imgDtoList" :key="imgIndex">
-							<img class="img-data" :src="configURL+imgUrl">
+							<img class="img-data" :src="baseUrl+imgUrl">
 							<img class="position-img" src="@/pages_manage/images/icon_ssp_closure.png" @click="delImg(imgIndex)">
 						</view>
 						<img class="add-button" src="@/pages_manage/images/icon_07.png" @click="selectImage()" v-if="form.imgDtoList.length<5">
@@ -71,8 +71,8 @@
 			</view>
 			<view class="picture">
 				<view class="picture_t">上传照片:</view>
-				<view class="picture_b">
-					<img  :src="item.fileUrl" v-for="(item,index) in item.zgDtoList"/>
+				<view class="picture_b" @click="lockImg(item.zgDtoList)">
+					<img  :src="baseUrl+item.fileUrl" v-for="(item,index) in item.zgDtoList"/>
 				</view>
 			</view>
 			<view class="grade">
@@ -100,7 +100,7 @@ export default {
   },
   data() {
     return {
-		configURL:config.base_url,
+		baseUrl:config.base_url,
 		id:'',
 		rectifyStatus:'',//整改状态,0是待整改,1是已整改,2是暂无法整改
 		pageType:2,
@@ -175,7 +175,7 @@ export default {
 			}
 			let urlList=[];
 			for(let i=0;i<list.length;i++){
-				urlList.push(list[i].fileUrl)
+				urlList.push(this.baseUrl+list[i].fileUrl)
 			}
 			wx.previewImage({
 				urls: urlList, //需要预览的图片http链接列表,多张的时候,url直接写在后面就行了

+ 485 - 57
pages/safetyExamineWorkbench.vue

@@ -69,7 +69,7 @@
 				<!--检查者------------- -->
 				<view class="tabTitle_tow" v-if="pageType==1">
 					<view class="tabTitle_tow_li" @tap="tabClickTow(index)"  :key="index" v-for="(item,index) in tabTextTow">
-						<view :class="{on:curTabTow==index}" class="tabTitle_tow_text">{{item}}<text>2</text></view>
+						<view :class="{on:curTabTow==index}" class="tabTitle_tow_text">{{item.name}}<text>{{item.num}}</text></view>
 					    <view :class="{on:curTabTow==index}" class="tabTitle_tow_across"></view>
 					</view>
 				</view>
@@ -80,8 +80,10 @@
 								<img src="@/images/Version3.3.3/icon_xyxc_qx.png"/>
 								<text></text>
 							</view>
-							<view class="list_tow_li_t_c">{{item.subjectName}}-{{item.roomNumber}}</view>
-							<view class="list_tow_li_t_c2" v-if="item.isOverdue==1">已逾期</view>
+							<view class="list_tow_li_t_c" v-if="curTabTow==0 || curTabTow==1">{{item.subjectName}}-{{item.roomNumber}}</view>
+							<view class="list_tow_li_t_c" v-if="curTabTow==2 && item.rectifyStatus==3">{{item.subRoom}}</view>
+							<view class="list_tow_li_t_c2" v-if="(curTabTow==0 || curTabTow==1) && item.isOverdue==1">已逾期</view>
+							<view class="list_tow_li_t_c2" v-if="curTabTow==2 && item.overdueStatus==3">已逾期</view>
 							<view class="list_tow_li_t_r"></view>
 						</view>
 						<view class="list_tow_li_m">
@@ -90,17 +92,17 @@
 								<text class="blue_color" v-if="item.manageStatus==0">待检查</text>
 								<text class="red_color" v-if="item.manageStatus==1">检查中</text>
 								<text class="green_color" v-if="item.manageStatus==2">已检查</text>
-								<text class="orange_color" v-if="item.rectifyStatus==3">待审核</text>
+								<text class="orange_color" v-if="curTabTow==2 && item.rectifyStatus==3">待审核</text>
 								<text>{{item.checkType==1?'校院巡查':'实验室自查'}}</text>
 								<text>{{item.collegeName}}</text>
 							</view>
 						</view>
 						<!-- 开始检查 -->
-						<view v-if="item.rectifyStatus==3" class="list_tow_li_b" @click="handleTowClick(item,'check')">复核</view>
-						<view v-if="item.manageStatus==0 && item.notStarted" class="list_tow_li_b" @click="handleTowClick(item,'add')">开始检查</view>
-						<view v-if="item.manageStatus==1" class="list_tow_li_b" @click="handleTowClick(item,'edit')">编辑</view>
-						<view v-if="!item.notStarted" class="list_tow_li_b_tow"><img src="@/images/Version3.3.3/icon_xyxcgl_jhwks.png"/>计划未开始</view>
-						<view v-if="item.manageStatus==2" class="list_tow_li_b_three">
+						<view v-if="curTabTow==2 && item.rectifyStatus==3" class="list_tow_li_b" @click="handleTowClick(item,'check')">复核</view>
+						<view v-if="(curTabTow==0 || curTabTow==1) && item.manageStatus==0 && item.notStarted" class="list_tow_li_b" @click="handleTowClick(item,'add')">开始检查</view>
+						<view v-if="(curTabTow==0 || curTabTow==1) &&item.manageStatus==1" class="list_tow_li_b" @click="handleTowClick(item,'edit')">编辑</view>
+						<view v-if="(curTabTow==0 || curTabTow==1) &&!item.notStarted" class="list_tow_li_b_tow"><img src="@/images/Version3.3.3/icon_xyxcgl_jhwks.png"/>计划未开始</view>
+						<view v-if="(curTabTow==0 || curTabTow==1) &&item.manageStatus==2" class="list_tow_li_b_three">
 							<img src="@/images/Version3.3.3/icon_djcsys.png"/>
 							<text>整改进度:</text>
 							<text>{{item.rectifySchedule}}</text>
@@ -134,53 +136,91 @@
 				
 				<view class="tabTitle_three" v-if="pageType==2">
 					<view class="tabTitle_three_li" @tap="tabClickThree(index)"  :key="index" v-for="(item,index) in tabTextThree">
-						<view :class="{on:curTabThree==index}" class="tabTitle_three_text">{{item}}<text>2</text></view>
+						<view :class="{on:curTabThree==index}" class="tabTitle_three_text">{{item.name}}<text>{{item.num}}</text></view>
 					    <view :class="{on:curTabThree==index}" class="tabTitle_three_across"></view>
 					</view>
 				</view>
 				<view class="list_three" v-if="pageType==2">
-					<view class="list_three_li" v-for="(item,index) in  dataList" :key="index" @click="handleClick(item,'edit')">
+					<view class="list_three_li" v-for="(item,index) in  dataList3" :key="index" @click="handleThreeClick(item,'detail')">
 						<view class="list_three_li_t">
 							<view class="list_three_li_t_l">
 								<img src="@/images/Version3.3.3/icon_xyxc_qx.png"/>
 								<text></text>
 							</view>
-							<view class="list_three_li_t_c">实验室名称-房间号</view>
-							<view class="list_three_li_t_c2">已逾期</view>
+							<!-- 隐患 -->
+							<view class="list_three_li_t_c" v-if="curTabThree==0">{{item.subRoom}}</view>
+							<!-- 随手拍 -->
+							<view class="list_three_li_t_c" v-if="curTabThree==1">{{item.subName}}</view>
+							<view class="list_three_li_t_c2" v-if="item.overdueStatus==1">已逾期</view>
 							<view class="list_three_li_t_r"></view>
 						</view>
 						<view class="list_three_li_m">
-							<view class="list_three_li_m_t">计划标题计划标题计划标题计划标题计划标题计划...</view>
+							<!-- 隐患 -->
+							<view class="list_three_li_m_t" v-if="curTabThree==0">{{item.hazardDescribe}}</view>
+							<!-- 随手拍 -->
+							<view class="list_three_li_m_t" v-if="curTabThree==1">{{item.hazardDescribe}}</view>
 							<view class="list_three_li_m_b">
-								<text class="blue_color">未开始</text>
-								<text>校院巡查</text>
-								<text>环境与测绘学院</text>
+								<!-- 隐患 -->
+								<text class="green_color" v-if="curTabThree==0 && item.rectifyStatus==1">已完成</text>
+								<text class="blue_color"  v-if="curTabThree==0 && item.rectifyStatus==2">待整改</text>
+								<text class="orange_color" v-if="curTabThree==0 && curTabThree==0 && item.rectifyStatus==3">待复核</text>
+								<text class="gray_color" v-if="curTabThree==0 && item.rectifyStatus==4">暂无法整改</text>
+								<text class="type" v-if="curTabThree==0">{{item.hazardType==1?'校院巡查':'实验室自查'}}</text>
+								<text class="college" v-if="curTabThree==0">{{item.collegeName}}</text>
+								<!-- 随手拍 -->
+								<text class="blue_color" v-if="curTabThree==1 && item.rectifyStatus==0">待整改</text>
+								<text class="green_color" v-if="curTabThree==1 && item.rectifyStatus==1">已整改</text>
+								<text class="orange_color" v-if="curTabThree==1 && item.rectifyStatus==2">暂无法整改</text>
+								<text class="college" v-if="curTabThree==1">{{item.deptName}}</text>
 							</view>
 						</view>
-						<view class="list_three_li_b">
-							<text>整改期限:2023-01-01</text>
+						<!-- 隐患 -->
+						<view class="list_three_li_b" v-if="curTabThree==0">
+							<text >整改期限:{{item.rectifyDeadline}}</text>
+						</view>
+						<!-- 随手拍 -->
+						<view class="list_three_li_b2" v-if="curTabThree==1">
+							<view class="list_three_li_b_l">
+								<img src="@/images/Version3.3.3/icon_ssp_ry.png"/>
+								<text>上报人:{{item.createName}}</text>
+							</view>
+							<view class="list_three_li_b_r">{{item.createTime}}</view>
 						</view>
 					</view>
 				</view>
 		</view>
 	</scroll-view>	
-	<view class="bottom_btn"  @click="handleClick('','start')">开展检查</view>
-	<img class="scan_btn" src="@/images/Version3.3.3/icon_xyxc_sm.png"/>
+	<!-- <view class="bottom_btn" v-if="pageType==1"  @click="handleClick('','start')">开展检查</view> -->
+	<img class="scan_btn" @click.stop="saoCode" src="@/images/Version3.3.3/icon_xyxc_sm.png"/>
+	<!-- 选择学院-->
+	<view class="shade" v-if="dialogVisible">
+		<view class="null-box" @click="dialogClose()"></view>
+		<view class="shade_n">
+			<view class="shade_n_title"><text>选择该实验室隐患项</text><text @click="hiddenConfirm">确定</text></view>
+			<view class="shade_n_b">
+				<view class="shade_n_b_li" v-for="(item,index) in  hiddenList" :key="index" @click="hiddenSelete(index)">
+					<text :class="item.type?'color_B':'color_A'">{{item.hazardDescribe}}</text>
+					<img v-if="item.type" src="@/images/Version3.3.3/icon_xzwt_xz.png">
+				</view>
+			</view>
+		</view>
+	</view>
+	<tab-bar></tab-bar>
   </view>
-
 </template>
 
 <script>
 import { config } from '@/api/request/config.js'
-import {checkPlanList,getCheckStatusCount,dataStatistics,checkManageList,checkHazardList} from '@/api/index.js'
+import { tabBar } from '@/component/tabBar.vue'
+import {checkPlanList,getCheckStatusCount,getManageStatusCount,dataStatistics,checkManageList,checkHazardAppList,getGentleIdentifier,checkClapList,getCheckPlanBySubId} from '@/api/index.js'
 export default {
   name: "rectifyList",
   components: {
-   
+   tabBar
   },
   data() {
     return {
-	  pageType:1,
+	  pageType:0,
       //列表请求参数
       getData:{
         pageNum:1,
@@ -194,6 +234,12 @@ export default {
 	  	manageStatus:0,//管理状态(-1全部 0待检查,1检查中,2已检查)
 		rectifyStatus:'',
 	  },
+	  getData3:{
+	    pageNum:1,
+	    pageSize:20,
+	    hazardType:'',//1是院校巡查,2是实验室自查
+		rectifyStatus:'',//1已完成 2待整改 3待复核 4 暂无法整改
+	  },
 	 
 	  userType:1,//人员类型 3整改人 2检查人 1管理员
 	  statisticsList:[
@@ -211,33 +257,44 @@ export default {
 	  ],
 	  tabText:[{name:'未开始',num:0,},{name:'进行中',num:0}],
 	  curTab:0,
-	  tabTextTow:['待检查','检查中','待复核'],
+	  tabTextTow:[{name:'待检查',num:0,},{name:'检查中',num:0,},{name:'待复核',num:0,}],
 	  curTabTow:0,
-	  tabTextThree:['隐患待整改','随手拍整改'],
+	  tabTextThree:[{name:'隐患待整改',num:0,},{name:'随手拍整改',num:0,}],
 	  curTabThree:0,
 	  total:0,
 	  dataList:[],//管理员
 	  total2:0,
 	  dataList2:[],//检查者
+	  total3:0,
+	  dataList3:[],//整改者
 	  currentDate:'',
-	  
+	  dangerAllNum:0,
+	  snapshotAllNum:0,
+	  isSubPlan:false,//判断管理员和检查者扫码的实验室是否有检查计划
+	  dialogVisible:false,
+	  hiddenList:[],
     }
   },
   onLoad() {
-
+	
   },
   onShow() {
-	   //获取当前日期
-	   this.currentDate=this.getNowFormatDate()
+	 
   },
   mounted(){
-	 
+	  //获取当前日期
+	  this.currentDate=this.getNowFormatDate()
+	  //this.getGentleIdentifier();//查询身份标识
 	  this.getCheckStatusCount();
+	  this.getManageStatusCount();
 	  this.dataStatistics();
+	  this.checkClapListAllNum();//随手拍待整改总数
 	  if(this.pageType==0){//管理员
 		   this.getList();
 	  }else if(this.pageType==1){//检查者
 		   this.getList2();
+	  }else if(this.pageType==2){//整改者
+		  this.checkHazardAppList();
 	  }
 	 
   },
@@ -245,15 +302,46 @@ export default {
 	  //滚动事件
 	  scrollGet(){
 		  let self=this;
-	      if(self.total/self.getData.pageSize<=self.getData.pageNum){
-	          console.log('没有更多数据!')
-	      }else{
-			  setTimeout(function(){
-				  self.getData.pageNum += 1;
-				  self.getList(); 
-			  },1000)
-			 
+		  if(this.pageType==0){//管理员
+			  if(self.total/self.getData.pageSize<=self.getData.pageNum){
+			      console.log('没有更多数据!')
+			  }else{
+				  setTimeout(function(){
+					  self.getData.pageNum += 1;
+					  self.getList(); 
+				  },1000)
+			  			 
+			  }
+		  }else if(this.pageType==1){//检查者
+			  if(self.total2/self.getData2.pageSize<=self.getData2.pageNum){
+			      console.log('没有更多数据!')
+			  }else{
+				  setTimeout(function(){
+					  self.getData2.pageNum += 1;
+					  
+					   if(self.curTabTow==2){//待复核
+						   self.checkHazardAppList()
+					   }else {
+						   self.getList2();
+					   }
+				  },1000)	 
+			  }
+		  }else if(this.pageType==2){//整改者
+			  if(self.total3/self.getData3.pageSize<=self.getData3.pageNum){
+			      console.log('没有更多数据!')
+			  }else{
+				  setTimeout(function(){
+					self.getData3.pageNum += 1;
+					if(self.curTabThree==0){//隐患
+					 		self.checkHazardAppList()
+					}else {//随手拍
+					 		self.checkClapList()
+					}
+				  },1000)
+			  			 
+			  }
 		  }
+	     
 	  },
 	  //管理员
 	  tabClick(index) {
@@ -280,12 +368,20 @@ export default {
 			this.getList2()
 		}else if(index==2){//待复核
 			this.getData2.rectifyStatus=3
-			this.checkHazardList()
+			this.checkHazardAppList()
 		} 
 		
 	  },
-	  tabClickThree(index) {
+	  tabClickThree(index) {//整改者
 	  	this.curTabThree = index;
+		this.getData3.pageNum=1;
+		this.dataList3=[];
+		if(index==0){//隐患待整改
+		    this.getData3.rectifyStatus=2
+			this.checkHazardAppList()
+		}else if(index==1){//随手拍待整改
+			this.checkClapList();
+		}
 	  },
 	  handleClick(row,doType){
 		  let self=this;
@@ -337,6 +433,7 @@ export default {
 		  }
 		  
 	  },
+	  
 	  //检查者
 	  handleTowClick(row,doType){
 		  if(doType=='add'){//开始检查
@@ -348,10 +445,137 @@ export default {
 			      url: '/pages/pages_safetyExamine/examineManage/examineAdd?id='+row.id
 			  });
 		  }else if(doType=='check'){//复核
-			  
+			  uni.navigateTo({
+			  	 url: '/pages/pages_safetyExamine/dangerManage/dangerDetail?item='+encodeURIComponent(JSON.stringify(row))
+			  })
 		  }
 	  },
-	  
+	  //整改者
+	  handleThreeClick(row,doType){
+			if(doType=='detail'){
+				if(this.curTabThree==0){//隐患待整改详情
+					uni.navigateTo({
+						 url: '/pages/pages_safetyExamine/dangerManage/dangerDetail?item='+encodeURIComponent(JSON.stringify(row))
+					})
+				}else if(this.curTabThree==1){
+					uni.navigateTo({
+						 url: '/pages/pages_safetyExamine/snapshotManage/snapshotDetail?id='+row.id+'&rectifyStatus='+this.getData3.rectifyStatus
+					})
+				}
+				
+			}
+	  },
+	  /* 扫一扫*/
+	  saoCode(){
+	  	let self = this;
+	  	uni.scanCode({
+	  		onlyFromCamera: true,
+	  		success: function (res) {
+				console.log(res)
+	  			if(res.result.indexOf("code") != -1 && res.result.indexOf("-") != -1 && res.result.indexOf("&") != -1){
+	  				let subId = "";
+	  				let newList = res.result.split("?")[1].split("&")
+	  				let list = newList[0].split("=")[1].split("-")
+	  				subId = list[0];
+	  				if(subId){
+						
+						if(self.pageType==0 || self.pageType==1){//管理员和检查者
+							self.getCheckPlanBySubId(subId)
+						}else if(self.pageType==2){//整改者
+						  let obj={
+							pageNum:1,
+							pageSize:100,
+							subId:subId,
+						  }
+						  self.checkHazardAppList2(obj);
+						}
+						
+						
+	  				}else{
+	  					uni.showToast({
+	  						title: '请扫描正确的二维码',
+	  						icon:"none",
+	  						mask:true,
+	  						duration: 2000
+	  					});
+	  				}
+	  			}else{
+	  				uni.showToast({
+	  					title: '请扫描正确的二维码',
+	  					icon:"none",
+	  					mask:true,
+	  					duration: 2000
+	  				});
+	  			}
+	  		}
+	  	});
+	  },
+	  //根据实验室id查询该实验室有关计划
+	  async getCheckPlanBySubId(subId){
+	  	let _this = this;
+		let id=subId;
+	  	const {data} = await getCheckPlanBySubId({'subId':id});
+	  	if(data.code == 200){
+			if(data.data){
+				uni.navigateTo({
+				    url: '/pages/pages_safetyExamine/examineManage/examineAdd?subId='+id
+				});
+			}else{
+				 let id = uni.setStorageSync('saoCodeId',id);
+				 uni.redirectTo({
+					 url: '/pages/pages_safetyExamine/inforSign'
+				 })
+			}
+			
+	  	}
+	  },
+	  //根据实验室id查询隐患
+	  async checkHazardAppList2(obj){
+	  	let self = this;
+	  	const {data} = await checkHazardAppList(obj);
+	  	if(data.code==200){
+	  			if(data.data.records){
+					data.data.records.forEach(function(item){
+						item.type=false;
+					})
+					this.hiddenList=data.data.records
+	  				this.dialogVisible=true;
+	  			}else{
+	  				 let id = uni.setStorageSync('saoCodeId',id);
+	  				 uni.redirectTo({
+	  					 url: '/pages/pages_safetyExamine/inforSign'
+	  				 })
+	  			}	
+	  	}
+	  },
+	  //选择学院弹窗关闭
+	  dialogClose(){
+	     this.dialogVisible=false;
+	  },
+	  //学院选择
+	  hiddenSelete(index){
+		  let _this=this;
+	  	this.hiddenList[index].type = !this.hiddenList[index].type
+		if (_this.hiddenList[index].type == true) {
+			_this.hiddenList.forEach(function(item2) {
+			  if (item2.id == _this.hiddenList[index].id) {
+				item2.type = true
+			  } else {
+				item2.type = false
+			  }
+			})
+		}
+	  },
+	  hiddenConfirm(){
+		  let _this=this;
+		  _this.hiddenList.forEach(function(item){
+		  	if(item.type==true){
+		  		uni.redirectTo({
+		  			 url: '/pages/pages_safetyExamine/dangerManage/dangerDetail?item='+encodeURIComponent(JSON.stringify(item))
+		  		})
+		  	}
+		  })
+	  },
 	  //数据统计
 	  async dataStatistics(){
 	      let self = this;
@@ -402,6 +626,23 @@ export default {
 	  		   }
 	  	    }   
 	  },
+	  
+	  //获取用户身份标识"adminGentle": false,   管理员身份 "rectifyGentle": false,   整改身份"applyGentle": false    检查者身份
+	  async getGentleIdentifier(){
+	      let self = this;
+	      const {data} = await getGentleIdentifier();
+	      if(data.code==200){
+	  		   if(data.data.rectifyGentle){//整改者
+				   self.pageType==2
+			   }else if(data.data.applyGentle){//检查者
+				   self.pageType==1
+			   }else if(data.data.adminGentle){//管理员
+				   self.pageType==0
+			   }else{
+				   self.pageType==0
+			   }	 
+	  	  }
+	  },
 	  //检查计划各检查状态数据数量
 	  async getCheckStatusCount(){
 	      let self = this;
@@ -411,6 +652,17 @@ export default {
 			  this.tabText[1].num=data.data.start;
 	  	  }
 	  },
+	  //检查各检查状态数据数量
+	  async getManageStatusCount(){
+	      let self = this;
+	      const {data} = await getManageStatusCount();
+	      if(data.code==200){
+	  			  this.tabTextTow[0].num=data.data.noCheck;
+	  			  this.tabTextTow[1].num=data.data.checking;
+	  			  this.tabTextTow[2].num=data.data.applyNum;
+	  	  }
+	  },
+	  
 	  //管理员
 	  async getList(){
 	      let self = this;
@@ -429,23 +681,72 @@ export default {
 	  		data.data.records.forEach(function(item){
 	  			item.notStarted=self.compareTime(item.cycleStartTime)
 	  		})
-	  		this.dataList2=[...this.dataList,...data.data.records]
+	  		this.dataList2=[...this.dataList2,...data.data.records]
 	  		this.total2=data.data.total;
+			console.log(this.dataList2)
 	  	}
 	  },
 	  //待复核列表
-	  async checkHazardList(){
+	  async checkHazardAppList(){
 	  	let self = this;
-	  	const {data} = await checkHazardList(this.getData2);
+		let obj={};
+		if(this.pageType==1){//检查者
+			 obj={
+				pageNum:this.getData2.pageNum,
+				pageSize:this.getData2.pageSize,
+				hazardType:'',
+				rectifyStatus:'3',
+			};
+		}else if(this.pageType==2){//整改者
+			 obj={
+				pageNum:this.getData3.pageNum,
+				pageSize:this.getData3.pageSize,
+				hazardType:'',
+				rectifyStatus:'2',
+			};
+		}
+	  	const {data} = await checkHazardAppList(obj);
 	  	if(data.code==200){
-	  		//判断计划是否开始
-	  		data.data.records.forEach(function(item){
-	  			item.notStarted=self.compareTime(item.cycleStartTime)
-	  		})
-	  		this.dataList2=[...this.dataList,...data.data.records]
-	  		this.total2=data.data.total;
+	  		
+			if(self.pageType==1){//检查者
+				this.dataList2=[...this.dataList2,...data.data.records]
+				this.total2=data.data.total;
+			}else if(self.pageType==2){
+				this.dataList3=[...this.dataList3,...data.data.records]
+				this.total3=data.data.total;
+				this.tabTextThree[0].num=data.data.total;
+			}
+	  	}
+	  },
+	  
+	  //随手拍待整改
+	  async checkClapList(){
+	  	let self = this;
+		let obj={
+			pageNum:this.getData3.pageNum,
+			pageSize:this.getData3.pageSize,
+			rectifyStatus:0,
+		};
+	  	const {data} = await checkClapList(obj);
+	  	if(data.code==200){
+	  		this.dataList3=[...this.dataList3,...data.data.records]
+	  		this.total3=data.data.total;
+	  	}
+	  },
+	  //随手拍待整改总数
+	  async checkClapListAllNum(){
+	  	let self = this;
+	  		let obj={
+	  			pageNum:this.getData3.pageNum,
+	  			pageSize:this.getData3.pageSize,
+	  			rectifyStatus:0,
+	  		};
+	  	const {data} = await checkClapList(obj);
+	  	if(data.code==200){
+	  		this.tabTextThree[1].num=data.data.total;
 	  	}
 	  },
+	  
   }
 }
 </script>
@@ -475,6 +776,10 @@ export default {
 		color: #FA8E1B;
 		border: 1rpx solid #FA8E1B;
 	}
+	.gray_color{
+		color: #A2A2A2;
+		border: 1rpx solid #A2A2A2;
+	}
 	
 	.statistics{
 		background: #fff;
@@ -926,7 +1231,6 @@ export default {
 				left: 0;
 				width: 690rpx;
 				height: 168rpx;
-				border-bottom: 1rpx solid #E0E0E0;
 				padding-left: 30rpx;
 				box-sizing: border-box;
 				.list_tow_li_m_t{
@@ -936,6 +1240,9 @@ export default {
 					color: #666666;
 					line-height: 40rpx;
 					margin-top:22rpx;
+					overflow: hidden;
+					text-overflow:ellipsis;
+					white-space: nowrap;
 				}
 				.list_tow_li_m_b{
 					margin-top:26rpx;
@@ -1304,6 +1611,9 @@ export default {
 					color: #666666;
 					line-height: 40rpx;
 					margin-top:22rpx;
+					overflow: hidden;
+					text-overflow:ellipsis;
+					white-space: nowrap;
 				}
 				.list_three_li_m_b{
 					margin-top:26rpx;
@@ -1316,7 +1626,7 @@ export default {
 						padding: 0 20rpx;
 						margin-right: 14rpx;
 					}
-					>text:nth-of-type(2){
+					.type{
 						font-size: 26rpx;
 						font-family: PingFang SC-Medium, PingFang SC;
 						font-weight: 400;
@@ -1327,9 +1637,9 @@ export default {
 						background: rgba(1,131,250,0.1);
 						margin-right: 24rpx;
 					}
-					>text:nth-of-type(3){
+					.college{
 						display: inline-block;
-						width: 380rpx;
+						width: 280rpx;
 						font-size: 26rpx;
 						font-family: PingFang SC-Medium, PingFang SC;
 						font-weight: 400;
@@ -1359,6 +1669,44 @@ export default {
 					
 				}
 			}
+			.list_three_li_b2{
+				height: 76rpx;
+				width: 100%;
+				position: absolute;
+				top: 258rpx;
+				left: 0;
+				padding:0 30rpx;
+				box-sizing: border-box;
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				.list_three_li_b_l{
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					
+					>img{
+						width: 28rpx;
+						height: 30rpx;
+						margin-right: 14rpx;
+					}
+					>text{
+						font-size: 28rpx;
+						font-family: PingFang SC-Medium, PingFang SC;
+						font-weight: 400;
+						color: #666666;
+						line-height: 76rpx;
+					}
+				}
+				.list_three_li_b_r{
+					font-size: 24rpx;
+					font-family: PingFang SC-Medium, PingFang SC;
+					font-weight: 400;
+					color: #999999;
+					line-height: 76rpx;
+				}
+			}
+			
 		}
 	}
 	.bottom_btn{
@@ -1384,5 +1732,85 @@ export default {
 		width: 130rpx;
 		height: 130rpx;
 	}
+	/* 根据实验室id查询隐患列表 */
+	.shade {
+	  height: 100%;
+	  width: 100%;
+	  position: fixed;
+	  display: flex;
+	  flex-direction: column;
+	  z-index: 100;
+	  background: rgba(0, 0, 0, 0.2);
+	  .null-box {
+		flex: 1;
+	  }
+	  .shade_n {
+		  position: absolute;
+		  bottom: 0;
+		  left: 0;
+		  width: 750rpx;
+		  height: 560rpx;
+		  background: #FFFFFF;
+		  border-radius: 20rpx 20rpx 0rpx 0rpx;
+		  .shade_n_title{
+			  height: 100rpx;
+			  padding: 0 30rpx;
+			  box-sizing: border-box;
+			  display: flex;
+			  justify-content:space-between;
+			  border-bottom: 1rpx solid #E0E0E0;
+			  >text:nth-of-type(1){
+				  font-size: 30rpx;
+				  font-family: PingFang SC-Medium, PingFang SC;
+				  font-weight: 400;
+				  color: #333333;
+				  line-height: 100rpx;
+			  }
+			  >text:nth-of-type(2){
+				  font-size: 30rpx;
+				  font-family: PingFang SC-Medium, PingFang SC;
+				  font-weight: 400;
+				  color: #0183FA;
+				  line-height: 100rpx;
+				  
+			  }
+		  }
+		  .shade_n_b{
+			  height: 460rpx;
+			  padding: 0 30rpx;
+			  box-sizing: border-box;
+			  overflow-y: auto;
+			  .shade_n_b_li{
+				   display: flex;
+				   justify-content:space-between;
+				   align-items: center;
+				   height: 80rpx;
+				   border-bottom: 1rpx solid #E0E0E0;
+				 >text{
+					font-size: 28rpx;
+					font-family: PingFang SC-Medium, PingFang SC;
+					font-weight: 400;
+					line-height: 80rpx;
+					overflow: hidden;
+					text-overflow:ellipsis;
+					white-space: nowrap;
+				 }
+				 >img{
+					 width: 24rpx;
+					 height: 16rpx;
+					 margin-right: 14rpx;
+				 } 
+			  }
+			  .color_A{
+				  color: #333333;
+			  }
+			  .color_B{
+				  color: #0183FA;
+			  }
+			  
+			 
+		  }
+	  }
+	}
 }
 </style>