heyang 6 months ago
parent
commit
1161e785d2

+ 2 - 2
api/request/config.js

@@ -21,9 +21,9 @@ const config = {
 	// base_url: 'https://lab.zjznai.com/kdwclabSystem/', //矿大文昌地址
     //base_url: 'https://znyj.zjznai.suda.edu.cn/labSystem/', //苏大临时地址
 	// base_url: 'https://labcontrol.nwafu.edu.cn/api/', //西北农林
-	// base_url: 'https://labcontrol.nwafu.edu.cn/api/', //西北农林
+	 base_url: 'https://labcontrol.nwafu.edu.cn/api/', //西北农林
 	// base_url: 'http://172.16.0.65/api/', //西北农林
-	base_url: 'https://lab.zjznai.com/labapp/', //43测试
+	//base_url: 'https://lab.zjznai.com/labapp/', //43测试
 }
 export {
 	config

+ 5 - 3
pages_manage/views/laboratory/safetyCardScan.vue

@@ -93,7 +93,7 @@
 		<view class="position-button-box" v-if="pageType == 0">
 			<img class="position-button-p-1" @click="goPage('securityCheck',true)"
 				src="@/pages_safetyCheck/images/icon_aqjc_anquanjiancha.png">
-			<img class="position-button-p-2" @click="goPage('snapshot')"
+			<img class="position-button-p-2" @click="goPage('snapshot','')"
 				src="@/pages_safetyCheck/images/icon_aqjc_suishoupai.png">
 		</view>
 		<!-- 安全检查 -->
@@ -174,6 +174,7 @@
 				broadcastPage: false,
 				broadcastPage: false,
 				securityCheck:false,
+				form:{},
 			}
 		},
 		// 父页面
@@ -203,7 +204,7 @@
 
 		},
 		onShow() {
-
+			this.$set(this,'securityCheck',false)
 		},
 		mounted() {
 
@@ -293,7 +294,8 @@
 						this.$set(this, "securityCheck", false)
 					}
 				} else if (type == 'snapshot') {
-					
+					console.log(111)
+					console.log(this.newData)
 					this.$set(this.form, "subId", this.newData.subId)
 					this.$set(this.form, "subName", this.newData.subName)
 					this.$set(this.form, "subRoom", this.newData.roomNum)

+ 12 - 2
pages_manage/views/laboratory/scanCodeCheck.vue

@@ -61,6 +61,13 @@
 			
 		},
 		mounted() {
+			if(uni.getStorageSync('identityData')){
+				if(uni.getStorageSync('identityData').type=='collegeAdmin'){
+					this.queryParams.checkCategory=2
+				}else if(uni.getStorageSync('identityData').type=='schoolAdmin'){
+					this.queryParams.checkCategory=1
+				}
+			}
 			this.$set(this, 'newData', this.subjectData);
 			console.log(this.subjectData)
 			this.$set(this.queryParams, 'subId', this.subjectData.subId);
@@ -97,6 +104,7 @@
 						self.securityAppCheckManageList(planSetId)
 					} else if (row.checkPlanSetVoList.length == 0) {
 						this.dialogStatus = 0;
+						this.$parent.goPage('securityCheck',false);
 						uni.showToast({
 							title: '该实验室暂无检查计划!',
 							icon: "none",
@@ -158,6 +166,7 @@
 							}
 						} else if (data.data.records[0].checkPlanSetVoList.length == 0) {
 							this.dialogStatus = 0;
+							this.$parent.goPage('securityCheck',false);
 							uni.showToast({
 								title: '该实验室暂无检查计划!',
 								icon: "none",
@@ -174,6 +183,7 @@
 			
 					} else if (data.data.records.length==0) {
 						this.dialogStatus = 0;
+						this.$parent.goPage('securityCheck',false);
 						uni.showToast({
 							title: '该实验室暂无检查计划!',
 							icon: "none",
@@ -287,12 +297,12 @@
 						self.dialogStatus = 0;
 						this.$parent.goPage('securityCheck',false);
 						uni.showToast({
-							title: '该实验室暂无检查!',
+							title: '该实验室暂无检查工作!',
 							icon: "none",
 							mask: true,
 							duration: 2000
 						});
-						return
+						return;
 					}
 				}
 			},

+ 24 - 10
pages_safetyCheck/component/checkItemModule.vue

@@ -94,17 +94,17 @@
 			</view>
 			<view class="input-for-max-box">
 				<view class="for-box" v-for="(item,index) in dataList" :key="index" v-if="optionData.infoType==0">
-					<view class="for-box-n">
+					<view class="for-box-n" v-html="brightenKeyword(item.hazardCheckCode1,item.hazardCheckName1,searchValue)">
 						{{item.hazardCheckCode1}}{{item.hazardCheckName1}}
 					</view>
-					<view class="for-box-n">
+					<view class="for-box-n" v-html="brightenKeyword(item.hazardCheckCode2,item.hazardCheckName2,searchValue)">
 						{{item.hazardCheckCode2}}{{item.hazardCheckName2}}
 					</view>
-					<view class="for-box-n">
+					<view class="for-box-n" v-html="brightenKeyword(item.hazardCheckCode,item.hazardCheckName,searchValue)">
 						{{item.hazardCheckCode}}{{item.hazardCheckName}}
 					</view>
 					<view class="for-box-n" @click="checkItemButton(item,item2)"
-						v-for="(item2,index2) in item.hazardCheckPointList" v-html="brightenKeyword(item2,searchValue)">
+						v-for="(item2,index2) in item.hazardCheckPointList" v-html="brightenKeyword('',item2,searchValue)">
 						{{item2}}
 					</view>
 				</view>
@@ -124,12 +124,17 @@
 				<view v-if="levelListThree" @click="cascadeButton(3)">三级检查</view>
 			</view>
 			<view class="check-for-max-box">
-				<view v-for="(item,index) in checkList" :key="index" @click="cascadeItemButton(item)">
+				<view v-if="!levelListThree" v-for="(item,index) in checkList" :key="index" @click="cascadeItemButton(item,item2)">
 					<view>{{item.hazardCheckCode?item.hazardCheckCode:item.code}}
 						{{item.hazardCheckName?item.hazardCheckName:item.name}}
 					</view>
-					<view v-if="levelListThree">
-						{{item.hazardCheckPoint}}
+				</view>
+				<view v-for="(item,index) in checkList" :key="index" v-if="levelListThree">
+					<view>{{item.hazardCheckCode?item.hazardCheckCode:item.code}}
+						{{item.hazardCheckName?item.hazardCheckName:item.name}}
+					</view>
+					<view  v-for="(item2,index2) in item.hazardCheckPointList" @click="checkItemButton(item,item2)">
+						{{item2}}
 					</view>
 				</view>
 
@@ -175,7 +180,6 @@
 		},
 		mounted() {
 			this.$set(this, 'optionData', JSON.parse(JSON.stringify(this.propsData)));
-			console.log('optionData', this.optionData)
 			this.$nextTick(() => {
 				this.securityCheckOptionSelAllList();
 			})
@@ -233,6 +237,13 @@
 					this.$set(this, 'checkList', item.children);
 				} else if (item.level == 2) {
 					this.$set(this, 'levelListThree', item);
+					if (item.children[0]) {
+						item.children.forEach(function(item) {
+							if (item.hazardCheckPoint) {
+								item.hazardCheckPointList = item.hazardCheckPoint.split('#')
+							}
+						})
+					}
 					this.$set(this, 'checkList', item.children);
 				} else if (item.level == 3) {
 					this.checkItemButton(item, item2);
@@ -244,10 +255,10 @@
 				this.$parent.checkItemModuleButton('submit', item, item2);
 			},
 			//高亮
-			brightenKeyword(val, editKeyword) {
+			brightenKeyword(code,val, editKeyword) {
 				const Reg = new RegExp(editKeyword);
 				if (val) {
-					const res = val.replace(Reg, `<span style="color: #0183FA;">${editKeyword }</span>`);
+					const res = code+ val.replace(Reg, `<span style="color: #0183FA;">${editKeyword }</span>`);
 					return res;
 				}
 			},
@@ -334,6 +345,7 @@
 				if (data.code == 200) {
 					//级联数据
 					if (maxList) {
+						
 						let minList = JSON.parse(JSON.stringify(data.data.records))
 						this.cascadeData(maxList, minList);
 					}
@@ -365,6 +377,8 @@
 					})));
 					this.$set(this, 'checkList', JSON.parse(JSON.stringify(list)));
 				})
+				
+				
 			},
 			/********************** 检查项格式处理 **********************/
 			getCascaderData(list, type) {

+ 26 - 2
pages_safetyCheck/views/inspectManage/conductInspections.vue

@@ -83,6 +83,7 @@
 			<img @click="selectImage()" src="@/pages_safetyCheck/images/icon_aqjc_paizhao.png" />
 			<img @click="submitForm(2)" src="@/pages_safetyCheck/images/icon_aqjc_tijiao.png" />
 		</view>
+		<view v-if="!checkItemModuleType" class="inspectRecord"  @click="inspectRecordClick()">检查记录</view>
 	</view>
 
 </template>
@@ -163,6 +164,16 @@
 				
 				this.newData.inspectDot = !this.newData.inspectDot
 			},
+			//检查记录
+			inspectRecordClick(){
+				let infoData = this.optionData;
+				infoData.curTabTow=1;//已检查
+				uni.navigateTo({
+					url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
+						encodeURIComponent(JSON
+							.stringify(infoData))
+				});
+			},
 			//获取提交详情
 			async securityAppCheckPlanCheckInfo() {
 				let obj = {
@@ -175,7 +186,6 @@
 				if (data.code == 200) {
 					data.data.inspectDot = true;
 					this.$set(this, 'newData', data.data);
-					console.log(data.data.hazardCheckPoin)
 					//编辑的时候
 					this.$set(this.form, 'checkFlag', data.data.checkFlag ? data.data.checkFlag : false);
 					if(data.data.hazardDescribe){
@@ -196,7 +206,7 @@
 					infoData.subName=this.newData.subName;
 					infoData.roomNum=this.newData.roomNum;
 					infoData.hiddenDangerRecordStatus = true;//判断是否跳转隐患列表
-					uni.redirectTo({
+					uni.navigateTo({
 						url: '/pages_safetyCheck/views/inspectManage/hiddenDangerRecord?infoData=' +
 							encodeURIComponent(JSON.stringify(infoData))
 					});
@@ -870,4 +880,18 @@
 			height: 160rpx;
 		}
 	}
+	.inspectRecord{
+		position: fixed;
+		top: 118rpx;
+		right: 0;
+		z-index: 200;
+		width: 160rpx;
+		height: 60rpx;
+		background: #0183FA;
+		border-radius: 50rpx 0rpx 0rpx 50rpx;
+		font-size: 30rpx;
+		color: #FFFFFF;
+		line-height: 60rpx;
+		text-align: center;
+	}
 </style>

+ 2 - 0
pages_safetyCheck/views/inspectManage/hiddenDangerRecord.vue

@@ -92,6 +92,8 @@
 					//检查时间
 					infoData.checkPlanSetVoList.planId=row.planId;
 					infoData.checkPlanSetVoList.planSetId=row.planSetId;
+					infoData.manageId=row.manageId;
+					infoData.setOptionId=row.setOptionId;
 					infoData.subId=row.subId;
 					infoData.hazardCheckPro=row.hazardCheckPro;
 					uni.navigateTo({

+ 213 - 274
pages_safetyCheck/views/inspectManage/inspectList.vue

@@ -24,10 +24,10 @@
 					<view class="level-li"
 						:style="levelId==item.levelId?'border:1rpx solid '+item.levelColor+';background:'+item.levelColorTow+';':'levelColor-B'"
 						@click="levelClick(item.levelId)" v-for="(item,index) in levelList">{{item.levelName}}</view>
-					<view class="level-r" v-if="pageType == 0">
-						<view :class="manageStatus == 1 ?'level-r-B':'level-r-A'" @click="checkFlagChange(1)">未完成</view>
-						<view :class="manageStatus == 0 ?'level-r-B':'level-r-A'" @click="checkFlagChange(0)">已完成</view>
-					</view>	
+					<view class="level-r" v-if="tabIndexTow == 0">
+						<view :class="manageStatus == 0 ?'level-r-B':'level-r-A'" @click="checkFlagChange(0)">未完成</view>
+						<view :class="manageStatus == 2 ?'level-r-B':'level-r-A'" @click="checkFlagChange(2)">已完成</view>
+					</view>
 				</view>
 				<view class="srearch">
 					<view class="srearch-n" @click="srearchClick()">
@@ -39,31 +39,40 @@
 				</view>
 
 			</view>
-			<view class="hidden">
-				<view class="lab-info" @click="listClick(item)" v-for="(item,index) in dataList">
-					<img v-if="pageType!=0" class="lab-info-l" src="@/pages_safetyCheck/images/icon_aqjc_shiyanshi.png">
-					<view :class="item.manageStatus==2?'finished':'notFinished'" v-if="pageType==0">
-						{{item.manageStatus==2?'已完成':'未完成'}}</view>
-					<view class="lab-info-c">
-						<view class="lab-info-c-t">
-							<view class="lab-info-c-t-l">{{item.subName}}</view>
-							<view class="lab-info-c-t-r"
-								:style="'border:1rpx solid '+item.classLevelColor+';background:'+item.classLevelColorTow+';'">
-								<text
-									:style="'border-right:1rpx solid '+item.classLevelColor+';color:'+item.classLevelColor+';'">{{item.classLevelName?item.classLevelName:''}}</text>
-								<text
-									:style="'color:'+item.classLevelColor+';'">{{item.classTypeNames?item.classTypeNames:''}}</text>
-							</view>
+			<view class="list">
+				<view class="list-li" @click="listClick(item)" v-for="(item,index) in dataList">
+					<view class="list-li-t">
+						<img class="list-li-t-l" src="@/pages_safetyCheck/images/icon_aqjc_shiyanshi.png">
+						<view class="list-li-t-c">{{item.subName}}</view>
+						<view class="list-li-t-r"
+							:style="'border:1rpx solid '+item.classLevelColor+';background:'+item.classLevelColorTow+';'">
+							<text
+								:style="'border-right:1rpx solid '+item.classLevelColor+';color:'+item.classLevelColor+';'">{{item.classLevelName?item.classLevelName:''}}</text>
+							<text
+								:style="'color:'+item.classLevelColor+';'">{{item.classTypeNames?item.classTypeNames:''}}</text>
 						</view>
-						<view class="lab-info-c-b">
-							<text>{{tabIndexTow==0?(item.roomNum?item.roomNum:'-'):(item.subRoom?item.subRoom:'-')}}房间&{{item.buildName}}</text>
-							<text>{{item.deptName}}</text>
+					</view>
+					<view class="list-li-b">
+						<view class="list-li-b-t">
+							<img src="@/pages/images/icon_sy_zc@1x.png">
+							{{tabIndexTow==0?(item.roomNum?item.roomNum:'-'):(item.subRoom?item.subRoom:'-')}}房间&{{item.buildName}}
+						</view>
+						<view class="list-li-b-b">
+							<view class="list-li-b-b-l">
+								<img src="@/pages/images/icon_sy_zc@1x.png">
+								{{item.deptName}}
+							</view>
+							<view :class="item.manageStatus==2?'finished':'notFinished'" v-if="tabIndexTow==0">
+								{{item.manageStatus==2?'已完成':'未完成'}}
+							</view>
 						</view>
 					</view>
+
 				</view>
 				<view class="get-data-null-p" v-if="getDataType">- 没有更多数据 -</view>
 			</view>
-			<img class="saoCode" @click="saoCode()" src="@/pages_safetyCheck/images/icon_aqjc_saoma.png">
+			<img v-if="tabIndexTow==0" class="saoCode" @click="saoCode()"
+				src="@/pages_safetyCheck/images/icon_aqjc_saoma.png">
 		</scroll-view>
 	</view>
 </template>
@@ -128,7 +137,6 @@
 		},
 		onLoad(option) {
 			let optionData = JSON.parse(decodeURIComponent(option.infoData))
-			console.log(optionData)
 			uni.setNavigationBarTitle({
 				title: optionData.checkPlanSetVoList.checkName
 			})
@@ -204,14 +212,10 @@
 			},
 			//实验室搜索框跳转
 			srearchClick() {
-				let infoData = {};
+				let infoData = this.optionData;
 				infoData.pageType = this.tabIndexTow;
 				infoData.laboratoryStatus = this.tabIndexTow;
-				infoData.planTitle = this.optionData.planTitle;
-				infoData.checkCategory = this.optionData.checkCategory;
-				infoData.checkTypeName = this.optionData.checkTypeName;
-				infoData.crossCheck = this.optionData.crossCheck;
-				infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
+				infoData.tabIndexTow = this.tabIndexTow;
 				uni.navigateTo({
 					url: '/pages_safetyCheck/views/snapshotManage/laboratorySearch?form=' + encodeURIComponent(
 						JSON.stringify(infoData))
@@ -262,30 +266,7 @@
 					}
 				}
 			},
-			/******调用摄像头******/
-			saoCode() {
-				let self = this;
-				uni.scanCode({
-					onlyFromCamera: true,
-					success: function(res) {
-						let list = res.result.split("?")[1].split("&");
-						let codeData = {};
-						list.forEach((item) => {
-							codeData[item.split("=")[0]] = item.split("=")[1];
-						})
-						if (codeData.code) {
-							self.saoList(codeData.subId);
-						} else {
-							uni.showToast({
-								title: '请扫描正确的二维码',
-								icon: "none",
-								mask: true,
-								duration: 2000
-							});
-						}
-					}
-				});
-			},
+
 			//查询检查项
 			async securityAppCheckSetOptionList(item) {
 				let self = this;
@@ -329,6 +310,30 @@
 					}
 				}
 			},
+			/******调用摄像头******/
+			saoCode() {
+				let self = this;
+				uni.scanCode({
+					onlyFromCamera: true,
+					success: function(res) {
+						let list = res.result.split("?")[1].split("&");
+						let codeData = {};
+						list.forEach((item) => {
+							codeData[item.split("=")[0]] = item.split("=")[1];
+						})
+						if (codeData.code) {
+							self.saoList(codeData.subId);
+						} else {
+							uni.showToast({
+								title: '请扫描正确的二维码',
+								icon: "none",
+								mask: true,
+								duration: 2000
+							});
+						}
+					}
+				});
+			},
 			//扫一扫查询数据
 			async saoList(subId) {
 				let obj = {
@@ -342,7 +347,7 @@
 					} = await securityAppCheckManageList(obj);
 					if (data.code == 200) {
 						if (data.data.records[0]) {
-							this.securityAppCheckSetOptionList(data.data.records[0])
+							this.securityAppCheckSetOptionListTow(data.data.records[0], 0)
 							//跳转检查项列表页面
 							/* let infoData = data.data.records[0];
 							infoData.pageType = this.tabIndexTow;
@@ -419,6 +424,46 @@
 					}
 				}
 			},
+			async securityAppCheckSetOptionListTow(item, checkStatus) {
+				let self = this;
+				let upData = item;
+				let obj = {
+					page: 1,
+					pageSize: 20,
+					checkStatus: checkStatus,
+					manageId: upData.manageId,
+				}
+				this.inspectRemporaryList = [];
+				const {
+					data
+				} = await securityAppCheckSetOptionList(obj);
+				if (data.code == 200 && checkStatus == 0) { //先查询待检查数据
+					if (data.data.records[0]) {
+						let infoData = self.optionData;
+						infoData.pageType = 0;
+						infoData.subName = upData.subName;
+						infoData.roomNum = upData.roomNum;
+						infoData.subId = data.data.records[0].subId;
+						infoData.manageId = data.data.records[0].manageId;
+						infoData.setOptionId = data.data.records[0].setOptionId;
+						infoData.hazardCheckPro = data.data.records[0].hazardCheckPro;
+						infoData.checkCategory = data.data.records[0].checkCategory;
+						uni.navigateTo({
+							url: '/pages_safetyCheck/views/inspectManage/conductInspections?infoData=' +
+								encodeURIComponent(
+									JSON
+									.stringify(infoData))
+						});
+					} else {
+						uni.showToast({
+							title: '该实验室暂无检查工作!',
+							icon: "none",
+							mask: true,
+							duration: 2000
+						});
+					}
+				}
+			},
 			//学院选择
 			deptChange(e) {
 				let self = this;
@@ -479,12 +524,17 @@
 			//检查任务
 			async getList() {
 				let self = this;
+
 				let obj = JSON.parse(JSON.stringify(this.queryParams));
 				obj.planSetId = this.planSetId;
 				obj.deptId = this.deptData.id ? this.deptData.id : '';
 				obj.searchValue = this.searchValue ? this.searchValue : '';
 				obj.levelId = this.levelId ? this.levelId : '';
-				obj.manageStatus = this.manageStatus ? this.manageStatus : '';
+				if (this.manageStatus == 0 || this.manageStatus == 2) {
+					obj.manageStatus = this.manageStatus;
+				} else {
+					obj.manageStatus = '';
+				}
 				if (this.tabIndexTow == 0) {
 					//检查计划
 					const {
@@ -794,12 +844,13 @@
 				line-height: 50rpx;
 				text-align: center;
 			}
+
 			.level-r {
 				display: flex;
 				justify-content: flex-start;
 				align-items: center;
 				margin: 0 20rpx 0 30rpx;
-			
+
 				.level-r-A {
 					border-radius: 50rpx 50rpx 50rpx 50rpx;
 					border: 1rpx solid #E0E0E0;
@@ -813,7 +864,7 @@
 					text-align: center;
 					margin-right: 10rpx;
 				}
-			
+
 				.level-r-B {
 					border-radius: 50rpx 50rpx 50rpx 50rpx;
 					border: 1rpx solid #0183FA;
@@ -844,259 +895,147 @@
 		}
 
 		.list {
-			width: 690rpx;
-			min-height: 765rpx;
-			background: #FFFFFF;
-			border-radius: 20rpx 20rpx 20rpx 20rpx;
-			margin: 20rpx 0 0 30rpx;
+			width: 750rpx;
+			padding: 0 30rpx;
+			box-sizing: border-box;
 
 			.list-li {
-				display: flex;
-				justify-content: space-between;
-				border-bottom: 1rpx solid #E0E0E0;
-				padding: 0 22rpx 0 28rpx;
+				width: 690rpx;
+				min-height: 240rpx;
+				background: #FFFFFF;
+				border-radius: 10rpx 10rpx 10rpx 10rpx;
+				padding: 0 30rpx;
 				box-sizing: border-box;
+				margin-top: 20rpx;
 
-				>view:nth-of-type(1) {
-					font-size: 30rpx;
-					color: #333333;
-					line-height: 80rpx;
-					text-align: left;
-				}
-
-				>view:nth-of-type(2) {
-					font-size: 28rpx;
-					color: #666666;
-					line-height: 80rpx;
-					text-align: left;
+				.list-li-t {
 					display: flex;
 					justify-content: flex-start;
 					align-items: center;
+					height: 90rpx;
+					border-bottom: 2rpx dashed #D8D8D8;
 
-					>img {
-						width: 24rpx;
-						height: 24rpx;
-						margin-left: 8rpx;
-					}
-				}
-
-				.project_r {
-					width: 510rpx;
-					min-height: 80rpx;
-					display: flex;
-					justify-content: flex-end;
-					align-items: center;
-					padding-left: 20rpx;
-					box-sizing: border-box;
-					color: #666;
-				}
-
-			}
-
-			.describe {
-				width: 636rpx;
-				height: 120rpx;
-				border-radius: 10rpx 10rpx 10rpx 10rpx;
-				border: 2rpx solid #E0E0E0;
-				margin: 20rpx 0 0 28rpx;
-				padding: 12rpx 16rpx;
-				box-sizing: border-box;
-			}
-
-			.check-for-img-max-box {
-				margin: 20px 28rpx;
-
-				.left-title-p {
-					width: 100%;
-					text-align: left;
-					font-size: 30rpx;
-					font-family: PingFang SC-Medium, PingFang SC;
-					font-weight: 400;
-					color: #333333;
-					line-height: 80rpx;
-				}
-
-				.right-img-box {
-					.img-box {
-						display inline-block;
-						height: 150rpx;
-						width: 150rpx;
-						position relative;
-						margin: 0 14rpx 20rpx 0;
-						border-radius 10rpx;
-						overflow hidden;
-
-						.img-data {
-							height: 150rpx;
-							width: 150rpx;
-						}
-
-						.position-img {
-							position absolute;
-							right: 0;
-							top: 0;
-							width: 36rpx;
-							height: 36rpx;
-						}
+					.list-li-t-l {
+						width: 40rpx;
+						height: 40rpx;
+						margin-right: 16rpx;
 					}
 
-					.img-box:nth-of-type(3n+3) {
-						margin-right: 0rpx;
+					.list-li-t-c {
+						width: 264rpx;
+						font-size: 30rpx;
+						color: #333333;
+						line-height: 30rpx;
+						text-align: left;
+						overflow: hidden;
+						text-overflow: ellipsis;
+						white-space: nowrap;
+						margin-right: 24rpx;
 					}
 
-					.add-button {
-						margin: 0 0rpx 20rpx 0;
-						border-radius 10rpx;
-						overflow hidden;
-						display inline-block;
-						height: 150rpx;
-						width: 150rpx;
+					.list-li-t-r {
+						display: flex;
+						justify-content: flex-start;
+						border-radius: 10rpx 10rpx 10rpx 10rpx;
+						width: 200rpx;
+						height: 40rpx;
+						margin-left: 10rpx;
+
+						>text {
+							display: inline-block;
+							flex: 1;
+							text-align: center;
+							font-size: 24rpx;
+							line-height: 40rpx;
+							text-align: center;
+							overflow: hidden;
+							text-overflow: ellipsis;
+							white-space: nowrap;
+						}
 					}
 				}
-			}
-		}
-
-		/* 隐患整改 */
-		.hidden {
-			box-sizing: border-box;
-			margin: 20rpx 0;
 
-			.hidden-li:nth-child(1) {
-				border-top: none;
-			}
-
-			.lab-info {
-				background: #FFFFFF;
-				display: flex;
-				justify-content: space-between;
-				border: 2rpx dashed #D8D8D8;
+				.list-li-b {
+					overflow: hidden;
 
-				.lab-info-l {
-					width: 80rpx;
-					height: 80rpx;
-					background: #0183FA;
-					border-radius: 10rpx 10rpx 10rpx 10rpx;
-					margin-left: 30rpx;
-					margin-top: 30rpx;
-					margin-bottom: 42rpx;
-				}
+					.list-li-b-t {
+						display: flex;
+						justify-content: flex-start;
+						align-items: center;
 
-				.finished {
-					width: 90rpx;
-					height: 90rpx;
-					background: #0183FA;
-					border-radius: 100rpx 100rpx 100rpx 100rpx;
-					font-size: 24rpx;
-					color: #FFFFFF;
-					line-height: 90rpx;
-					text-align: center;
-					margin-left: 30rpx;
-					margin-top: 30rpx;
-					margin-bottom: 32rpx;
-				}
+						>img {
+							width: 28rpx;
+							height: 26rpx;
+							margin-right: 16rpx;
+						}
 
-				.notFinished {
-					width: 90rpx;
-					height: 90rpx;
-					background: #E0E0E0;
-					border-radius: 100rpx 100rpx 100rpx 100rpx;
-					font-size: 24rpx;
-					color: #999999;
-					line-height: 90rpx;
-					text-align: center;
-					margin-left: 30rpx;
-					margin-top: 30rpx;
-					margin-bottom: 32rpx;
-				}
+						font-size: 28rpx;
+						color: #666666;
+						line-height: 30rpx;
+						text-align: left;
+						margin-top: 32rpx;
+						overflow: hidden;
+						text-overflow: ellipsis;
+						white-space: nowrap;
 
-				.lab-info-c {
-					margin: 24rpx 30rpx 0 20rpx;
-					flex: 1;
+					}
 
-					.lab-info-c-t {
+					.list-li-b-b {
 						display: flex;
 						justify-content: space-between;
+						align-items: center;
+						margin-top: 20rpx;
 
-						.lab-info-c-t-l {
-							font-size: 30rpx;
-							color: #333333;
-							line-height: 42rpx;
-							text-align: left;
-							overflow: hidden;
-							text-overflow: ellipsis;
-							white-space: nowrap;
-						}
-
-						.lab-info-c-t-r {
+						.list-li-b-b-l {
 							display: flex;
 							justify-content: flex-start;
-							border-radius: 10rpx 10rpx 10rpx 10rpx;
-							width: 180rpx;
-							height: 40rpx;
-							margin-left: 10rpx;
-
-							>text {
-								display: inline-block;
-								flex: 1;
-								text-align: center;
-								font-size: 24rpx;
-								line-height: 40rpx;
-								text-align: center;
+							align-items: center;
+
+							>img {
+								width: 28rpx;
+								height: 26rpx;
+								margin-right: 16rpx;
 							}
-						}
-					}
 
-					.lab-info-c-b {
-						margin-top: 16rpx;
-						display: flex;
-						justify-content: space-between;
-						>text{
+							font-size: 28rpx;
+							color: #666666;
+							line-height: 30rpx;
+							text-align: left;
 							overflow: hidden;
 							text-overflow: ellipsis;
 							white-space: nowrap;
 						}
-						>text:nth-of-type(1) {
-							font-size: 30rpx;
-							color: #666666;
-							line-height: 30rpx;
-							text-align: left;
+
+						.finished {
+							width: 110rpx;
+							height: 40rpx;
+							background: rgba(1, 131, 250, 0.2);
+							border-radius: 20rpx 20rpx 20rpx 20rpx;
+							font-size: 24rpx;
+							color: #0183FA;
+							line-height: 40rpx;
+							text-align: center;
 						}
 
-						>text:nth-of-type(2) {
-							font-size: 30rpx;
+						.notFinished {
+							width: 110rpx;
+							height: 40rpx;
+							background: #E0E0E0;
+							border-radius: 20rpx 20rpx 20rpx 20rpx;
+							font-size: 24rpx;
 							color: #666666;
-							line-height: 30rpx;
-							text-align: left;
+							line-height: 40rpx;
+							text-align: center;
 						}
 					}
 				}
 			}
+		}
 
-			.lab-info:last-of-type {
-				border: none;
-			}
-
-			.get-data-p {
-				height: 100rpx;
-				text-align: center;
-
-				.get-data-img {
-					width: 30rpx;
-					height: 30rpx;
-					margin: 0 auto;
-					margin-top: 15rpx;
-				}
-
-				.get-data-text {
-					text-align: center;
-				}
-			}
-
-			.get-data-null-p {
-				height: 100rpx;
-				line-height: 100rpx;
-				text-align: center;
-			}
+		.get-data-null-p {
+			height: 100rpx;
+			line-height: 100rpx;
+			text-align: center;
 		}
 
 		#color-A {
@@ -1115,8 +1054,8 @@
 			position: fixed;
 			left: 288rpx;
 			bottom: 20rpx;
-			width: 130rpx;
-			height: 130rpx;
+			width: 160rpx;
+			height: 160rpx;
 		}
 	}
 </style>

+ 250 - 56
pages_safetyCheck/views/itemsManage/hiddenDangerItems.vue

@@ -4,7 +4,7 @@
 		<view class="header">
 			<view class="lotName" :class="pageType != 0?'lotNameOne':''" v-if="lotName">{{lotName}}</view>
 			<view class="line"></view>
-			<view class="tabTitle_tow">
+			<view class="tabTitle_tow" :style="pageType==0?'width:320rpx;':'width:520rpx;'">
 				<view class="tabTitle_tow_li" @tap="tabClickTow(item.value)" :key="index"
 					v-for="(item,index) in tabTextTow">
 					<view :class="{on:curTabTow==item.value}" class="tabTitle_tow_text">{{item.label}}</view>
@@ -15,7 +15,7 @@
 			<view class="search">
 				<view class="search-r search-r-margin" @click="checkItemModuleButton('open')">
 					<img src="@/pages_safetyCheck/images/icon_aqjc_ss.png">
-					{{newData.hazardCheckCode?newData.hazardCheckCode:''}}{{newData.hazardCheckName?newData.hazardCheckName:'搜索检查项'}}
+					搜索检查项
 				</view>
 			</view>
 			<view class="line"></view>
@@ -71,7 +71,14 @@
 			<view class="get-data-null-p" v-if="getDataType">- 没有更多数据 -</view>
 		</scroll-view>
 		<checkItemModule :propsData="propsData" v-if="checkItemModuleType"></checkItemModule>
-		<view class="sub-btn" @click="submitBtn(1)" v-if="pageType==0 && inspectRemporary">开展检查</view>
+		<!-- 	<view class="sub-btn" @click="submitBtn(1)" v-if="pageType==0 && inspectRemporary">开展检查</view> -->
+
+		<view class="subBtn">
+			<img @click="saoCode()" v-if="pageType==0" src="@/pages_safetyCheck/images/icon_aqjc_saoma.png">
+			<img @click="submitBtn(1)" v-if="pageType==0 && inspectRemporary" style="margin-left: 184rpx;"
+				src="@/pages_safetyCheck/images/icon_aqjc_jiancha.png" />
+		</view>
+
 	</view>
 
 </template>
@@ -85,6 +92,9 @@
 		securityAppCheckDangerReviewList,
 		securityAppCheckDangerGetCheckDangerSubId,
 		securityAppCheckSetOptionFinishCheck,
+		securityAppCheckDangerGetCheckDangerSubList,
+		securityAppCheckDangerReviewSubList,
+		securityAppCheckManageList,
 	} from '@/pages_safetyCheck/api/index.js'
 	import {
 		checkItemModule
@@ -104,7 +114,7 @@
 					imgDtoList: [],
 				},
 				lotName: null,
-				newData: {
+				optionData: {
 
 				},
 				dialogVisible: false,
@@ -122,8 +132,9 @@
 				//检查项组件数据
 				checkItemModuleType: false,
 				propsData: {},
-				inspectRemporary: false, //待检查和检查中数据状态
-				inspectRemporaryList: [], //待检查和检查中数据状态
+				inspectRemporary: false, //待检查
+				inspectRemporaryList: [], //待检查
+				optionData: {},
 			}
 		},
 		onLoad(option) {
@@ -141,14 +152,19 @@
 					optionData.checkPlanSetVoList.overdueUnrectify ? '整改期限' + optionData.checkPlanSetVoList
 					.rectifyDeadline +
 					'(逾期未完成整改关闭实验室)' : '整改期限' + optionData.checkPlanSetVoList.rectifyDeadline));
+
+
 			this.$set(this, 'tabTextTow',
-				optionData.pageType == 0 ? [{
+				optionData.pageType == 0 ? (optionData.manageStatus == 2 ? [{
+					value: '1',
+					label: '已检查'
+				}] : [{
 					value: '0',
 					label: '待检查'
 				}, {
 					value: '1',
 					label: '已检查'
-				}] : (
+				}]) : (
 					optionData.pageType == 1 ? [{
 						value: '0',
 						label: '待复查'
@@ -170,9 +186,18 @@
 							label: '暂无法整改'
 						}] : []
 					)))
-			this.$set(this, 'curTabTow', optionData.pageType == 0 ? '0' : (optionData.pageType == 1 ? '0' : (optionData
-				.pageType == 2 ? '2' : '')));
-			this.$set(this, 'newData', optionData);
+			if (optionData.pageType == 0) {
+				if (optionData.manageStatus == 2) {
+					this.$set(this, 'curTabTow', '1');
+				} else {
+					this.$set(this, 'curTabTow', optionData.pageType == 0 ? (optionData.curTabTow == 1 ? '1' : '0') : (
+						optionData
+						.pageType == 1 ? '0' : (optionData
+							.pageType == 2 ? '2' : '')));
+				}
+			}
+
+			this.$set(this, 'optionData', optionData);
 			this.$nextTick(() => {
 				this.getList()
 			})
@@ -181,8 +206,12 @@
 
 		},
 		mounted() {
-			if (this.pageType == 0) {
-				this.securityAppCheckSetOptionList(this.newData, 0)
+			if (this.optionData.pageType == 0) {
+				if (this.optionData.manageStatus == 2) {
+					this.securityAppCheckSetOptionList(this.optionData, 1)
+				} else {
+					this.securityAppCheckSetOptionList(this.optionData, 0)
+				}
 			}
 		},
 		methods: {
@@ -200,6 +229,7 @@
 			},
 			//顶部tab点击
 			tabClickTow(value) {
+				console.log(this.curTabTow)
 				this.$set(this, 'checkFlag', null);
 				this.$set(this.queryParams, 'page', 1);
 				this.$set(this, 'curTabTow', value);
@@ -233,12 +263,15 @@
 					}
 					if (this.pageType == 0) {
 						//检查
-						obj.manageId = this.newData.manageId
+						obj.manageId = this.optionData.manageId
+						if (this.optionData.manageStatus == 2) {
+							obj.checkType = 1
+						}
 					} else if (this.pageType != 0) {
 						//复查/整改
-						obj.planId = this.newData.checkPlanSetVoList.planId;
-						obj.planSetId = this.newData.checkPlanSetVoList.planSetId;
-						obj.subId = this.newData.subId;
+						obj.planId = this.optionData.checkPlanSetVoList.planId;
+						obj.planSetId = this.optionData.checkPlanSetVoList.planSetId;
+						obj.subId = this.optionData.subId;
 					}
 					this.$set(this, 'propsData', obj);
 					this.$set(this, 'checkItemModuleType', true);
@@ -249,16 +282,132 @@
 					this.itemsClick(item);
 				}
 			},
+			/******调用摄像头******/
+			saoCode() {
+				let self = this;
+				uni.scanCode({
+					onlyFromCamera: true,
+					success: function(res) {
+						let list = res.result.split("?")[1].split("&");
+						let codeData = {};
+						list.forEach((item) => {
+							codeData[item.split("=")[0]] = item.split("=")[1];
+						})
+						if (codeData.code) {
+
+							self.saoList(codeData.subId);
+						} else {
+							uni.showToast({
+								title: '请扫描正确的二维码',
+								icon: "none",
+								mask: true,
+								duration: 2000
+							});
+						}
+					}
+				});
+			},
+			//扫一扫查询数据
+			async saoList(subId) {
+				let obj = {
+					planSetId: this.optionData.checkPlanSetVoList.planSetId,
+					subId: subId,
+				}
+				if (this.pageType == 0) {
+					//检查计划
+					const {
+						data
+					} = await securityAppCheckManageList(obj);
+					if (data.code == 200) {
+						if (data.data.records[0]) {
+							this.securityAppCheckSetOptionListTow(data.data.records[0], 0)
+							//跳转检查项列表页面
+							/* let infoData = data.data.records[0];
+							infoData.pageType = this.tabIndexTow;
+							infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
+							uni.navigateTo({
+								url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
+									encodeURIComponent(
+										JSON.stringify(infoData))
+							}); */
+						} else {
+							//未找到数据提示
+							uni.showToast({
+								title: '未找到该实验室与本计划批次关联的数据',
+								icon: "none",
+								mask: true,
+								duration: 2000
+							});
+						}
+					}
+				} else if (this.pageType == 1) {
+					//复查计划
+					obj.planId = this.optionData.checkPlanSetVoList.planId;
+					obj.userId = uni.getStorageSync('userId');
+					const {
+						data
+					} = await securityAppCheckDangerReviewSubList(obj);
+					if (data.code == 200) {
+						if (data.data[0] && data.data[0].stayExamineCheckNum != 0) {
+							//跳转检查项列表页面
+							let infoData = data.data[0];
+							infoData.pageType = this.pageType;
+							infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
+							uni.navigateTo({
+								url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
+									encodeURIComponent(
+										JSON.stringify(infoData))
+							});
+						} else {
+							//未找到数据提示
+							uni.showToast({
+								title: '未找到该实验室与本计划批次关联的数据',
+								icon: "none",
+								mask: true,
+								duration: 2000
+							});
+						}
+					}
+				} else if (this.pageType == 2) {
+					//整改计划
+					obj.planId = this.optionData.checkPlanSetVoList.planId;
+					obj.userId = uni.getStorageSync('userId');
+					const {
+						data
+					} = await securityAppCheckDangerGetCheckDangerSubList(obj);
+					if (data.code == 200) {
+						if (data.data[0]) {
+							//跳转检查项列表页面
+							let infoData = data.data[0];
+							infoData.pageType = this.tabIndexTow;
+							infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
+							uni.navigateTo({
+								url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
+									encodeURIComponent(
+										JSON.stringify(infoData))
+							});
+						} else {
+							//未找到数据提示
+							uni.showToast({
+								title: '未找到该实验室与本计划批次关联的数据',
+								icon: "none",
+								mask: true,
+								duration: 2000
+							});
+						}
+					}
+				}
+			},
 			//检查项选中
 			itemsClick(row) {
-				let infoData = this.newData;
+				let infoData = this.optionData;
 				infoData.pageType = this.pageType;
 				infoData.checkDraftVo = row.checkDraftVo;
 				infoData.itemsStatus = this.curTabTow;
 				infoData.setOptionId = row.setOptionId;
 				infoData.hazardCheckPro = row.hazardCheckPro;
-				/* infoData.checkCategory = this.newData.checkCategory;
-				infoData.checkPlanSetVoList = this.newData.checkPlanSetVoList; */
+				/* infoData.checkCategory = this.optionData.checkCategory;
+				infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList; */
 				if (this.pageType == 0 && this.curTabTow == 0) {
 					//待检查
 					uni.redirectTo({
@@ -275,25 +424,7 @@
 							encodeURIComponent(JSON
 								.stringify(infoData))
 					});
-				}
-				/* 
-								if (this.pageType == 0 && this.curTabTow == 2) {
-									//检查中
-									uni.redirectTo({
-										url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItemsDetail?infoData=' +
-											encodeURIComponent(JSON
-												.stringify(infoData))
-									});
-								}
-								if (this.pageType == 0 && this.curTabTow == 1) {
-									//已检查
-									uni.redirectTo({
-										url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItemsDetail?infoData=' +
-											encodeURIComponent(JSON
-												.stringify(infoData))
-									});
-								} */
-				else if (this.pageType == 1 && this.curTabTow == 0) {
+				} else if (this.pageType == 1 && this.curTabTow == 0) {
 					//待复查
 					uni.redirectTo({
 						url: '/pages_safetyCheck/views/itemsManage/hiddenDangerRectification?infoData=' +
@@ -339,7 +470,7 @@
 
 			},
 			hiddenDangerClick(row) {
-				let infoData = this.newData;
+				let infoData = this.optionData;
 				infoData.hazardCheckPro = row.hazardCheckPro;
 				infoData.pageType = this.pageType;
 				infoData.itemsStatus = this.curTabTow;
@@ -356,9 +487,15 @@
 				let obj = JSON.parse(JSON.stringify(this.queryParams))
 				if (this.pageType == 0) {
 					//检查任务
-					obj.manageId = this.newData.manageId;
-					obj.checkStatus = this.curTabTow;
+					obj.manageId = this.optionData.manageId;
 					obj.checkFlag = this.checkFlag;
+					if (this.optionData.pageType == 0) {
+						if (this.optionData.manageStatus == 2) {
+							obj.checkStatus = 1
+						} else {
+							obj.checkStatus = this.curTabTow;
+						}
+					}
 					const {
 						data
 					} = await securityAppCheckSetOptionList(obj);
@@ -376,12 +513,13 @@
 								this.$set(this, 'getDataType', true);
 							}
 						}
+
 					}
 				} else if (this.pageType == 1) {
 					//复查验证
-					obj.planId = this.newData.checkPlanSetVoList.planId;
-					obj.planSetId = this.newData.checkPlanSetVoList.planSetId;
-					obj.subId = this.newData.subId;
+					obj.planId = this.optionData.checkPlanSetVoList.planId;
+					obj.planSetId = this.optionData.checkPlanSetVoList.planSetId;
+					obj.subId = this.optionData.subId;
 					obj.appReviewStatus = this.curTabTow;
 					obj.pageFlag = true;
 					const {
@@ -404,9 +542,9 @@
 					}
 				} else if (this.pageType == 2) {
 					//隐患整改
-					obj.planId = this.newData.checkPlanSetVoList.planId;
-					obj.planSetId = this.newData.checkPlanSetVoList.planSetId;
-					obj.subId = this.newData.subId;
+					obj.planId = this.optionData.checkPlanSetVoList.planId;
+					obj.planSetId = this.optionData.checkPlanSetVoList.planSetId;
+					obj.subId = this.optionData.subId;
 					obj.rectifyStatus = this.curTabTow;
 					obj.pageFlag = true;
 					const {
@@ -429,7 +567,7 @@
 					}
 				}
 			},
-			//查询检查项
+			//查询当前实验室检查项
 			async securityAppCheckSetOptionList(item, checkStatus) {
 				let self = this;
 				let upData = item;
@@ -447,8 +585,49 @@
 					if (data.data.records[0]) {
 						self.inspectRemporary = true;
 						this.inspectRemporaryList = JSON.parse(JSON.stringify(data.data.records))
-					} 
-				} 
+					}
+				}
+			},
+			//查询扫码进入的实验室检查项
+			async securityAppCheckSetOptionListTow(item, checkStatus) {
+				let self = this;
+				let upData = item;
+				let obj = {
+					page: 1,
+					pageSize: 20,
+					checkStatus: checkStatus,
+					manageId: upData.manageId,
+				}
+				this.inspectRemporaryList = [];
+				const {
+					data
+				} = await securityAppCheckSetOptionList(obj);
+				if (data.code == 200 && checkStatus == 0) { //先查询待检查数据
+					if (data.data.records[0]) {
+						let infoData = self.optionData;
+						infoData.pageType = 0;
+						infoData.subName = upData.subName;
+						infoData.roomNum = upData.roomNum;
+						infoData.subId = data.data.records[0].subId;
+						infoData.manageId = data.data.records[0].manageId;
+						infoData.setOptionId = data.data.records[0].setOptionId;
+						infoData.hazardCheckPro = data.data.records[0].hazardCheckPro;
+						infoData.checkCategory = data.data.records[0].checkCategory;
+						uni.navigateTo({
+							url: '/pages_safetyCheck/views/inspectManage/conductInspections?infoData=' +
+								encodeURIComponent(
+									JSON
+									.stringify(infoData))
+						});
+					} else {
+						uni.showToast({
+							title: '该实验室暂无检查工作!',
+							icon: "none",
+							mask: true,
+							duration: 2000
+						});
+					}
+				}
 			},
 			//检查完成
 			async submitBtn(status) {
@@ -457,11 +636,11 @@
 					let infoData = this.inspectRemporaryList[0];
 					infoData.pageType = this.pageType;
 					infoData.itemsStatus = this.curTabTow;
-					infoData.checkCategory = this.newData.checkCategory;
-					infoData.checkPlanSetVoList = this.newData.checkPlanSetVoList;
-					infoData.subName = this.newData.subName;
-					infoData.roomNum = this.newData.roomNum;
-					infoData.subRoom = this.newData.subRoom;
+					infoData.checkCategory = this.optionData.checkCategory;
+					infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
+					infoData.subName = this.optionData.subName;
+					infoData.roomNum = this.optionData.roomNum;
+					infoData.subRoom = this.optionData.subRoom;
 					uni.redirectTo({
 						url: '/pages_safetyCheck/views/inspectManage/conductInspections?infoData=' +
 							encodeURIComponent(
@@ -742,6 +921,21 @@
 			text-align: center;
 		}
 
+		.subBtn {
+			display: flex;
+			justify-content: center;
+			position: fixed;
+			bottom: 30rpx;
+			width: 750rpx;
+			padding: 0 46rpx;
+			box-sizing: border-box;
+
+			>img {
+				width: 160rpx;
+				height: 160rpx;
+			}
+		}
+
 		.sub-btn {
 			display: flex;
 			justify-content: center;

+ 299 - 125
pages_safetyCheck/views/itemsManage/hiddenDangerItemsDetail.vue

@@ -11,7 +11,7 @@
 						{{newData.roomNum?newData.roomNum:''}}房间&{{newData.buildName?newData.buildName:'楼栋'}}&{{newData.deptName?newData.deptName:'学院单位'}}
 					</view>
 				</view>
-				
+
 				<view v-if="newData.checkCollapse">
 					<view class="list-li">
 						<view>现场照片</view>
@@ -19,7 +19,7 @@
 					<view v-if="pageType==0" class="photo" @click="lockImg(newData.photoList)">
 						<img v-for="(item,index) in newData.photoList" :src="baseUrl+item.fileUrl">
 					</view>
-					<view class="list-li"  style="border-bottom: none;">
+					<view class="list-li" style="border-bottom: none;">
 						<view> {{newData.hazardCheckCode?newData.hazardCheckCode:''}}
 							{{newData.hazardCheckName?newData.hazardCheckName:'检查项'}}
 						</view>
@@ -46,19 +46,6 @@
 						<view>检查时间</view>
 						<view>{{newData.checkTime}}</view>
 					</view>
-					<view class="voice">
-						<view class="voice_t">
-							<view class="voice_t_t" v-if="!newData.voiceList[0]"><text>语音备注:</text><text></text></view>
-							<view class="voice_t_b" v-if="newData.voiceList[0]">语音备注:({{newData.voiceList.length}})</view>
-						</view>
-						<view class="voice_b" v-if="newData.voiceList[0]" v-for="(voiceItem,voiceIndex) in newData.voiceList"
-							:key="voiceIndex">
-							<view class="voice_b_l" @tap="voicePlay(voiceItem.fileUrl)">
-								<img class="add-button" src="@/pages_safetyCheck/images//icon_yybz_yy.png" />
-								{{voiceItem.fileLength}}″
-							</view>
-						</view>
-					</view>
 				</view>
 				<view v-if="pageType==1 || pageType==2" v-for="(item,index) in newData.checkRectifyVoList" :key="index">
 					<view class="list-li" v-if="item.rectifyTime" @click="rectifyCollapse(item)">
@@ -73,11 +60,11 @@
 						<view v-if="item.rectifyMeasure" class="hidden">
 							<view class="hidden-content">{{item.rectifyMeasure}}</view>
 						</view>
-						<view class="photo"  @click="lockImg(item.rectifyUploadList)">
+						<view class="photo" @click="lockImg(item.rectifyUploadList)">
 							<img v-for="(item2,index2) in item.rectifyUploadList" :src="baseUrl+item2.fileUrl">
 						</view>
 						<view class="list-li">
-							<view>姓名:</view>
+							<view>整改者:</view>
 							<view>{{item.rectifyName}}</view>
 						</view>
 						<view class="list-li">
@@ -94,16 +81,16 @@
 						</view>
 					</view>
 					<view v-if="item.reviewCollapse && item.reviewTime">
-						<view v-if="item.examineOpinion"  class="hidden">
+						<view v-if="item.examineOpinion" class="hidden">
 							<view class="hidden">
 								<view class="hidden-content">{{item.examineOpinion}}</view>
 							</view>
 						</view>
-						<view class="photo"  @click="lockImg(item.examineUploadList)">
+						<view class="photo" @click="lockImg(item.examineUploadList)">
 							<img v-for="(item3,index3) in item.examineUploadList" :src="baseUrl+item3.fileUrl">
 						</view>
 						<view class="list-li">
-							<view>姓名:</view>
+							<view>复查者:</view>
 							<view>{{item.reviewName}}</view>
 						</view>
 						<view class="list-li">
@@ -112,22 +99,40 @@
 						</view>
 					</view>
 				</view>
+				<view class="voice">
+					<view class="voice_t">
+						<view class="voice_t_t" v-if="!newData.voiceList[0]"><text>语音备注:</text><text></text></view>
+						<view class="voice_t_b" v-if="newData.voiceList[0]">语音备注:({{newData.voiceList.length}})
+						</view>
+					</view>
+					<view class="voice_b" v-if="newData.voiceList[0]"
+						v-for="(voiceItem,voiceIndex) in newData.voiceList" :key="voiceIndex">
+						<view class="voice_b_l" @tap="voicePlay(voiceItem.fileUrl)">
+							<img class="add-button" src="@/pages_safetyCheck/images//icon_yybz_yy.png" />
+							{{voiceItem.fileLength}}″
+						</view>
+					</view>
+				</view>
 			</view>
 		</scroll-view>
-		<view class="subBtn" v-if="pageType==0 && newData.checkSetProgress !=100 && !hiddenDangerRecordStatus">
-			<img @click="submitBtn(1)" src="@/pages_safetyCheck/images/icon_aqjc_bianji.png" />
-			<img @click="submitBtn(2)" src="@/pages_safetyCheck/images/icon_aqjc_jiancha.png" />
-		</view>
-		<!-- <view class="sub-btn" v-if="pageType==0 && newData.checkSetProgress !=100 && !hiddenDangerRecordStatus">
-			<view @click="submitBtn(1)">编辑</view>
-			<view @click="submitBtn(2)">继续检查</view>
-		</view> -->
-		<view class="sub-btn-tow" v-if="pageType==1 && !hiddenDangerRecordStatus" @click="submitBtn(2)">继续复查</view>
-		<view class="sub-btn" v-if="pageType==2 && !hiddenDangerRecordStatus && !newData.finishRectify">
-			<view @click="submitBtn(1)">编辑</view>
-			<view @click="submitBtn(2)">继续整改</view>
+		<view class="subBtn">
+			<!-- 检查 -->
+			<img @click="saoCode()" v-if="pageType==0" src="@/pages_safetyCheck/images/icon_aqjc_saoma.png">
+			<img @click="submitBtn(1)" v-if="pageType==0 && newData.checkSetProgress !=100 && !hiddenDangerRecordStatus"
+				style="margin-left: 60rpx;" src="@/pages_safetyCheck/images/icon_aqjc_bianji.png" />
+			<img @click="submitBtn(2)" v-if="pageType==0 && newData.checkSetProgress !=100" style="margin-left: 60rpx;" 
+				src="@/pages_safetyCheck/images/icon_aqjc_jiancha.png" />
+			<!-- 整改 -->	
+			<img @click="submitBtn(1)" v-if="pageType==2 && !hiddenDangerRecordStatus && !newData.finishRectify"
+				src="@/pages_safetyCheck/images/icon_aqjc_bianji.png" />
+			<img @click="submitBtn(2)" v-if="pageType==2 && !hiddenDangerRecordStatus && !newData.finishRectify"
+				src="@/pages_safetyCheck/images/icon_aqjc_zhenggai.png" />		
+			<!-- 复查 -->	
+			<img @click="submitBtn(2)" v-if="pageType==1 && !hiddenDangerRecordStatus"
+				src="@/pages_safetyCheck/images/icon_aqjc_fucha.png" />	
 		</view>
-		<view v-if="pageType==0 && newData.checkSetProgress ==100 && !hiddenDangerRecordStatus" @click="submitBtn(2)" class="sub-btn-tow">继续检查</view>
+		<view v-if="pageType==0" class="inspectRecord" @click="inspectRecordClick()">检查记录</view>
+		
 	</view>
 
 </template>
@@ -145,6 +150,9 @@
 		securityAppCheckPhotoGetCheckNumBySub,
 		securityAppCheckDangerGetCheckProDetail,
 		securityAppCheckSetOptionList,
+		securityAppCheckDangerReviewSubList,
+		securityAppCheckDangerGetCheckDangerSubList,
+		securityAppCheckManageList,
 	} from '@/pages_safetyCheck/api/index.js'
 	export default {
 		name: "snapshotDetail",
@@ -162,17 +170,17 @@
 				hazardCheckPro: '',
 				hazardCheckNum: 0,
 				pageType: 0, //0检查 1复查 2整改
-				itemsStatus:'',
-				optionData:null,
+				itemsStatus: '',
+				optionData: null,
 				lotName: null,
-				hiddenDangerRecordStatus: null,//判断是否是从隐患列表页面跳转过来
+				hiddenDangerRecordStatus: null, //判断是否是从隐患列表页面跳转过来
 
 			}
 		},
 		onLoad(option) {
 			let optionData = JSON.parse(decodeURIComponent(option.infoData));
-			console.log('详情',optionData)
-			
+			console.log('详情', optionData)
+
 			this.$set(this, 'pageType', optionData.pageType);
 			this.$set(this, 'itemsStatus', optionData.itemsStatus);
 			this.$set(this, 'setOptionId', optionData.setOptionId);
@@ -186,17 +194,17 @@
 					optionData.checkPlanSetVoList.overdueUnrectify ? '整改期限' + optionData.checkPlanSetVoList
 					.rectifyDeadline +
 					'(逾期未完成整改关闭实验室)' : '整改期限' + optionData.checkPlanSetVoList.rectifyDeadline));
-			
-			
-			
+
+
+
 		},
 		onShow() {
 
 		},
 		mounted() {
-			if(this.pageType==0){
+			if (this.pageType == 0) {
 				this.securityAppCheckPlanCheckInfo();
-			}else if(this.pageType==1 || this.pageType==2){
+			} else if (this.pageType == 1 || this.pageType == 2) {
 				//复查-整改
 				this.securityAppCheckDangerGetCheckProDetail();
 			}
@@ -205,6 +213,131 @@
 		methods: {
 			//滚动事件
 			scrollGet() {},
+			//检查记录
+			inspectRecordClick() {
+				let infoData = this.optionData;
+				infoData.curTabTow = 1; //已检查
+				uni.navigateTo({
+					url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
+						encodeURIComponent(JSON
+							.stringify(infoData))
+				});
+			},
+			/******调用摄像头******/
+			saoCode() {
+				let self = this;
+				uni.scanCode({
+					onlyFromCamera: true,
+					success: function(res) {
+						let list = res.result.split("?")[1].split("&");
+						let codeData = {};
+						list.forEach((item) => {
+							codeData[item.split("=")[0]] = item.split("=")[1];
+						})
+						if (codeData.code) {
+							self.saoList(codeData.subId);
+						} else {
+							uni.showToast({
+								title: '请扫描正确的二维码',
+								icon: "none",
+								mask: true,
+								duration: 2000
+							});
+						}
+					}
+				});
+			},
+			//扫一扫查询数据
+			async saoList(subId) {
+				let obj = {
+					planSetId: this.optionData.checkPlanSetVoList.planSetId,
+					subId: subId,
+				}
+				if (this.pageType == 0) {
+					//检查计划
+					const {
+						data
+					} = await securityAppCheckManageList(obj);
+					if (data.code == 200) {
+						if (data.data.records[0]) {
+							this.securityAppCheckSetOptionList(data.data.records[0], 0)
+							//跳转检查项列表页面
+							/* let infoData = data.data.records[0];
+							infoData.pageType = this.tabIndexTow;
+							infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
+							uni.navigateTo({
+								url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
+									encodeURIComponent(
+										JSON.stringify(infoData))
+							}); */
+						} else {
+							//未找到数据提示
+							uni.showToast({
+								title: '未找到该实验室与本计划批次关联的数据',
+								icon: "none",
+								mask: true,
+								duration: 2000
+							});
+						}
+					}
+				} else if (this.pageType == 1) {
+					//复查计划
+					obj.planId = this.optionData.checkPlanSetVoList.planId;
+					obj.userId = uni.getStorageSync('userId');
+					const {
+						data
+					} = await securityAppCheckDangerReviewSubList(obj);
+					if (data.code == 200) {
+						if (data.data[0] && data.data[0].stayExamineCheckNum != 0) {
+							//跳转检查项列表页面
+							let infoData = data.data[0];
+							infoData.pageType = this.pageType;
+							infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
+							uni.navigateTo({
+								url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
+									encodeURIComponent(
+										JSON.stringify(infoData))
+							});
+						} else {
+							//未找到数据提示
+							uni.showToast({
+								title: '未找到该实验室与本计划批次关联的数据',
+								icon: "none",
+								mask: true,
+								duration: 2000
+							});
+						}
+					}
+				} else if (this.pageType == 2) {
+					//整改计划
+					obj.planId = this.optionData.checkPlanSetVoList.planId;
+					obj.userId = uni.getStorageSync('userId');
+					const {
+						data
+					} = await securityAppCheckDangerGetCheckDangerSubList(obj);
+					if (data.code == 200) {
+						if (data.data[0]) {
+							//跳转检查项列表页面
+							let infoData = data.data[0];
+							infoData.pageType = this.pageType;
+							infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
+							uni.navigateTo({
+								url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
+									encodeURIComponent(
+										JSON.stringify(infoData))
+							});
+						} else {
+							//未找到数据提示
+							uni.showToast({
+								title: '未找到该实验室与本计划批次关联的数据',
+								icon: "none",
+								mask: true,
+								duration: 2000
+							});
+						}
+					}
+				}
+			},
 			//获取检查提交详情
 			async securityAppCheckPlanCheckInfo() {
 				let obj = {
@@ -216,14 +349,16 @@
 				} = await securityAppCheckPlanCheckInfo(obj);
 				if (data.code == 200) {
 					uni.setNavigationBarTitle({
-						title: data.data.subName + '(' + (this.pageType == 0 ? data.data.roomNum?data.data.roomNum:'-' : data.data
-							.subRoom?data.data.subRoom:'-') + ')'
+						title: data.data.subName + '(' + (this.pageType == 0 ? data.data.roomNum ? data.data
+							.roomNum : '-' : data.data
+							.subRoom ? data.data.subRoom : '-') + ')'
 					})
-					data.data.checkCollapse=true;
-					data.data.inspectDot=false;
+					data.data.checkCollapse = true;
+					data.data.inspectDot = false;
 					this.$set(this, 'newData', data.data);
 					this.$set(this.newData, 'checkTime', parseTime(data.data.checkTime, "{y}-{m}-{d}"));
-					
+					this.$set(this.newData, 'voiceList', data.data.voiceList ? data.data.voiceList : []);
+
 				}
 			},
 			//整改详情
@@ -242,21 +377,22 @@
 					uni.setNavigationBarTitle({
 						title: data.data.subName + '(' + data.data.roomNum + ')'
 					})
-					data.data.checkCollapse=false;
-					data.data.inspectDot=false;
-					data.data.checkTime= parseTime(data.data.checkTime, "{y}-{m}-{d}");
-					data.data.checkRectifyVoList.forEach(function(item,index){
-						item.rectifyTime= parseTime(item.rectifyTime, "{y}-{m}-{d}");
-						item.reviewTime= parseTime(item.reviewTime, "{y}-{m}-{d}");
-						item.rectifyCollapse=false;
-						item.reviewCollapse=false;
-						if(index==data.data.checkRectifyVoList.length-1){
-							item.rectifyCollapse=true;
-							item.reviewCollapse=true;
+					data.data.checkCollapse = false;
+					data.data.inspectDot = false;
+					data.data.checkTime = parseTime(data.data.checkTime, "{y}-{m}-{d}");
+					data.data.checkRectifyVoList.forEach(function(item, index) {
+						item.rectifyTime = parseTime(item.rectifyTime, "{y}-{m}-{d}");
+						item.reviewTime = parseTime(item.reviewTime, "{y}-{m}-{d}");
+						item.rectifyCollapse = false;
+						item.reviewCollapse = false;
+						if (index == data.data.checkRectifyVoList.length - 1) {
+							item.rectifyCollapse = true;
+							item.reviewCollapse = true;
 						}
 					})
 					this.$set(this, 'newData', data.data);
-			
+					this.$set(this.newData, 'voiceList', data.data.voiceList ? data.data.voiceList : []);
+
 				}
 			},
 			async securityAppCheckSetOptionList(item, checkStatus) {
@@ -275,9 +411,18 @@
 				if (data.code == 200 && checkStatus == 0) { //先查询待检查数据
 					if (data.data.records[0]) {
 						let infoData = self.optionData;
-						uni.redirectTo({
-							url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
-								encodeURIComponent(JSON
+						infoData.pageType = 0;
+						infoData.subName = upData.subName;
+						infoData.roomNum = upData.roomNum;
+						infoData.subId = data.data.records[0].subId;
+						infoData.manageId = data.data.records[0].manageId;
+						infoData.setOptionId = data.data.records[0].setOptionId;
+						infoData.hazardCheckPro = data.data.records[0].hazardCheckPro;
+						infoData.checkCategory = data.data.records[0].checkCategory;
+						uni.navigateTo({
+							url: '/pages_safetyCheck/views/inspectManage/conductInspections?infoData=' +
+								encodeURIComponent(
+									JSON
 									.stringify(infoData))
 						});
 					} else {
@@ -288,7 +433,7 @@
 							duration: 2000
 						});
 					}
-				} 
+				}
 			},
 			//语音备忘播放
 			async voicePlay(item) {
@@ -310,12 +455,12 @@
 				}
 			},
 			hiddenDangerClick(row) {
-				if(!this.hiddenDangerRecordStatus){
+				if (!this.hiddenDangerRecordStatus) {
 					let infoData = this.optionData;
-					infoData.subName=this.newData.subName;
-					infoData.roomNum=this.newData.roomNum;
-					infoData.hiddenDangerRecordStatus = true;//判断是否跳转隐患列表
-					uni.redirectTo({
+					infoData.subName = this.newData.subName;
+					infoData.roomNum = this.newData.roomNum;
+					infoData.hiddenDangerRecordStatus = true; //判断是否跳转隐患列表
+					uni.navigateTo({
 						url: '/pages_safetyCheck/views/inspectManage/hiddenDangerRecord?infoData=' +
 							encodeURIComponent(JSON.stringify(infoData))
 					});
@@ -325,41 +470,44 @@
 			submitBtn(status) {
 				if (status == 1) {
 					//编辑
-					if(this.pageType==0){
+					if (this.pageType == 0) {
 						//检查
 						let infoData = this.optionData;
 						infoData.editStatus = true;
 						uni.redirectTo({
-							url: '/pages_safetyCheck/views/inspectManage/conductInspections?infoData=' + encodeURIComponent(
-								JSON
-								.stringify(infoData))
+							url: '/pages_safetyCheck/views/inspectManage/conductInspections?infoData=' +
+								encodeURIComponent(
+									JSON
+									.stringify(infoData))
 						});
-					}else if(this.pageType==1){
+					} else if (this.pageType == 1) {
 						//复核
-						let infoData=this.optionData
-						infoData.editStatus=true;
+						let infoData = this.optionData
+						infoData.editStatus = true;
 						uni.redirectTo({
-							url: '/pages_safetyCheck/views/itemsManage/hiddenDangerRectification?infoData=' + encodeURIComponent(
-								JSON
-								.stringify(infoData))
+							url: '/pages_safetyCheck/views/itemsManage/hiddenDangerRectification?infoData=' +
+								encodeURIComponent(
+									JSON
+									.stringify(infoData))
 						});
-					}else if(this.pageType==2){
+					} else if (this.pageType == 2) {
 						//整改
-						let infoData=this.optionData
-						infoData.editStatus=true;
+						let infoData = this.optionData
+						infoData.editStatus = true;
 						uni.redirectTo({
-							url: '/pages_safetyCheck/views/itemsManage/hiddenDangerRectification?infoData=' + encodeURIComponent(
-								JSON
-								.stringify(infoData))
+							url: '/pages_safetyCheck/views/itemsManage/hiddenDangerRectification?infoData=' +
+								encodeURIComponent(
+									JSON
+									.stringify(infoData))
 						});
-						
+
 					}
-					
+
 				} else if (status == 2) {
 					//继续检查
-					if(this.pageType==0){
-						this.securityAppCheckSetOptionList(this.optionData,0)
-					}else{
+					if (this.pageType == 0) {
+						this.securityAppCheckSetOptionList(this.optionData, 0)
+					} else {
 						let infoData = this.optionData;
 						uni.redirectTo({
 							url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
@@ -367,7 +515,7 @@
 									.stringify(infoData))
 						});
 					}
-					
+
 				}
 			},
 			//图片预览
@@ -388,17 +536,17 @@
 				})
 			},
 			//折叠展开
-			inspectDot(){
-				this.newData.inspectDot=!this.newData.inspectDot
+			inspectDot() {
+				this.newData.inspectDot = !this.newData.inspectDot
 			},
-			checkCollapse(row){
-				this.newData.checkCollapse=!this.newData.checkCollapse
+			checkCollapse(row) {
+				this.newData.checkCollapse = !this.newData.checkCollapse
 			},
-			rectifyCollapse(row){
-				row.rectifyCollapse=!row.rectifyCollapse
+			rectifyCollapse(row) {
+				row.rectifyCollapse = !row.rectifyCollapse
 			},
-			reviewCollapse(row){
-				row.reviewCollapse=!row.reviewCollapse
+			reviewCollapse(row) {
+				row.reviewCollapse = !row.reviewCollapse
 			},
 		}
 	}
@@ -433,9 +581,10 @@
 			line-height: 80rpx;
 			text-align: center;
 		}
-		
+
 		.list {
 			width: 750rpx;
+
 			.list-li {
 				display: flex;
 				justify-content: space-between;
@@ -444,6 +593,7 @@
 				background: #FFFFFF;
 				padding: 0 30rpx;
 				box-sizing: border-box;
+
 				>view:nth-of-type(1) {
 					font-size: 30rpx;
 					color: #333333;
@@ -498,11 +648,13 @@
 					height: 30rpx;
 				}
 			}
-			.hidden{
+
+			.hidden {
 				width: 750rpx;
 				background: #fff;
 				overflow: hidden;
 				border-bottom: 2rpx solid #E0E0E0;
+
 				.hidden-content {
 					border-radius: 20rpx 20rpx 20rpx 20rpx;
 					width: 690rpx;
@@ -516,9 +668,9 @@
 					line-height: 44rpx;
 					text-align: left;
 				}
-				
+
 			}
-			
+
 			.photo {
 				display: flex;
 				justify-content: flex-start;
@@ -527,12 +679,14 @@
 				box-sizing: border-box;
 				background: #fff;
 				border-bottom: 2rpx solid #E0E0E0;
+
 				>img {
 					width: 150rpx;
 					height: 150rpx;
 					border-radius: 10rpx 10rpx 10rpx 10rpx;
 					margin: 0 10rpx 10rpx 0;
 				}
+
 				>img:nth-of-type(4) {
 					margin-right: 0;
 				}
@@ -541,7 +695,7 @@
 			/* .list-li:last-of-type {
 				border: none;
 			} */
-			.hazardCheckNum{
+			.hazardCheckNum {
 				border-bottom: 2rpx solid #E0E0E0;
 				padding: 30rpx 40rpx 34rpx 40rpx;
 				box-sizing: border-box;
@@ -549,33 +703,35 @@
 				display: flex;
 				justify-content: flex-end;
 				align-items: center;
-				.hazardCheckNum-l{
+
+				.hazardCheckNum-l {
 					width: 30rpx;
 					height: 30rpx;
 					margin-right: 18rpx;
 				}
-				.hazardCheckNum-r{
+
+				.hazardCheckNum-r {
 					font-size: 28rpx;
 					color: #FF5900;
 					line-height: 40rpx;
 					text-align: left;
 				}
-				
+
 			}
 		}
-		
+
 		.srearch {
 			display: flex;
 			justify-content: space-between;
 			align-items: center;
-		
+
 			.srearch-l {
 				font-size: 30rpx;
 				color: #333333;
 				line-height: 100rpx;
 				text-align: left;
 			}
-		
+
 			.srearch-r {
 				width: 30rpx;
 				height: 30rpx;
@@ -584,15 +740,16 @@
 		}
 
 	}
+
 	/* 语音备注 */
 	.voice {
 		width: 750rpx;
 		min-height: 100rpx;
 		background: #FFFFFF;
 		border-radius: 20rpx 20rpx 20rpx 20rpx;
-		
+
 		overflow: hidden;
-	
+
 		.voice_t {
 			height: 100rpx;
 			display: flex;
@@ -602,22 +759,25 @@
 			box-sizing: border-box;
 			border-bottom: 2rpx solid #E0E0E0;
 			margin-bottom: 40rpx;
+
 			.voice_t_t {
 				width: 100%;
 				display: flex;
 				justify-content: space-between;
+
 				>text:nth-of-type(1) {
 					font-size: 30rpx;
 					color: #333333;
 					line-height: 100rpx;
 				}
+
 				>text:nth-of-type(2) {
 					font-size: 28rpx;
 					color: #999999;
 					line-height: 100rpx;
 				}
 			}
-	
+
 			.voice_t_b {
 				width: 100%;
 				font-size: 30rpx;
@@ -626,10 +786,10 @@
 				color: #333333;
 				line-height: 100rpx;
 				text-align: left;
-				
+
 			}
 		}
-	
+
 		.voice_b {
 			display flex;
 			justify-content flex-start;
@@ -637,6 +797,7 @@
 			margin-bottom: 20rpx;
 			padding: 0 30rpx;
 			box-sizing: border-box;
+
 			.voice_b_l {
 				width: 400rpx;
 				height: 40rpx;
@@ -649,7 +810,7 @@
 				color: #FFFFFF;
 				line-height: 30rpx;
 				text-align: left;
-	
+
 				>img {
 					width: 20rpx;
 					height: 20rpx;
@@ -657,27 +818,27 @@
 					margin-right: 20rpx;
 				}
 			}
-	
+
 			.voice_b_r {
 				width: 28rpx;
 				height: 28rpx;
 				margin-left: 20rpx;
 			}
 		}
-	
+
 		.voice-btn {
 			width: 150rpx;
 			height: 150rpx;
 			position: fixed;
 			right: 24rpx;
 			bottom: 176rpx;
-	
+
 			>img {
 				width: 150rpx;
 				height: 150rpx;
 				position: absolute;
 			}
-	
+
 			>text {
 				font-size: 24rpx;
 				color: #999999;
@@ -689,7 +850,7 @@
 			}
 		}
 	}
-	
+
 	.subBtn {
 		display: flex;
 		justify-content: center;
@@ -698,15 +859,13 @@
 		width: 750rpx;
 		padding: 0 46rpx;
 		box-sizing: border-box;
-	
+
 		>img {
 			width: 160rpx;
 			height: 160rpx;
 		}
-		>img:nth-of-type(1) {
-			margin-right: 184rpx;
-		}
 	}
+
 	.sub-btn {
 		display: flex;
 		justify-content: center;
@@ -751,4 +910,19 @@
 		line-height: 100rpx;
 		text-align: center;
 	}
+
+	.inspectRecord {
+		position: fixed;
+		top: 118rpx;
+		right: 0;
+		z-index: 200;
+		width: 160rpx;
+		height: 60rpx;
+		background: #0183FA;
+		border-radius: 50rpx 0rpx 0rpx 50rpx;
+		font-size: 30rpx;
+		color: #FFFFFF;
+		line-height: 60rpx;
+		text-align: center;
+	}
 </style>

+ 117 - 1
pages_safetyCheck/views/itemsManage/hiddenDangerRectification.vue

@@ -45,6 +45,20 @@
 						<view>检查时间</view>
 						<view>{{newData.checkTime}}</view>
 					</view>
+					<view class="voice">
+						<view class="voice_t">
+							<view class="voice_t_t" v-if="!newData.voiceList[0]"><text>语音备注:</text><text></text></view>
+							<view class="voice_t_b" v-if="newData.voiceList[0]">语音备注:({{newData.voiceList.length}})
+							</view>
+						</view>
+						<view class="voice_b" v-if="newData.voiceList[0]"
+							v-for="(voiceItem,voiceIndex) in newData.voiceList" :key="voiceIndex">
+							<view class="voice_b_l" @tap="voicePlay(voiceItem.fileUrl)">
+								<img class="add-button" src="@/pages_safetyCheck/images//icon_yybz_yy.png" />
+								{{voiceItem.fileLength}}″
+							</view>
+						</view>
+					</view>
 				</view>
 				<view v-if="pageType==1 || pageType==2" v-for="(item,index) in newData.checkRectifyVoList" :key="index">
 					<view class="list-li" v-if="item.rectifyTime" @click="rectifyCollapse(item)">
@@ -142,6 +156,7 @@
 </template>
 
 <script>
+	const myaudio = uni.createInnerAudioContext();
 	import {
 		parseTime
 	} from '@/component/public.js'
@@ -193,6 +208,11 @@
 			this.securityAppCheckPhotoGetCheckNumBySub();
 		},
 		methods: {
+			//语音备忘播放
+			async voicePlay(item) {
+				myaudio.src = config.base_url + item;
+				myaudio.play();
+			},
 			//详情
 			async securityAppCheckDangerGetCheckProDetail() {
 				let self=this;
@@ -240,6 +260,7 @@
 						})
 					}
 					this.$set(this, 'newData', data.data);
+					this.$set(this.newData, 'voiceList', data.data.voiceList ? data.data.voiceList : []);
 
 				}
 			},
@@ -859,7 +880,102 @@
 		}
 
 	}
-
+	/* 语音备注 */
+	.voice {
+		width: 690rpx;
+		min-height: 100rpx;
+		background: #FFFFFF;
+		border-radius: 20rpx 20rpx 20rpx 20rpx;
+		padding: 0 30rpx;
+		box-sizing: border-box;
+		overflow: hidden;
+	
+		.voice_t {
+			height: 100rpx;
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+	
+			.voice_t_t {
+				width: 100%;
+				font-size: 30rpx;
+				font-family: PingFang SC-Medium, PingFang SC;
+				font-weight: 400;
+				color: #333333;
+				line-height: 100rpx;
+				text-align: center;
+			}
+	
+			.voice_t_b {
+				width: 100%;
+				font-size: 30rpx;
+				font-family: PingFang SC-Medium, PingFang SC;
+				font-weight: 400;
+				color: #333333;
+				line-height: 100rpx;
+				text-align: left;
+			}
+		}
+	
+		.voice_b {
+			display flex;
+			justify-content flex-start;
+			align-items center;
+			margin-bottom: 20rpx;
+	
+			.voice_b_l {
+				width: 400rpx;
+				height: 40rpx;
+				background: #0183FA;
+				border-radius: 10rpx;
+				display flex;
+				justify-content flex-start;
+				align-items center;
+				font-size: 24rpx;
+				color: #FFFFFF;
+				line-height: 30rpx;
+				text-align: left;
+	
+				>img {
+					width: 20rpx;
+					height: 20rpx;
+					margin-left: 16rpx;
+					margin-right: 20rpx;
+				}
+			}
+	
+			.voice_b_r {
+				width: 28rpx;
+				height: 28rpx;
+				margin-left: 20rpx;
+			}
+		}
+	
+		.voice-btn {
+			width: 150rpx;
+			height: 150rpx;
+			position: fixed;
+			right: 24rpx;
+			bottom: 176rpx;
+	
+			>img {
+				width: 150rpx;
+				height: 150rpx;
+				position: absolute;
+			}
+	
+			>text {
+				font-size: 24rpx;
+				color: #999999;
+				line-height: 30rpx;
+				text-align: center;
+				position: absolute;
+				top: 84rpx;
+				left: 26rpx;
+			}
+		}
+	}
+	
 	.sub-btn {
 		display: flex;
 		justify-content: center;

+ 18 - 9
pages_safetyCheck/views/planDetail.vue

@@ -5,7 +5,8 @@
 			<view class="title">
 				<view class="title-t">{{newData.planTitle}}</view>
 				<view class="title-b">
-					<view v-if="newData.checkCategory">{{newData.checkCategory==1?'校院巡查':(newData.checkCategory==2?'学院自查':'')}}
+					<view v-if="newData.checkCategory">
+						{{newData.checkCategory==1?'校院巡查':(newData.checkCategory==2?'学院自查':'')}}
 					</view>
 					<view v-if="newData.checkTypeName">{{newData.checkTypeName}}</view>
 					<view v-if="newData.crossCheck==1">交叉互检</view>
@@ -99,8 +100,9 @@
 			attachmentClick(row) {
 				let infoData = row;
 				uni.navigateTo({
-					url: '/pages_safetyCheck/views/materialAttachments?infoData=' + encodeURIComponent(JSON.stringify(
-						infoData))
+					url: '/pages_safetyCheck/views/materialAttachments?infoData=' + encodeURIComponent(JSON
+						.stringify(
+							infoData))
 				});
 			},
 			async securityAppCheckPlanFindCheckPlan() {
@@ -128,12 +130,13 @@
 		overflow: hidden;
 
 		.info-max-box {
-			padding:0 30rpx;
+			padding: 0 30rpx;
 			overflow-y: scroll;
+
 			.title {
 				width: 689rpx;
 				background: #FFFFFF;
-				border-radius:20rpx;
+				border-radius: 20rpx;
 				padding: 20rpx 30rpx;
 				box-sizing: border-box;
 
@@ -169,9 +172,11 @@
 				border-radius: 20rpx 20rpx 20rpx 20rpx;
 				margin-top: 20rpx;
 				overflow: hidden;
-				.content-li:nth-child(1){
-					border-top:none;
+
+				.content-li:nth-child(1) {
+					border-top: none;
 				}
+
 				.content-li {
 					height: 80rpx;
 					border-top: 1rpx solid #E0E0E0;
@@ -185,6 +190,7 @@
 						color: #333333;
 						line-height: 80rpx;
 						text-align: left;
+						width: 200rpx;
 					}
 
 					>view:nth-of-type(2) {
@@ -192,13 +198,16 @@
 						color: #666666;
 						line-height: 80rpx;
 						text-align: right;
+						overflow: hidden;
+						text-overflow: ellipsis;
+						white-space: nowrap;
 					}
 				}
 
 				.content-li-tow {
 					padding: 0 30rpx;
 					box-sizing: border-box;
-					margin-bottom:20rpx;
+					margin-bottom: 20rpx;
 
 					>view:nth-of-type(1) {
 						font-size: 30rpx;
@@ -341,4 +350,4 @@
 			}
 		}
 	}
-</style>
+</style>

+ 1 - 1
pages_safetyCheck/views/safetyCheck.vue

@@ -399,7 +399,7 @@
 
 				.list-li {
 					border-top: 1rpx dashed #E0E0E0;
-					height: 80rpx;
+					height: 100rpx;
 					display: flex;
 					justify-content: flex-start;
 					align-items: center;

+ 12 - 2
pages_safetyCheck/views/scanCodeCheck.vue

@@ -61,6 +61,13 @@
 			
 		},
 		mounted() {
+			if(uni.getStorageSync('identityData')){
+				if(uni.getStorageSync('identityData').type=='collegeAdmin'){
+					this.queryParams.checkCategory=2
+				}else if(uni.getStorageSync('identityData').type=='schoolAdmin'){
+					this.queryParams.checkCategory=1
+				}
+			}
 			this.$set(this, 'newData', this.subjectData);
 			console.log(this.subjectData)
 			this.$set(this.queryParams, 'subId', this.subjectData.subId);
@@ -97,6 +104,7 @@
 						self.securityAppCheckManageList(planSetId)
 					} else if (row.checkPlanSetVoList.length == 0) {
 						this.dialogStatus = 0;
+						this.$parent.goPage('securityCheck',false);
 						uni.showToast({
 							title: '该实验室暂无检查计划!',
 							icon: "none",
@@ -158,6 +166,7 @@
 							}
 						} else if (data.data.records[0].checkPlanSetVoList.length == 0) {
 							this.dialogStatus = 0;
+							this.$parent.goPage('securityCheck',false);
 							uni.showToast({
 								title: '该实验室暂无检查计划!',
 								icon: "none",
@@ -174,6 +183,7 @@
 			
 					} else if (data.data.records.length==0) {
 						this.dialogStatus = 0;
+						this.$parent.goPage('securityCheck',false);
 						uni.showToast({
 							title: '该实验室暂无检查计划!',
 							icon: "none",
@@ -287,12 +297,12 @@
 						self.dialogStatus = 0;
 						this.$parent.goPage('securityCheck',false);
 						uni.showToast({
-							title: '该实验室暂无检查!',
+							title: '该实验室暂无检查工作!',
 							icon: "none",
 							mask: true,
 							duration: 2000
 						});
-						return
+						return;
 					}
 				}
 			},

+ 173 - 15
pages_safetyCheck/views/snapshotManage/laboratorySearch.vue

@@ -16,7 +16,37 @@
 					<view class="cancel" @click="cancelBtn()">取消</view>
 				</view>
 			</view>
-			<view class="lab">
+			<view class="list">
+				<view class="list-li" @click="listClick(item)" v-for="(item,index) in dataList">
+					<view class="list-li-t">
+						<img class="list-li-t-l" src="@/pages_safetyCheck/images/icon_aqjc_shiyanshi.png">
+						<view class="list-li-t-c">{{item.subName}}</view>
+						<view class="list-li-t-r" :style="'border:1rpx solid '+item.classLevelColor+';background:'+item.classLevelColorTow+';'">
+							<text
+								:style="'border-right:1rpx solid '+item.classLevelColor+';color:'+item.classLevelColor+';'">{{item.classLevelName?item.classLevelName:''}}</text>
+							<text
+								:style="'color:'+item.classLevelColor+';'">{{item.classTypeNames?item.classTypeNames:''}}</text>
+						</view>
+					</view>
+					<view class="list-li-b">
+						<view class="list-li-b-t">
+							<img src="@/pages/images/icon_sy_zc@1x.png">
+							{{(laboratoryStatus==0 || laboratoryStatus==3)?(item.roomNum?item.roomNum:'-'):(item.subRoom?item.subRoom:'-')}}房间&{{item.buildName}}
+						</view>
+						<view class="list-li-b-b">
+							<view class="list-li-b-b-l">
+								<img src="@/pages/images/icon_sy_zc@1x.png">
+								{{item.deptName}}
+							</view>
+							<view  :class="item.manageStatus==2?'finished':'notFinished'" v-if="laboratoryStatus==0">
+								{{item.manageStatus==2?'已完成':'未完成'}}</view>
+						</view>
+					</view>
+			
+				</view>
+				<view class="get-data-null-p" v-if="getDataType">- 没有更多数据 -</view>
+			</view>
+			<!-- <view class="lab">
 				<view class="lab-info" @click="listClick(item)" v-for="(item,index) in dataList">
 					<img v-if="laboratoryStatus!=0" class="lab-info-l"
 						src="@/pages_safetyCheck/images/icon_aqjc_shiyanshi.png">
@@ -42,7 +72,8 @@
 						</view>
 					</view>
 				</view>
-			</view>
+			</view> -->
+			
 
 		</scroll-view>
 	</view>
@@ -242,6 +273,7 @@
 				} else if (this.laboratoryStatus == 1) {
 					obj.planSetId = this.form.checkPlanSetVoList.planSetId;
 					obj.planId = this.form.checkPlanSetVoList.planId;
+					obj.userId = uni.getStorageSync('userId');
 					const {
 						data
 					} = await securityAppCheckDangerReviewSubList(obj);
@@ -252,6 +284,7 @@
 				} else if (this.laboratoryStatus == 2) {
 					obj.planSetId = this.form.checkPlanSetVoList.planSetId;
 					obj.planId = this.form.checkPlanSetVoList.planId;
+					obj.userId = uni.getStorageSync('userId');
 					const {
 						data
 					} = await securityAppCheckDangerGetCheckDangerSubList(obj);
@@ -267,7 +300,10 @@
 						if (data.data.records[0]) {
 							data.data.records.forEach(function(item) {
 								if (item.levelColor) {
-									item.levelColorTow = self.hexToRgb(item.levelColor, 0.2)
+									item.classTypeNames = item.typeName
+									item.classLevelName = item.levelName
+									item.classLevelColor = item.levelColor
+									item.classLevelColorTow = self.hexToRgb(item.levelColor, 0.2)
 								}
 
 							})
@@ -379,23 +415,145 @@
 
 		.list {
 			width: 750rpx;
-			background: #FFFFFF;
-			margin-top: 110rpx;
-			padding-top: 12rpx;
+			padding: 0 30rpx;
 			box-sizing: border-box;
 			margin-top: 120rpx;
-
+		
 			.list-li {
-				min-height: 80rpx;
-				margin: 0 30rpx;
-				font-size: 29rpx;
-				color: #3D3D3D;
-				line-height: 80rpx;
-				text-align: left;
-				border-bottom: 1rpx solid #E0E0E0;
+				width: 690rpx;
+				min-height: 240rpx;
+				background: #FFFFFF;
+				border-radius: 10rpx 10rpx 10rpx 10rpx;
+				padding: 0 30rpx;
+				box-sizing: border-box;
+				margin-top: 20rpx;
+				.list-li-t {
+					display: flex;
+					justify-content: flex-start;
+					align-items: center;
+					height: 90rpx;
+					border-bottom: 2rpx dashed #D8D8D8;
+		
+					.list-li-t-l {
+						width: 40rpx;
+						height: 40rpx;
+						margin-right: 16rpx;
+					}
+		
+					.list-li-t-c {
+						width: 264rpx;
+						font-size: 30rpx;
+						color: #333333;
+						line-height: 30rpx;
+						text-align: left;
+						overflow: hidden;
+						text-overflow: ellipsis;
+						white-space: nowrap;
+						margin-right: 24rpx;
+					}
+		
+					.list-li-t-r {
+						display: flex;
+						justify-content: flex-start;
+						border-radius: 10rpx 10rpx 10rpx 10rpx;
+						width: 200rpx;
+						height: 40rpx;
+						margin-left: 10rpx;
+		
+						>text {
+							display: inline-block;
+							flex: 1;
+							text-align: center;
+							font-size: 24rpx;
+							line-height: 40rpx;
+							text-align: center;
+							overflow: hidden;
+							text-overflow: ellipsis;
+							white-space: nowrap;
+						}
+					}
+				}
+		
+				.list-li-b {
+					overflow: hidden;
+					.list-li-b-t {
+						display: flex;
+						justify-content: flex-start;
+						align-items: center;
+		
+						>img {
+							width: 28rpx;
+							height: 26rpx;
+							margin-right: 16rpx;
+						}
+		
+						font-size: 28rpx;
+						color: #666666;
+						line-height: 30rpx;
+						text-align: left;
+						margin-top: 32rpx;
+						overflow: hidden;
+						text-overflow: ellipsis;
+						white-space: nowrap;
+		
+					}
+		
+					.list-li-b-b {
+						display: flex;
+						justify-content: space-between;
+						align-items: center;
+						margin-top: 20rpx;
+		
+						.list-li-b-b-l {
+							display: flex;
+							justify-content: flex-start;
+							align-items: center;
+		
+							>img {
+								width: 28rpx;
+								height: 26rpx;
+								margin-right: 16rpx;
+							}
+		
+							font-size: 28rpx;
+							color: #666666;
+							line-height: 30rpx;
+							text-align: left;
+							overflow: hidden;
+							text-overflow: ellipsis;
+							white-space: nowrap;
+						}
+		
+						.finished {
+							width: 110rpx;
+							height: 40rpx;
+							background: rgba(1,131,250,0.2);
+							border-radius: 20rpx 20rpx 20rpx 20rpx;
+							font-size: 24rpx;
+							color: #0183FA;
+							line-height: 40rpx;
+							text-align: center;
+						}
+		
+						.notFinished {
+							width: 110rpx;
+							height: 40rpx;
+							background: #E0E0E0;
+							border-radius: 20rpx 20rpx 20rpx 20rpx;
+							font-size: 24rpx;
+							color: #666666;
+							line-height: 40rpx;
+							text-align: center;
+						}
+					}
+				}
 			}
 		}
-
+		.get-data-null-p {
+			height: 100rpx;
+			line-height: 100rpx;
+			text-align: center;
+		}
 		.lab {
 			margin-top: 120rpx;
 

+ 25 - 7
pages_safetyCheck/views/snapshotManage/snapshotList.vue

@@ -116,7 +116,7 @@
 	import {
 		config
 	} from '@/api/request/config.js'
-	import {} from '@/pages/api/index.js'
+	import {laboratoryAppletGetSubDetailInfo} from '@/pages/api/index.js'
 	import {
 		laboratorySubRelInfoGetRelList,
 		securityAppCheckPhotoMyAdd,
@@ -427,6 +427,29 @@
 
 				this.popupType = false;
 			},
+			//实验室详情
+			async laboratoryAppletGetSubDetailInfo(infoId) {
+				const {
+					data
+				} = await laboratoryAppletGetSubDetailInfo({
+					infoId: infoId
+				});
+				if (data.code == 200) {
+					this.$set(this.form, "subId", data.data.subId)
+					this.$set(this.form, "subName", data.data.subName)
+					this.$set(this.form, "subRoom", data.data.roomNum)
+					this.$set(this.form, "deptId", data.data.deptId)
+					this.$set(this.form, "deptName", data.data.deptName)
+					this.$set(this.form, "buildId", data.data.buildId)
+					this.$set(this.form, "buildName", data.data.buildName)
+					this.$set(this.form, "floorId", data.data.floorId)
+					this.$set(this.form, "floorName", data.data.floorName)
+					this.$set(this.form, "typeId", data.data.typeId)
+					this.$set(this.form, "classTypeNames", data.data.classTypeNames)
+					this.$set(this.form, "levelId", data.data.levelId)
+					this.$set(this.form, "classLevelName", data.data.classLevelName)
+				}
+			},
 			/******调用摄像头******/
 			saoCode() {
 				let self = this;
@@ -441,12 +464,7 @@
 						})
 						console.log('二维码', codeData)
 						if (codeData.code) {
-							self.$set(self.form, "subId", codeData.subId)
-							self.$set(self.form, "laboratoryStatus", 3)// 标识是从那个页面进入的实验室搜索页面
-							uni.navigateTo({
-								url: '/pages_safetyCheck/views/snapshotManage/laboratorySearch?form=' + encodeURIComponent(
-									JSON.stringify(self.form))
-							});
+							self.laboratoryAppletGetSubDetailInfo(codeData.code)
 						} else {
 							uni.showToast({
 								title: '请扫描正确的二维码',