Przeglądaj źródła

Merge branch 'VERSIONS-yinHuanQingDan2' into SCHOOL-XiBeiNongLin

dedsudiyu 4 tygodni temu
rodzic
commit
2f934899b5

+ 1 - 1
api/request/config.js

@@ -15,7 +15,7 @@ const config = {
 	// base_url: 'https://lab.zjznai.com/labNhSystem/',//43服务器高升测试
 	// base_url: 'https://lab.zjznai.com/labTest/',//1.8外网
 	// base_url: 'https://lab.zjznai.com/labapp/',//43服务器线上
-	// base_url: 'https://lab.zjznai.com/appTest/',//88服务器线上
+	base_url: 'https://lab.zjznai.com/appTest/',//88服务器线上
 	// base_url: 'https://lab.zjznai.com/labSystem/', //矿大地址
 	// base_url: 'https://lab.zjznai.com/jdlabSystem/', //交大地址
 	// base_url: 'https://lab.zjznai.com/jndxlabSystem/', //暨大地址

+ 1 - 0
pages_basics/views/photoInspection.vue

@@ -73,6 +73,7 @@
 		onLoad(option) {
 			if(option.item){
 				let obj = JSON.parse(decodeURIComponent(option.item))
+				console.log('obj',obj)
 				this.$set(this,'isotope',true);
 				this.$set(this,'subList',[obj]);
 				this.$set(this,'subListIndex','0');

+ 178 - 10
pages_manage/views/laboratory/safetyCardScan.vue

@@ -96,8 +96,6 @@
 			<img class="position-button-p-2" @click="goPage('snapshot','')"
 				:src="imagesUrl('safetyCheck/icon_aqjc_suishoupai.png')">
 		</view>
-		<!-- 安全检查 -->
-		<scanCodeCheck v-if="securityCheck" :subjectData="subjectData"></scanCodeCheck>
 		<!-- 物联控制 -->
 		<iotControl ref="iotControl" v-if="pageType == 1" :subjectData="subjectData"></iotControl>
 		<!-- 进出记录 -->
@@ -106,6 +104,25 @@
 		<voiceBroadcast v-if="broadcastPage" :subjectData="subjectData"></voiceBroadcast>
 		<!-- 空调弹窗 -->
 		<airConditioning v-if="conditioningPage" :airConditioningData="airConditioningData"></airConditioning>
+		<view class="shade-box" v-if="securityCheck">
+			<view class="null-box" @click="goPage('securityCheck',false)"></view>
+			<view class="shade_n">
+				<view class="title">
+					<view>请选择实验室</view>
+				</view>
+				<view class="batch">
+					<view class="batch-li" @click="batchClickTow(item)" v-for="(item,index) in securityCheckList">
+						<view class="batch-li-l">
+							<text>{{item.planTitle}}-{{item.checkName}}</text>
+							<text>{{item.subName}}{{item.roomNum?'('+item.roomNum+')':''}}</text>
+						</view>
+						<view class="batch-li-r">
+							<img :src="imagesUrl('commonality/icon_wd_gd@1x.png')">
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
 	</view>
 
 </template>
@@ -127,14 +144,15 @@
 		airConditioning
 	} from '@/pages_manage/views/laboratory/airConditioning.vue'
 	import {
-		scanCodeCheck
-	} from '@/pages_manage/views/laboratory/scanCodeCheck.vue'
-	import {
 		config
 	} from '@/api/request/config.js'
 	import {
 
 	} from '@/pages/api/index.js'
+	
+	import {
+		securityAppCheckPlanScanCode,
+	} from '@/pages_safetyCheck/api/index.js'
 	export default {
 		name: "safetyCardScan",
 		components: {
@@ -142,7 +160,6 @@
 			accessRecord,
 			voiceBroadcast,
 			airConditioning,
-			scanCodeCheck,
 		},
 		data() {
 			return {
@@ -177,6 +194,7 @@
 				// 空调弹窗
 				airConditioningData: null,
 				securityCheck: false,
+				securityCheckList:[],
 				form: {},
 			}
 		},
@@ -293,10 +311,10 @@
 					});
 					return
 				} else if (type == 'securityCheck') {
-					if (status) {
-						this.$set(this, "securityCheck", true)
-					} else {
-						this.$set(this, "securityCheck", false)
+					if(status){
+						this.securityAppCheckPlanScanCode(this.newData.subId,);
+					}else{
+						this.$set(this,'securityCheck',false);
 					}
 				} else if (type == 'snapshot') {
 					console.log(111)
@@ -320,6 +338,61 @@
 					});
 				}
 			},
+			//查询计划
+			async securityAppCheckPlanScanCode(subId,planSetId) {
+				let self = this;
+				let checkCategory = null;
+				if(uni.getStorageSync('identityData')){
+					if(uni.getStorageSync('identityData').type=='collegeAdmin'){
+						checkCategory=2
+					}else if(uni.getStorageSync('identityData').type=='schoolAdmin'){
+						checkCategory=1
+					}
+				}
+				let obj = {
+					subId:subId,
+					checkCategory:checkCategory,
+				};
+				if(planSetId){
+					obj.planSetId = planSetId;
+				}
+				const {
+					data
+				} = await securityAppCheckPlanScanCode(obj);
+				if (data.code == 200) {
+					if(data.data[0]){
+						if(data.data[1]){
+							//多个
+							self.$set(self,'securityCheckList',data.data);
+							self.$set(self,'securityCheck',true);
+						}else{
+							//单个
+							let infoData = data.data[0];
+							infoData.pageType = 0;
+							uni.navigateTo({
+								url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' + encodeURIComponent(
+									JSON.stringify(infoData))
+							});
+						}
+					}else{
+						//没有
+						uni.showToast({
+							title: '该实验室暂无检查计划!',
+							icon: "none",
+							mask: true,
+							duration: 2000
+						});
+					}
+				}
+			},
+			batchClickTow(row) {
+				let infoData = row;
+				infoData.pageType = 0;
+				uni.navigateTo({
+					url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' + encodeURIComponent(
+						JSON.stringify(infoData))
+				});
+			},
 		}
 	}
 </script>
@@ -756,6 +829,101 @@
 			.position-button-p-2 {}
 		}
 
+		.shade-box {
+			height: 100%;
+			width: 100%;
+			position: fixed;
+			display: flex;
+			flex-direction: column;
+			z-index: 200;
+			background: rgba(0, 0, 0, 0.2);
+			top: 0;
+		
+			.null-box {
+				flex: 1;
+			}
+		
+			.shade_n {
+				position: absolute;
+				bottom: 0;
+				left: 0;
+				width: 750rpx;
+				height: 466rpx;
+				background: #FFFFFF;
+				border-radius: 20rpx 20rpx 0rpx 0rpx;
+				overflow-y: auto;
+		
+				.title {
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					padding: 0 50rpx 0 284rpx;
+					box-sizing: border-box;
+					border-bottom: 1rpx solid #E0E0E0;
+		
+					>view {
+						font-size: 30rpx;
+						color: #3D3D3D;
+						line-height: 90rpx;
+						text-align: left;
+					}
+		
+					>img {
+						width: 24rpx;
+						height: 12rpx;
+					}
+				}
+		
+				.batch {
+					padding: 0 30rpx;
+					box-sizing: border-box;
+		
+					.batch-li {
+						display: flex;
+						justify-content: space-between;
+						align-items: center;
+						border-bottom: 1rpx solid #E0E0E0;
+						padding: 20rpx 0 16rpx 0rpx;
+						box-sizing: border-box;
+		
+						.batch-li-l {
+							>text:nth-of-type(1) {
+								display: block;
+								font-size: 30rpx;
+								color: #333333;
+								line-height: 42rpx;
+								text-align: left;
+							}
+		
+							>text:nth-of-type(2) {
+								display: block;
+								font-size: 28rpx;
+								color: #666666;
+								line-height: 39rpx;
+								text-align: left;
+								margin-top: 6rpx;
+							}
+						}
+		
+						.batch-li-r {
+							font-size: 28rpx;
+							color: #666666;
+							line-height: 39rpx;
+							text-align: left;
+							display: flex;
+							justify-content: flex-start;
+							align-items: center;
+		
+							>img {
+								width: 24rpx;
+								height: 24rpx;
+								margin-left: 9rpx;
+							}
+						}
+					}
+				}
+			}
+		}
 
 	}
 </style>

+ 24 - 0
pages_safetyCheck/api/index.js

@@ -638,4 +638,28 @@ export const subjectList = (data) => {
         method: 'GET',
         data: data
     })
+};
+//批次下-检查项
+export const securityAppCheckPlanSetGetOptionList = (data) => {
+    return apiResquest({
+        url: '/security/appCheckPlanSet/getOptionList',
+        method: 'POST',
+        data: {...data}
+    })
+};
+//安全检查-扫码实验室-查询可检查实验室列表
+export const securityAppCheckPlanScanCode = (data) => {
+    return apiResquest({
+        url: '/security/appCheckPlan/scanCode',
+        method: 'POST',
+        data: {...data}
+    })
+};
+//安全检查-查询可用楼栋楼层级联数据
+export const securityAppCheckDangerBuildAndFloorList = (data) => {
+    return apiResquest({
+        url: '/security/appCheckDanger/buildAndFloorList',
+        method: 'POST',
+        data: {...data}
+    })
 };

+ 140 - 39
pages_safetyCheck/component/checkItemModule.vue

@@ -95,29 +95,22 @@
 			</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" v-html="brightenKeyword(item.hazardCheckCode1,item.hazardCheckName1,searchValue)">
-						{{item.hazardCheckCode1}}{{item.hazardCheckName1}}
+					<view v-html="brightenKeyword(item.hazardCheckCode1,item.hazardCheckName1,searchValue)" class="for-box-n">
+						{{item.hazardCheckCode1}} {{item.hazardCheckName1}}
 					</view>
-					<view class="for-box-n" v-html="brightenKeyword(item.hazardCheckCode2,item.hazardCheckName2,searchValue)">
-						{{item.hazardCheckCode2}}{{item.hazardCheckName2}}
-					</view>
-					<view v-for="(item2,index2) in item.data">
-						<view  class="for-box-n" v-html="brightenKeyword(item2.hazardCheckCode,item2.hazardCheckName,searchValue)">
-							{{item2.hazardCheckCode}}{{item2.hazardCheckName}}
+					<view v-for="(item2,index2) in item.children">
+						<view v-html="brightenKeyword(item2.hazardCheckCode2,item2.hazardCheckName2,searchValue)" class="for-box-n">
+							{{item2.hazardCheckCode2}} {{item2.hazardCheckName2}}
 						</view>
-						<view class="for-box-n" @click="checkItemButton(item2,item3)"
-							v-for="(item3,index3) in item2.hazardCheckPointList" v-html="brightenKeyword('',item3,searchValue)">
-							{{item3}}
+						<view class="for-box-n"
+							v-for="(item3,index3) in item2.children">
+							<view v-html="brightenKeyword(item3.hazardCheckCode,item3.hazardCheckName,searchValue)">{{item3.hazardCheckCode}} {{item3.hazardCheckName}}</view>
+							<view class="for-box-n-b" @click="checkItemButton(item3,item4)"
+								v-for="(item4,index4) in item3.hazardCheckPointList">
+								<view v-html="brightenKeyword('',item4,searchValue)">{{item4}}</view>
+							</view>
 						</view>
 					</view>
-					
-				</view>
-				
-				<view class="for-box" @click="checkItemButton(item,'')" v-for="(item,index) in dataList" :key="index"
-					v-if="optionData.infoType==1 || optionData.infoType==2">
-					<view class="for-box-n">
-						{{item.hazardCheckCode}}{{item.hazardCheckName}}
-					</view>
 				</view>
 			</view>
 		</view>
@@ -129,18 +122,11 @@
 				<view v-if="levelListThree" @click="cascadeButton(3)">三级检查</view>
 			</view>
 			<view class="check-for-max-box">
-				<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>
-				<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 v-for="(item,index) in checkList" :key="index" @click="cascadeItemButton(item)">
+					<view>
+						{{item.code}} {{item.name}}
 					</view>
+					<view v-for="(minItem,minIndex) in item.hazardCheckPointList" @click="checkItemButton(item,minItem)">{{minItem}}</view>
 				</view>
 
 			</view>
@@ -155,6 +141,7 @@
 		securityAppCheckSetOptionList,
 		securityAppCheckSetOptionGetReviewList,
 		securityAppCheckDangerGetCheckDangerSubId,
+		securityAppCheckPlanSetGetOptionList,
 	} from '@/pages_safetyCheck/api/index.js'
 	export default {
 		name: "checkItemModule",
@@ -171,6 +158,8 @@
 				searchValue: "",
 				//输入搜索返回列表
 				dataList: [],
+				//当前级联数据
+				cascadeButtonType:1,
 				//一级-级联数据
 				levelListOne: null,
 				//二级-级联数据
@@ -186,7 +175,6 @@
 		},
 		mounted() {
 			this.$set(this, 'optionData', JSON.parse(JSON.stringify(this.propsData)));
-			console.log('检查项列表',this.optionData)
 			this.$nextTick(() => {
 				this.securityCheckOptionSelAllList();
 			})
@@ -199,7 +187,8 @@
 			getSearchValue() {
 				if (this.optionData.infoType == 0) {
 					//检查
-					this.securityAppCheckSetOptionList();
+					// this.securityAppCheckSetOptionList();
+					this.securityCheckOptionSelAllList();
 				} else if (this.optionData.infoType == 1) {
 					//复查
 					this.securityAppCheckSetOptionGetReviewList();
@@ -228,6 +217,7 @@
 			},
 			//级联等级点击
 			cascadeButton(type) {
+				this.$set(this,'cascadeButtonType',type);
 				if (type == 1) {
 					this.$set(this, 'levelListTwo', null);
 					this.$set(this, 'levelListThree', null);
@@ -252,9 +242,6 @@
 						})
 					}
 					this.$set(this, 'checkList', item.children);
-				} else if (item.level == 3) {
-					this.checkItemButton(item, item2);
-
 				}
 			},
 			//选中检查项
@@ -265,7 +252,7 @@
 			brightenKeyword(code,val, editKeyword) {
 				const Reg = new RegExp(editKeyword);
 				if (val) {
-					const res = code+ val.replace(Reg, `<span style="color: #0183FA;">${editKeyword }</span>`);
+					const res = code + ' ' + val.replace(Reg, `<span style="color: #0183FA;">${editKeyword }</span>`);
 					return res;
 				}
 			},
@@ -279,7 +266,8 @@
 					let maxList = this.getCascaderData(JSON.parse(JSON.stringify(data.data)), 2)
 					this.$nextTick(() => {
 						if (this.optionData.infoType == 0) {
-							this.securityAppCheckSetOptionList(maxList);
+							this.securityAppCheckPlanSetGetOptionList(maxList);
+							// this.securityAppCheckSetOptionList(maxList);
 						} else if (this.optionData.infoType == 1) {
 							this.securityAppCheckSetOptionGetReviewList(maxList);
 						} else if (this.optionData.infoType == 2) {
@@ -288,6 +276,52 @@
 					})
 				}
 			},
+			//查询批次下-检查项
+			async securityAppCheckPlanSetGetOptionList(maxList){
+				let self = this;
+				const {
+					data
+				} = await securityAppCheckPlanSetGetOptionList({
+					planSetId:this.optionData.planSetId,
+					searchValue: this.searchValue
+				});
+				if (data.code == 200) {
+					if (data.data[0]) {
+						let minList = JSON.parse(JSON.stringify(data.data))
+						this.newCascadeData(maxList, minList);
+					}else{
+						this.$set(this, 'levelListOne', JSON.parse(JSON.stringify({
+							level: 0,
+							children: []
+						})));
+						this.$set(this, 'dataList', []);
+						this.$set(this, 'checkList', []);
+						this.$set(this, 'cascadeButtonType', 1);
+						this.$set(this, 'levelListOne', null);
+						this.$set(this, 'levelListTwo', null);
+						this.$set(this, 'levelListThree', null);
+					}
+					
+					// //查询数据
+					// let map = new Map();
+					// for (let item of data.data) {
+					//     let hazardCheckCode2 = item.hazardCheckCode2;
+					//     if (!map.has(hazardCheckCode2)) {
+					//         map.set(hazardCheckCode2, {
+					//             hazardCheckCode2: hazardCheckCode2,
+					//             hazardCheckName2: item.hazardCheckName2,
+					//             hazardCheckCode1: item.hazardCheckCode1,
+					//             hazardCheckName1: item.hazardCheckName1,
+					//             data: [item]
+					//         });
+					//     } else {
+					//         map.get(hazardCheckCode2).data.push(item);
+					//     }
+					// }
+					// let finalResult = Array.from(map.values());
+					// this.$set(this, 'dataList', finalResult);
+				}
+			},
 			/********************** 检查相关查询 **********************/
 			async securityAppCheckSetOptionList(maxList) {
 				let self = this;
@@ -337,8 +371,6 @@
 					
 				}
 			},
-			
-			
 			/********************** 复查相关查询 **********************/
 			async securityAppCheckSetOptionGetReviewList(maxList) {
 				let self = this;
@@ -407,10 +439,72 @@
 						children: list
 					})));
 					this.$set(this, 'checkList', JSON.parse(JSON.stringify(list)));
+					this.$set(this, 'cascadeButtonType', 1);
+					this.$set(this, 'levelListTwo', null);
+					this.$set(this, 'levelListThree', null);
 				})
 				
 				
 			},
+			newCascadeData(maxList, minList) {
+				for (let i = 0; i < maxList.length; i++) {
+					for (let o = 0; o < maxList[i].children.length; o++) {
+						for (let x = 0; x < minList.length; x++) {
+							if (maxList[i].children[o].id == minList[x].parentId) {
+								//一级
+								maxList[i].hazardCheckPro = minList[x].id
+								maxList[i].hazardCheckCode = minList[x].code
+								maxList[i].hazardCheckName = minList[x].name
+								maxList[i].hazardCheckPro2 = maxList[i].children[o].id
+								maxList[i].hazardCheckCode2 = maxList[i].children[o].code
+								maxList[i].hazardCheckName2 = maxList[i].children[o].name
+								maxList[i].hazardCheckPro1 = maxList[i].id
+								maxList[i].hazardCheckCode1 = maxList[i].code
+								maxList[i].hazardCheckName1 = maxList[i].name
+								//二级
+								maxList[i].children[o].hazardCheckPro = minList[x].id
+								maxList[i].children[o].hazardCheckCode = minList[x].code
+								maxList[i].children[o].hazardCheckName = minList[x].name
+								maxList[i].children[o].hazardCheckPro2 = maxList[i].children[o].id
+								maxList[i].children[o].hazardCheckCode2 = maxList[i].children[o].code
+								maxList[i].children[o].hazardCheckName2 = maxList[i].children[o].name
+								maxList[i].children[o].hazardCheckPro1 = maxList[i].id
+								maxList[i].children[o].hazardCheckCode1 = maxList[i].code
+								maxList[i].children[o].hazardCheckName1 = maxList[i].name
+								//三级
+								minList[x].level = 3;
+								minList[x].hazardCheckPro = minList[x].id
+								minList[x].hazardCheckCode = minList[x].code
+								minList[x].hazardCheckName = minList[x].name
+								minList[x].hazardCheckPro2 = maxList[i].children[o].id
+								minList[x].hazardCheckCode2 = maxList[i].children[o].code
+								minList[x].hazardCheckName2 = maxList[i].children[o].name
+								minList[x].hazardCheckPro1 = maxList[i].id
+								minList[x].hazardCheckCode1 = maxList[i].code
+								minList[x].hazardCheckName1 = maxList[i].name
+								minList[x].hazardCheckPointList = minList[x].mainPoint.split('#')
+								if (maxList[i].children[o].children) {
+									maxList[i].children[o].children.push(minList[x])
+								} else {
+									maxList[i].children[o].children = [minList[x]]
+								}
+							}
+						}
+					}
+				}
+				let list = this.getCascaderData(JSON.parse(JSON.stringify(maxList)), 3)
+				this.$nextTick(() => {
+					this.$set(this, 'levelListOne', JSON.parse(JSON.stringify({
+						level: 0,
+						children: list
+					})));
+					this.$set(this, 'dataList', JSON.parse(JSON.stringify(list)));
+					this.$set(this, 'checkList', JSON.parse(JSON.stringify(list)));
+					this.$set(this, 'cascadeButtonType', 1);
+					this.$set(this, 'levelListTwo', null);
+					this.$set(this, 'levelListThree', null);
+				})
+			},
 			/********************** 检查项格式处理 **********************/
 			getCascaderData(list, type) {
 				let self = this
@@ -577,6 +671,13 @@
 						background-color: #fff;
 						border-bottom: 1rpx solid #E0E0E0;
 					}
+					.for-box-n-b {
+						margin: 0 21rpx;
+						font-size: 32rpx;
+						line-height: 40rpx;
+						padding: 20rpx 0;
+						background-color: #fff;
+					}
 				}
 			}
 		}

+ 35 - 11
pages_safetyCheck/views/inspectManage/conductInspections.vue

@@ -137,7 +137,6 @@
 		},
 		onLoad(option) {
 			let optionData = JSON.parse(decodeURIComponent(option.infoData));
-			console.log('开展检查',optionData)
 			uni.setNavigationBarTitle({
 				title: optionData.subName + '(' + (optionData.pageType == 0 ? (optionData.roomNum ? optionData
 					.roomNum : '-') : (optionData
@@ -190,9 +189,20 @@
 					if(data.data.hazardDescribe){
 						this.$set(this.form, 'hazardDescribe', data.data.hazardDescribe);
 					}else{
-						let list=[];
-						list=data.data.hazardCheckPoint.split('#');
-						this.$set(this.form, 'hazardDescribe', list[0]);
+						this.$set(this.newData,'hazardCheckPro',this.optionData.hazardCheckPro);
+						this.$set(this.newData,'hazardCheckCode',this.optionData.hazardCheckCode);
+						this.$set(this.newData,'hazardCheckName',this.optionData.hazardCheckName);
+						this.$set(this.newData,'hazardCheckPro1',this.optionData.hazardCheckPro1);
+						this.$set(this.newData,'hazardCheckCode1',this.optionData.hazardCheckCode1);
+						this.$set(this.newData,'hazardCheckName1',this.optionData.hazardCheckName1);
+						this.$set(this.newData,'hazardCheckPro2',this.optionData.hazardCheckPro2);
+						this.$set(this.newData,'hazardCheckCode2',this.optionData.hazardCheckCode2);
+						this.$set(this.newData,'hazardCheckName2',this.optionData.hazardCheckName2);
+						this.$set(this.newData,'hazardCheckPoint',this.optionData.hazardCheckPoint);
+						this.$set(this.form,'hazardDescribe',this.optionData.hazardCheckPoint);
+						// let list=[];
+						// list=data.data.hazardCheckPoint.split('#');
+						// this.$set(this.form, 'hazardDescribe', list[0]);
 					}
 					this.$set(this.form, 'photoList', data.data.photoList ? data.data.photoList : []);
 					this.$set(this.form, 'voiceList', data.data.voiceList ? data.data.voiceList : []);
@@ -234,6 +244,7 @@
 					if (this.pageType == 0) {
 						//检查
 						obj.manageId = this.optionData.manageId
+						obj.planSetId = this.optionData.planSetId
 					}
 					this.$set(this, 'propsData', obj);
 					this.$set(this, 'checkItemModuleType', true);
@@ -241,14 +252,18 @@
 					this.$set(this, 'checkItemModuleType', false);
 					this.$set(this, 'propsData', {});
 				} else if (type == 'submit') {
-					//this.itemsClick(item);
+					this.$set(this.newData, 'hazardCheckPro', item.hazardCheckPro);
 					this.$set(this.newData, 'hazardCheckCode', item.hazardCheckCode);
 					this.$set(this.newData, 'hazardCheckName', item.hazardCheckName);
+					this.$set(this.newData, 'hazardCheckPro1', item.hazardCheckPro1);
+					this.$set(this.newData, 'hazardCheckCode1', item.hazardCheckCode1);
+					this.$set(this.newData, 'hazardCheckName1', item.hazardCheckName1);
+					this.$set(this.newData, 'hazardCheckPro2', item.hazardCheckPro2);
 					this.$set(this.newData, 'hazardCheckCode2', item.hazardCheckCode2);
 					this.$set(this.newData, 'hazardCheckName2', item.hazardCheckName2);
 					this.$set(this.newData, 'hazardCheckPoint', item.hazardCheckPoint);
 					this.$set(this.form, 'hazardDescribe', keyPoint);
-					this.$set(this.optionData, 'setOptionId', item.setOptionId);
+					// this.$set(this.optionData, 'setOptionId', item.setOptionId);
 					this.$set(this.optionData, 'hazardCheckPro', item.hazardCheckPro);
 					this.$set(this, 'checkItemModuleType', false);
 					this.securityAppCheckPhotoGetCheckNumBySub();
@@ -288,14 +303,22 @@
 					checkFlag: this.form.checkFlag,
 					checkStatus: 1,
 					hazardDescribe: this.form.hazardDescribe,
-					setOptionId: this.optionData.setOptionId,
 					photoList: this.form.photoList,
 					voiceList: this.form.voiceList,
+          manageId: this.optionData.manageId,
+          hazardCheckPro: this.newData.hazardCheckPro,
+          hazardCheckCode: this.newData.hazardCheckCode,
+          hazardCheckName: this.newData.hazardCheckName,
+          hazardCheckPro2: this.newData.hazardCheckPro2,
+          hazardCheckCode2: this.newData.hazardCheckCode2,
+          hazardCheckName2: this.newData.hazardCheckName2,
+          hazardCheckPro1: this.newData.hazardCheckPro1,
+          hazardCheckCode1: this.newData.hazardCheckCode1,
+          hazardCheckName1: this.newData.hazardCheckName1,
+          hazardCheckPoint: this.form.hazardDescribe,
 				}
-				if(this.optionData.editStatus){
-					if(this.optionData.setOptionId!=this.newData.setOptionId){
-						obj.delSetOptionId=this.newData.setOptionId;
-					}
+				if(this.optionData.setOptionId){
+					obj.setOptionId = this.optionData.setOptionId;
 				}
 				const {
 					data
@@ -309,6 +332,7 @@
 					});
 					
 					let infoData = this.optionData;
+					infoData.setOptionId = data.data;
 					uni.redirectTo({
 						url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItemsDetail?infoData=' +
 							encodeURIComponent(JSON

+ 257 - 8
pages_safetyCheck/views/inspectManage/inspectList.vue

@@ -37,11 +37,17 @@
 						<view :class="manageStatus == 2 ?'level-r-B':'level-r-A'" @click="checkFlagChange(2)">已检查</view>
 					</view>
 				</view>
-				<view class="level">
+				<view class="level" v-if="tabIndexTow != 1">
 					<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>
+				<view class="uni-data-picker-box" v-if="tabIndexTow == 1">
+					<uni-data-picker 
+					placeholder="请选择楼栋/楼层" v-model="classes"
+					@change="bindPickerChange" :localdata="dataListTow" ref='picker'>
+					</uni-data-picker>
+				</view>
 				<!-- 搜索 -->
 				<view class="header">
 					<view class="search">
@@ -49,7 +55,8 @@
 							<img :src="imagesUrl('commonality/icon_aqjc_ss.png')" @click="searchBtn">
 							<input type="text" v-model="searchValue" placeholder="实验室名称或房间号" name="search"
 								@confirm='searchBtn' confirm-type='search' maxlength="50"
-								placeholder-style="color: #333333;font-size:24rpx;">
+								style="color:#333"
+								placeholder-style="color: #999;font-size:24rpx;">
 							<!-- <view v-if="searchValue" class="left-icons" @click="delSearchValue()">
 								<uni-icons color="#0183FA" type="clear" size="20"></uni-icons>
 							</view> -->
@@ -102,6 +109,25 @@
 			<img v-if="tabIndexTow==0" class="saoCode" @click="saoCode()"
 				:src="imagesUrl('safetyCheck/icon_aqjc_saoma.png')">
 		</scroll-view>
+		<view class="shade-box" v-if="securityCheck">
+			<view class="null-box" @click="goPage('securityCheck',false)"></view>
+			<view class="shade_n">
+				<view class="title">
+					<view>请选择实验室</view>
+				</view>
+				<view class="batch">
+					<view class="batch-li" @click="batchClickTow(item)" v-for="(item,index) in subjectData">
+						<view class="batch-li-l">
+							<text>{{item.planTitle}}-{{item.checkName}}</text>
+							<text>{{item.subName}}{{item.roomNum?'('+item.roomNum+')':''}}</text>
+						</view>
+						<view class="batch-li-r">
+							<img :src="imagesUrl('commonality/icon_wd_gd@1x.png')">
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
 	</view>
 </template>
 
@@ -119,12 +145,11 @@
 		securityAppCheckDangerGetCheckDangerSubList,
 		securityAppCheckDangerReviewSubList,
 		securityAppCheckSetOptionList,
+		securityAppCheckDangerBuildAndFloorList,
+		securityAppCheckPlanScanCode,
 	} from '@/pages_safetyCheck/api/index.js'
 	export default {
 		name: "snapshotList",
-		components: {
-
-		},
 		data() {
 			return {
 				baseUrl: config.base_url,
@@ -161,6 +186,15 @@
 				total: 0,
 				getDataType: false,
 				manageStatus: null,
+				securityCheck:false,
+				subjectData: [],
+				//楼栋楼层数据
+				dataListTow: [],
+				//楼栋楼层绑定数据
+				classes:[],
+				//楼栋楼层ID
+				buildId:'',
+				floorId:'',
 			}
 		},
 		onLoad(option) {
@@ -182,10 +216,27 @@
 		mounted() {
 			let self = this;
 			setTimeout(() => {
+				self.securityAppCheckDangerBuildAndFloorList();
 				self.getList();
 			}, 100);
 		},
 		methods: {
+			//楼栋楼层选择
+			bindPickerChange: function(e) {
+				console.log('e',e.detail.value)
+				let self = this;
+				if(!e.detail.value[0]){
+					//清除
+					this.$set(this,'buildId','');
+					this.$set(this,'floorId','');
+				}else{
+					//选中
+					this.$set(this,'buildId',e.detail.value[0].value);
+					this.$set(this,'floorId',e.detail.value[1].value);
+				}
+				this.$set(this.queryParams, 'page', 1);
+				this.getList();
+			},
 			//实验室搜索
 			searchBtn() {
 				this.$set(this.queryParams, 'page', 1);
@@ -242,6 +293,9 @@
 				this.$set(this, 'getDataType', false);
 				this.$set(this, 'dataList', []);
 				this.$set(this, 'total', 0);
+				this.$set(this, 'classes', []);
+				this.$set(this, 'buildId', '');
+				this.$set(this, 'floorId', '');
 				this.$set(this, 'tabIndexTow', index);
 				this.$nextTick(() => {
 					this.getList();
@@ -261,6 +315,9 @@
 				this.$set(this, 'getDataType', false);
 				this.$set(this, 'dataList', []);
 				this.$set(this, 'total', 0);
+				this.$set(this, 'classes', []);
+				this.$set(this, 'buildId', '');
+				this.$set(this, 'floorId', '');
 				this.$nextTick(() => {
 					this.getList();
 				})
@@ -321,7 +378,18 @@
 					}
 				}
 			},
-
+			async securityAppCheckDangerBuildAndFloorList(){
+				let obj = {
+					planId:this.optionData.planId,
+					planSetId:this.planSetId,
+				}
+				const {
+					data
+				} = await securityAppCheckDangerBuildAndFloorList(obj);
+				if(data.code == 200){
+					this.$set(this,'dataListTow',data.data);
+				}
+			},
 			//查询检查项
 			async securityAppCheckSetOptionList(item) {
 				let self = this;
@@ -366,6 +434,7 @@
 				}
 			},
 			/******调用摄像头******/
+			/******调用摄像头******/
 			saoCode() {
 				let self = this;
 				uni.scanCode({
@@ -377,7 +446,10 @@
 							codeData[item.split("=")[0]] = item.split("=")[1];
 						})
 						if (codeData.code) {
-							self.saoList(codeData.subId);
+							self.securityAppCheckPlanScanCode(codeData.subId,self.planSetId);
+							// self.$set(self.subjectData, 'subId', codeData.subId);
+							// self.$set(self.subjectData, 'planSetId', self.planSetId);
+							// self.$set(self, "securityCheck", true)
 						} else {
 							uni.showToast({
 								title: '请扫描正确的二维码',
@@ -389,6 +461,61 @@
 					}
 				});
 			},
+			//查询计划
+			async securityAppCheckPlanScanCode(subId,planSetId) {
+				let self = this;
+				let checkCategory = null;
+				if(uni.getStorageSync('identityData')){
+					if(uni.getStorageSync('identityData').type=='collegeAdmin'){
+						checkCategory=2
+					}else if(uni.getStorageSync('identityData').type=='schoolAdmin'){
+						checkCategory=1
+					}
+				}
+				let obj = {
+					subId:subId,
+					checkCategory:checkCategory,
+				};
+				if(planSetId){
+					obj.planSetId = planSetId;
+				}
+				const {
+					data
+				} = await securityAppCheckPlanScanCode(obj);
+				if (data.code == 200) {
+					if(data.data[0]){
+						if(data.data[1]){
+							//多个
+							self.$set(self,'subjectData',data.data);
+							self.$set(self,'securityCheck',true);
+						}else{
+							//单个
+							let infoData = data.data[0];
+							infoData.pageType = 0;
+							uni.navigateTo({
+								url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' + encodeURIComponent(
+									JSON.stringify(infoData))
+							});
+						}
+					}else{
+						//没有
+						uni.showToast({
+							title: '该实验室暂无检查计划!',
+							icon: "none",
+							mask: true,
+							duration: 2000
+						});
+					}
+				}
+			},
+			batchClickTow(row) {
+				let infoData = row;
+				infoData.pageType = 0;
+				uni.navigateTo({
+					url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' + encodeURIComponent(
+						JSON.stringify(infoData))
+				});
+			},
 			//扫一扫查询数据
 			async saoList(subId) {
 				let obj = {
@@ -631,6 +758,8 @@
 				} else if (this.tabIndexTow == 1) {
 					//复查计划
 					obj.planId = this.optionData.planId;
+					obj.buildId = this.buildId;
+					obj.floorId = this.floorId;
 					const {
 						data
 					} = await securityAppCheckDangerReviewSubList(obj);
@@ -1045,7 +1174,31 @@
 			}
 
 		}
-
+		.uni-data-picker-box{
+			background-color: #fff;
+			padding:10rpx 20rpx 0 30rpx;
+			/deep/.input-value-border{
+				border-radius:50rpx!important;
+				padding-right:12rpx!important;
+			}
+			/deep/.input-value{
+				font-size:24rpx!important;
+				line-height:60rpx!important;
+			}
+			/deep/.selected-area{
+				padding-left:18rpx!important;
+			}
+			/deep/.placeholder{
+				color:#999!important;
+			}
+			/deep/.icon-clear{
+				line-height:40rpx;
+			}
+			/deep/.uni-icons{
+				font-size:34rpx!important;
+				color:#999!important;
+			}
+		}
 		.list {
 			width: 750rpx;
 			padding: 0 30rpx;
@@ -1219,5 +1372,101 @@
 			width: 160rpx;
 			height: 160rpx;
 		}
+		
+		.shade-box {
+			height: 100%;
+			width: 100%;
+			position: fixed;
+			display: flex;
+			flex-direction: column;
+			z-index: 200;
+			background: rgba(0, 0, 0, 0.2);
+			top: 0;
+		
+			.null-box {
+				flex: 1;
+			}
+		
+			.shade_n {
+				position: absolute;
+				bottom: 0;
+				left: 0;
+				width: 750rpx;
+				height: 466rpx;
+				background: #FFFFFF;
+				border-radius: 20rpx 20rpx 0rpx 0rpx;
+				overflow-y: auto;
+		
+				.title {
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					padding: 0 50rpx 0 284rpx;
+					box-sizing: border-box;
+					border-bottom: 1rpx solid #E0E0E0;
+		
+					>view {
+						font-size: 30rpx;
+						color: #3D3D3D;
+						line-height: 90rpx;
+						text-align: left;
+					}
+		
+					>img {
+						width: 24rpx;
+						height: 12rpx;
+					}
+				}
+		
+				.batch {
+					padding: 0 30rpx;
+					box-sizing: border-box;
+		
+					.batch-li {
+						display: flex;
+						justify-content: space-between;
+						align-items: center;
+						border-bottom: 1rpx solid #E0E0E0;
+						padding: 20rpx 0 16rpx 0rpx;
+						box-sizing: border-box;
+		
+						.batch-li-l {
+							>text:nth-of-type(1) {
+								display: block;
+								font-size: 30rpx;
+								color: #333333;
+								line-height: 42rpx;
+								text-align: left;
+							}
+		
+							>text:nth-of-type(2) {
+								display: block;
+								font-size: 28rpx;
+								color: #666666;
+								line-height: 39rpx;
+								text-align: left;
+								margin-top: 6rpx;
+							}
+						}
+		
+						.batch-li-r {
+							font-size: 28rpx;
+							color: #666666;
+							line-height: 39rpx;
+							text-align: left;
+							display: flex;
+							justify-content: flex-start;
+							align-items: center;
+		
+							>img {
+								width: 24rpx;
+								height: 24rpx;
+								margin-left: 9rpx;
+							}
+						}
+					}
+				}
+			}
+		}
 	}
 </style>

+ 131 - 14
pages_safetyCheck/views/itemsManage/hiddenDangerItems.vue

@@ -11,13 +11,13 @@
 					<view :class="{on:curTabTow==item.value}" class="tabTitle_tow_across"></view>
 				</view>
 			</view>
-			<view class="line"></view>
-			<view class="search">
+			<!-- <view class="line"></view> -->
+			<!-- <view class="search">
 				<view class="search-r search-r-margin" @click="checkItemModuleButton('open')">
 					<img :src="imagesUrl('commonality/icon_aqjc_ss.png')">
 					搜索检查项
 				</view>
-			</view>
+			</view> -->
 			<view class="line"></view>
 		</view>
 		<scroll-view scroll-y style="overflow-y: scroll;flex:1;" @scrolltolower="scrollGet" class="info-max-box">
@@ -75,8 +75,8 @@
 		<!-- 	<view class="sub-btn" @click="submitBtn(1)" v-if="pageType==0 && inspectRemporary">开展检查</view> -->
 
 		<view class="subBtn">
-			<img @click="saoCode()" v-if="pageType==0" :src="imagesUrl('safetyCheck/icon_aqjc_saoma.png')">
-			<img @click="submitBtn(1)" v-if="pageType==0 && inspectRemporary" style="margin-left: 184rpx;"
+			<!-- <img @click="saoCode()" v-if="pageType==0" :src="imagesUrl('safetyCheck/icon_aqjc_saoma.png')"> -->
+			<img @click="submitBtn(1)" v-if="pageType==0 && optionData.manageStatus !=2"
 				:src="imagesUrl('safetyCheck/icon_aqjc_jiancha.png')" />
 		</view>
 
@@ -96,6 +96,8 @@
 		securityAppCheckDangerGetCheckDangerSubList,
 		securityAppCheckDangerReviewSubList,
 		securityAppCheckManageList,
+		securityAppCheckPlanSetGetOptionList,
+		securityCheckOptionSelAllList,
 	} from '@/pages_safetyCheck/api/index.js'
 	import {
 		checkItemModule
@@ -136,11 +138,11 @@
 				inspectRemporary: false, //待检查
 				inspectRemporaryList: [], //待检查
 				optionData: {},
+				checkPlanList:[],
 			}
 		},
 		onLoad(option) {
 			let optionData = JSON.parse(decodeURIComponent(option.infoData));
-			console.log('检查项列表', optionData)
 			uni.setNavigationBarTitle({
 				title: optionData.subName + '(' + (optionData.pageType == 0 ? (optionData.roomNum ? optionData
 					.roomNum : '-') : (optionData
@@ -155,10 +157,12 @@
 				optionData.pageType == 0 ? (optionData.manageStatus == 2 ? [{
 					value: '1',
 					label: '已检查'
-				}] : [{
-					value: '0',
-					label: '待检查'
-				}, {
+				}] : [
+				// 	{
+				// 	value: '0',
+				// 	label: '待检查'
+				// }, 
+				{
 					value: '1',
 					label: '已检查'
 				}]) : (
@@ -188,7 +192,7 @@
 					this.$set(this, 'curTabTow', '1');
 				}else{
 					this.$set(this, 'curTabTow', 
-					optionData.pageType == 0 ? (optionData.curTabTow == 1 ? '1' : '0') : (
+					optionData.pageType == 0 ? (optionData.curTabTow == 1 ? '1' : '1') : (
 						optionData.pageType == 1 ? '0' : (
 						optionData.pageType == 2 ? '2' : '')));
 				}
@@ -209,6 +213,7 @@
 		},
 		mounted() {
 			if (this.optionData.pageType == 0) {
+				this.securityCheckOptionSelAllList();
 				if (this.optionData.manageStatus == 2) {
 					this.securityAppCheckSetOptionList(this.optionData, 1)
 				} else {
@@ -267,6 +272,7 @@
 					if (this.pageType == 0) {
 						//检查
 						obj.manageId = this.optionData.manageId
+						// obj.planSetId = this.optionData.planSetId
 						if (this.optionData.manageStatus == 2) {
 							obj.checkType = 1
 						}
@@ -356,6 +362,7 @@
 							let infoData = data.data[0];
 							infoData.pageType = this.pageType;
 							infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
+							infoData.manageId = this.optionData.manageId;
 							uni.navigateTo({
 								url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
 									encodeURIComponent(
@@ -384,6 +391,7 @@
 							let infoData = data.data[0];
 							infoData.pageType = this.tabIndexTow;
 							infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
+							infoData.manageId = this.optionData.manageId;
 							uni.navigateTo({
 								url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
 									encodeURIComponent(
@@ -409,6 +417,7 @@
 				infoData.itemsStatus = this.curTabTow;
 				infoData.setOptionId = row.setOptionId;
 				infoData.hazardCheckPro = row.hazardCheckPro;
+				infoData.manageId = this.optionData.manageId;
 				/* infoData.checkCategory = this.optionData.checkCategory;
 				infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList; */
 				if (this.pageType == 0 && this.curTabTow == 0) {
@@ -636,11 +645,16 @@
 			async submitBtn(status) {
 				if (status == 1) {
 					//开展检查
-					let infoData = this.inspectRemporaryList[0];
+					let infoData = this.checkPlanList[0];
+					infoData.manageId = this.optionData.manageId;
+					infoData.manageStatus = this.optionData.manageStatus;
+					infoData.planSetId = this.optionData.planSetId;
+					infoData.hazardCheckPro = this.checkPlanList[0].hazardCheckPro;
 					infoData.pageType = this.pageType;
 					infoData.itemsStatus = this.curTabTow;
 					infoData.checkCategory = this.optionData.checkCategory;
 					infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
+					infoData.subId = this.optionData.subId;
 					infoData.subName = this.optionData.subName;
 					infoData.roomNum = this.optionData.roomNum;
 					infoData.subRoom = this.optionData.subRoom;
@@ -652,7 +666,110 @@
 					});
 				}
 			},
-
+			//基础检查项检查
+			async securityCheckOptionSelAllList() {
+				let self = this;
+				const {
+					data
+				} = await securityCheckOptionSelAllList({});
+				if (data.code == 200) {
+					let maxList = this.getCascaderData(JSON.parse(JSON.stringify(data.data)), 2)
+					this.$nextTick(() => {
+							this.securityAppCheckPlanSetGetOptionList(maxList);
+					})
+				}
+			},
+			//查询批次下-检查项
+			async securityAppCheckPlanSetGetOptionList(maxList){
+				let self = this;
+				const {
+					data
+				} = await securityAppCheckPlanSetGetOptionList({
+					planSetId:this.optionData.planSetId,
+					searchValue: this.searchValue
+				});
+				if (data.code == 200) {
+					if (data.data[0]) {
+						let minList = JSON.parse(JSON.stringify(data.data))
+						this.newCascadeData(maxList, minList);
+					}
+				}
+			},
+			newCascadeData(maxList, minList) {
+				let list = [];
+				for (let i = 0; i < maxList.length; i++) {
+					for (let o = 0; o < maxList[i].children.length; o++) {
+						for (let x = 0; x < minList.length; x++) {
+							if (maxList[i].children[o].id == minList[x].parentId) {
+								// //三级
+								minList[x].level = 3;
+								minList[x].hazardCheckPro = minList[x].id
+								minList[x].hazardCheckCode = minList[x].code
+								minList[x].hazardCheckName = minList[x].name
+								minList[x].hazardCheckPro2 = maxList[i].children[o].id
+								minList[x].hazardCheckCode2 = maxList[i].children[o].code
+								minList[x].hazardCheckName2 = maxList[i].children[o].name
+								minList[x].hazardCheckPro1 = maxList[i].id
+								minList[x].hazardCheckCode1 = maxList[i].code
+								minList[x].hazardCheckName1 = maxList[i].name
+								minList[x].hazardCheckPoint = minList[x].mainPoint.split('#')[0]
+								list.push(minList[x])
+							}
+						}
+					}
+				}
+				this.$set(this, 'checkPlanList', JSON.parse(JSON.stringify(list)));
+			},
+			/********************** 检查项格式处理 **********************/
+			getCascaderData(list, type) {
+				let self = this
+				for (let i = 0; i < list.length; i++) {
+					if (list[i].level == type) {
+						delete list[i].children
+					} else if (list[i].children) {
+						if (list[i].children[0]) {
+							list[i].children = self.getCascaderData(list[i].children, type)
+						} else {
+							list.splice(i, 1)
+							i--
+						}
+					} else {
+						list.splice(i, 1)
+						i--
+					}
+				}
+				for (let i = 0; i < list.length; i++) {
+					if (list[i].level == type) {
+						delete list[i].children
+					} else if (list[i].children) {
+						if (list[i].children[0]) {
+							list[i].children = self.getCascaderData(list[i].children, type)
+						} else {
+							list.splice(i, 1)
+							i--
+						}
+					} else {
+						list.splice(i, 1)
+						i--
+					}
+				}
+				for (let i = 0; i < list.length; i++) {
+					if (list[i].level == type) {
+						delete list[i].children
+					} else if (list[i].children) {
+						if (list[i].children[0]) {
+							list[i].children = self.getCascaderData(list[i].children, type)
+						} else {
+							list.splice(i, 1)
+							i--
+						}
+					} else {
+						list.splice(i, 1)
+						i--
+					}
+				}
+				return list
+			},
 		}
 	}
 </script>
@@ -682,7 +799,7 @@
 
 		.header {
 			width: 100%;
-			height: 268rpx;
+			height: 174rpx;
 			overflow: hidden;
 			background: #fff;
 

+ 144 - 8
pages_safetyCheck/views/itemsManage/hiddenDangerItemsDetail.vue

@@ -117,10 +117,10 @@
 		</scroll-view>
 		<view class="subBtn">
 			<!-- 检查 -->
-			<img @click="saoCode()" v-if="pageType==0" :src="imagesUrl('safetyCheck/icon_aqjc_saoma.png')">
-			<img @click="submitBtn(1)" v-if="pageType==0 && newData.checkSetProgress !=100 && !hiddenDangerRecordStatus"
-				style="margin-left: 60rpx;" :src="imagesUrl('safetyCheck/icon_aqjc_bianji.png')" />
-			<img @click="submitBtn(2)" v-if="pageType==0 && newData.checkSetProgress !=100" style="margin-left: 60rpx;" 
+			<!-- <img @click="saoCode()" v-if="pageType==0" :src="imagesUrl('safetyCheck/icon_aqjc_saoma.png')"> -->
+			<img @click="submitBtn(1)" v-if="pageType==0 && newData.checkSetProgress !=100 && !hiddenDangerRecordStatus && optionData.manageStatus !=2"
+				 :src="imagesUrl('safetyCheck/icon_aqjc_bianji.png')" />
+			<img @click="submitBtn(2)" v-if="pageType==0 && newData.checkSetProgress !=100 && optionData.manageStatus !=2" style="margin-left: 60rpx;" 
 				:src="imagesUrl('safetyCheck/icon_aqjc_jiancha.png')" />
 			<!-- 整改 -->	
 			<img @click="submitBtn(1)" v-if="pageType==2 && !hiddenDangerRecordStatus && !newData.finishRectify"
@@ -153,6 +153,8 @@
 		securityAppCheckDangerReviewSubList,
 		securityAppCheckDangerGetCheckDangerSubList,
 		securityAppCheckManageList,
+		securityAppCheckPlanSetGetOptionList,
+		securityCheckOptionSelAllList,
 	} from '@/pages_safetyCheck/api/index.js'
 	export default {
 		name: "snapshotDetail",
@@ -176,13 +178,11 @@
 				optionData: null,
 				lotName: null,
 				hiddenDangerRecordStatus: null, //判断是否是从隐患列表页面跳转过来
-
+				checkPlanList:[],
 			}
 		},
 		onLoad(option) {
 			let optionData = JSON.parse(decodeURIComponent(option.infoData));
-			console.log('详情', optionData)
-
 			this.$set(this, 'pageType', optionData.pageType);
 			this.$set(this, 'itemsStatus', optionData.itemsStatus);
 			this.$set(this, 'setOptionId', optionData.setOptionId);
@@ -205,6 +205,7 @@
 		},
 		mounted() {
 			if (this.pageType == 0) {
+				this.securityCheckOptionSelAllList();
 				this.securityAppCheckPlanCheckInfo();
 			} else if (this.pageType == 1 || this.pageType == 2) {
 				//复查-整改
@@ -370,6 +371,7 @@
 					planSetId: this.optionData.checkPlanSetVoList.planSetId,
 					checkCategory: this.optionData.checkCategory,
 					hazardCheckPro: this.optionData.hazardCheckPro,
+					setOptionId: this.optionData.setOptionId?this.optionData.setOptionId:'',
 					subId: this.optionData.subId,
 				}
 				const {
@@ -476,6 +478,16 @@
 					if (this.pageType == 0) {
 						//检查
 						let infoData = this.optionData;
+						infoData.hazardCheckPro = this.newData.hazardCheckPro;
+						infoData.hazardCheckCode = this.newData.hazardCheckCode;
+						infoData.hazardCheckName = this.newData.hazardCheckName;
+						infoData.hazardCheckPro2 = this.newData.hazardCheckPro2;
+						infoData.hazardCheckCode2 = this.newData.hazardCheckCode2;
+						infoData.hazardCheckName2 = this.newData.hazardCheckName2;
+						infoData.hazardCheckPro1 = this.newData.hazardCheckPro1;
+						infoData.hazardCheckCode1 = this.newData.hazardCheckCode1;
+						infoData.hazardCheckName1 = this.newData.hazardCheckName1;
+						infoData.hazardCheckPoint = this.newData.hazardCheckPoint;
 						infoData.editStatus = true;
 						uni.redirectTo({
 							url: '/pages_safetyCheck/views/inspectManage/conductInspections?infoData=' +
@@ -509,7 +521,28 @@
 				} else if (status == 2) {
 					//继续检查
 					if (this.pageType == 0) {
-						this.securityAppCheckSetOptionList(this.optionData, 0)
+						//开展检查
+						let infoData = this.checkPlanList[0];
+						console.log('infoData',infoData)
+						console.log('optionData',this.optionData)
+						infoData.manageId = this.optionData.manageId;
+						infoData.manageStatus = this.optionData.manageStatus;
+						infoData.planSetId = this.optionData.planSetId;
+						infoData.hazardCheckPro = this.checkPlanList[0].hazardCheckPro;
+						infoData.pageType = this.pageType;
+						infoData.itemsStatus = this.curTabTow;
+						infoData.checkCategory = this.optionData.checkCategory;
+						infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
+						infoData.subId = this.optionData.subId;
+						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(
+									JSON
+									.stringify(infoData))
+						});
 					} else {
 						let infoData = this.optionData;
 						uni.redirectTo({
@@ -551,6 +584,109 @@
 			reviewCollapse(row) {
 				row.reviewCollapse = !row.reviewCollapse
 			},
+			//基础检查项检查
+			async securityCheckOptionSelAllList() {
+				let self = this;
+				const {
+					data
+				} = await securityCheckOptionSelAllList({});
+				if (data.code == 200) {
+					let maxList = this.getCascaderData(JSON.parse(JSON.stringify(data.data)), 2)
+					this.$nextTick(() => {
+							this.securityAppCheckPlanSetGetOptionList(maxList);
+					})
+				}
+			},
+			//查询批次下-检查项
+			async securityAppCheckPlanSetGetOptionList(maxList){
+				let self = this;
+				const {
+					data
+				} = await securityAppCheckPlanSetGetOptionList({
+					planSetId:this.optionData.planSetId,
+					searchValue: this.searchValue
+				});
+				if (data.code == 200) {
+					if (data.data[0]) {
+						let minList = JSON.parse(JSON.stringify(data.data))
+						this.newCascadeData(maxList, minList);
+					}
+				}
+			},
+			newCascadeData(maxList, minList) {
+				let list = [];
+				for (let i = 0; i < maxList.length; i++) {
+					for (let o = 0; o < maxList[i].children.length; o++) {
+						for (let x = 0; x < minList.length; x++) {
+							if (maxList[i].children[o].id == minList[x].parentId) {
+								// //三级
+								minList[x].level = 3;
+								minList[x].hazardCheckPro = minList[x].id
+								minList[x].hazardCheckCode = minList[x].code
+								minList[x].hazardCheckName = minList[x].name
+								minList[x].hazardCheckPro2 = maxList[i].children[o].id
+								minList[x].hazardCheckCode2 = maxList[i].children[o].code
+								minList[x].hazardCheckName2 = maxList[i].children[o].name
+								minList[x].hazardCheckPro1 = maxList[i].id
+								minList[x].hazardCheckCode1 = maxList[i].code
+								minList[x].hazardCheckName1 = maxList[i].name
+								minList[x].hazardCheckPoint = minList[x].mainPoint.split('#')[0]
+								list.push(minList[x])
+							}
+						}
+					}
+				}
+				this.$set(this, 'checkPlanList', JSON.parse(JSON.stringify(list)));
+			},
+			getCascaderData(list, type) {
+				let self = this
+				for (let i = 0; i < list.length; i++) {
+					if (list[i].level == type) {
+						delete list[i].children
+					} else if (list[i].children) {
+						if (list[i].children[0]) {
+							list[i].children = self.getCascaderData(list[i].children, type)
+						} else {
+							list.splice(i, 1)
+							i--
+						}
+					} else {
+						list.splice(i, 1)
+						i--
+					}
+				}
+				for (let i = 0; i < list.length; i++) {
+					if (list[i].level == type) {
+						delete list[i].children
+					} else if (list[i].children) {
+						if (list[i].children[0]) {
+							list[i].children = self.getCascaderData(list[i].children, type)
+						} else {
+							list.splice(i, 1)
+							i--
+						}
+					} else {
+						list.splice(i, 1)
+						i--
+					}
+				}
+				for (let i = 0; i < list.length; i++) {
+					if (list[i].level == type) {
+						delete list[i].children
+					} else if (list[i].children) {
+						if (list[i].children[0]) {
+							list[i].children = self.getCascaderData(list[i].children, type)
+						} else {
+							list.splice(i, 1)
+							i--
+						}
+					} else {
+						list.splice(i, 1)
+						i--
+					}
+				}
+				return list
+			},
 		}
 	}
 </script>

+ 2 - 0
pages_safetyCheck/views/itemsManage/hiddenDangerRectification.vue

@@ -206,12 +206,14 @@
 			},
 			//详情
 			async securityAppCheckDangerGetCheckProDetail() {
+				console.log(this.optionData);
 				let self=this;
 				let obj = {
 					planId: this.optionData.checkPlanSetVoList.planId,
 					planSetId: this.optionData.checkPlanSetVoList.planSetId,
 					checkCategory: this.optionData.checkCategory,
 					hazardCheckPro: this.optionData.hazardCheckPro,
+					setOptionId: this.optionData.setOptionId,
 					subId: this.optionData.subId,
 				}
 				const {

+ 210 - 0
pages_safetyCheck/views/newScanCodeCheck.vue

@@ -0,0 +1,210 @@
+<template>
+	<view class="shade">
+		<view class="null-box" @click="dialogClose()"></view>
+		<view class="shade_n">
+			<view class="title">
+				<view>请选择实验室222</view>
+			</view>
+			<view class="batch">
+				<view class="batch-li" @click="batchClick(item)" v-for="(item,index) in batchList">
+					<view class="batch-li-l">
+						<text>{{item.planTitle}}-{{item.checkName}}</text>
+						<text>{{item.subName}}{{item.roomNum?'('+item.roomNum+')':''}}</text>
+					</view>
+					<view class="batch-li-r">
+						<img :src="imagesUrl('commonality/icon_wd_gd@1x.png')">
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		securityAppCheckManageList,
+		securityAppCheckSetOptionList,
+		securityAppCheckPlanScanCode,
+	} from '@/pages_safetyCheck/api/index.js'
+	import {
+		config
+	} from '@/api/request/config.js'
+	export default {
+		name: "iotControl",
+		props: {
+			subjectData: {},
+		},
+		data() {
+			return {
+				newData:{},
+				batchList: [],
+				checkCategory: null,
+			}
+		},
+		created() {
+			
+		},
+		mounted() {
+			this.$set(this, 'batchList', this.subjectData);
+			// this.securityAppCheckPlanScanCode();
+		},
+		methods: {
+			dialogClose() {
+				this.$parent.goPage('securityCheck',false);
+			},
+			batchClick(row) {
+				let infoData = row;
+				infoData.pageType = 0;
+				uni.navigateTo({
+					url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' + encodeURIComponent(
+						JSON.stringify(infoData))
+				});
+			},
+			//查询计划
+			async securityAppCheckPlanScanCode() {
+				let self = this;
+				let obj = {
+					subId:this.newData.subId,
+					checkCategory:this.checkCategory,
+				};
+				if(this.newData.planSetId){
+					obj.planSetId = this.newData.planSetId;
+				}
+				const {
+					data
+				} = await securityAppCheckPlanScanCode(obj);
+				if (data.code == 200) {
+					if(data.data[0]){
+						if(data.data[1]){
+							//多个
+							setTimeout(function() {
+							self.$set(self,'batchList',data.data);
+							}, 1000);
+						}else{
+							//单个
+							let infoData = data.data[0];
+							infoData.pageType = 0;
+							uni.navigateTo({
+								url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' + encodeURIComponent(
+									JSON.stringify(infoData))
+							});
+						}
+					}else{
+						//没有
+						uni.showToast({
+							title: '该实验室暂无检查计划!',
+							icon: "none",
+							mask: true,
+							duration: 2000
+						});
+						this.dialogClose();
+					}
+				}
+			},
+		},
+		onHide() {
+		
+		},
+		beforeDestroy() {
+			
+		},
+	}
+</script>
+
+<style lang="stylus" scoped>
+	.shade {
+		height: 100%;
+		width: 100%;
+		position: fixed;
+		display: flex;
+		flex-direction: column;
+		z-index: 200;
+		background: rgba(0, 0, 0, 0.2);
+		top: 0;
+	
+		.null-box {
+			flex: 1;
+		}
+	
+		.shade_n {
+			position: absolute;
+			bottom: 0;
+			left: 0;
+			width: 750rpx;
+			height: 466rpx;
+			background: #FFFFFF;
+			border-radius: 20rpx 20rpx 0rpx 0rpx;
+			overflow-y: auto;
+	
+			.title {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				padding: 0 50rpx 0 284rpx;
+				box-sizing: border-box;
+				border-bottom: 1rpx solid #E0E0E0;
+	
+				>view {
+					font-size: 30rpx;
+					color: #3D3D3D;
+					line-height: 90rpx;
+					text-align: left;
+				}
+	
+				>img {
+					width: 24rpx;
+					height: 12rpx;
+				}
+			}
+	
+			.batch {
+				padding: 0 30rpx;
+				box-sizing: border-box;
+	
+				.batch-li {
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					border-bottom: 1rpx solid #E0E0E0;
+					padding: 20rpx 0 16rpx 0rpx;
+					box-sizing: border-box;
+	
+					.batch-li-l {
+						>text:nth-of-type(1) {
+							display: block;
+							font-size: 30rpx;
+							color: #333333;
+							line-height: 42rpx;
+							text-align: left;
+						}
+	
+						>text:nth-of-type(2) {
+							display: block;
+							font-size: 28rpx;
+							color: #666666;
+							line-height: 39rpx;
+							text-align: left;
+							margin-top: 6rpx;
+						}
+					}
+	
+					.batch-li-r {
+						font-size: 28rpx;
+						color: #666666;
+						line-height: 39rpx;
+						text-align: left;
+						display: flex;
+						justify-content: flex-start;
+						align-items: center;
+	
+						>img {
+							width: 24rpx;
+							height: 24rpx;
+							margin-left: 9rpx;
+						}
+					}
+				}
+			}
+		}
+	}
+</style>

+ 178 - 15
pages_safetyCheck/views/safetyCheck.vue

@@ -39,8 +39,6 @@
 			<img class="subBtn-img" @click="saoCode()"
 				:src="imagesUrl('safetyCheck/icon_aqjc_saoma.png')">
 		</view>
-		<!-- 安全检查 -->
-		<scanCodeCheck v-if="securityCheck"  :subjectData="subjectData"></scanCodeCheck>
 		<!-- 弹窗部分 -->
 		<view class="shade" v-if="dialogVisible">
 			<view class="null-box" @click="dialogClose()"></view>
@@ -62,6 +60,25 @@
 				</view>
 			</view>
 		</view>
+		<view class="shade-box" v-if="securityCheck">
+			<view class="null-box" @click="goPage('securityCheck',false)"></view>
+			<view class="shade_n">
+				<view class="title">
+					<view>请选择实验室</view>
+				</view>
+				<view class="batch">
+					<view class="batch-li" @click="batchClickTow(item)" v-for="(item,index) in subjectData">
+						<view class="batch-li-l">
+							<text>{{item.planTitle}}-{{item.checkName}}</text>
+							<text>{{item.subName}}{{item.roomNum?'('+item.roomNum+')':''}}</text>
+						</view>
+						<view class="batch-li-r">
+							<img :src="imagesUrl('commonality/icon_wd_gd@1x.png')">
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
 	</view>
 
 </template>
@@ -74,14 +91,10 @@
 		securityAppCheckPlanTitleList,
 	} from '@/pages_safetyCheck/api/index.js'
 	import {
-		scanCodeCheck
-	} from '@/pages_safetyCheck/views/scanCodeCheck.vue'
-	
+		securityAppCheckPlanScanCode,
+	} from '@/pages_safetyCheck/api/index.js'
 	export default {
 		name: "planDetail",
-		components: {
-			scanCodeCheck,
-		},
 		data() {
 			return {
 				pageType: 0,
@@ -120,16 +133,15 @@
 				batchList: [],
 				batchData: {},
 				securityCheck:false,
-				subjectData: {},
+				subjectData: [],
 			}
 		},
 		onLoad(option) {
-
-		},
-		onShow() {
 			this.$set(this,'securityCheck',false)
 			this.getList()
 		},
+		onShow() {
+		},
 		mounted() {
 
 		},
@@ -158,9 +170,10 @@
 							codeData[item.split("=")[0]] = item.split("=")[1];
 						})
 						if (codeData.code) {
-							console.log(codeData.subId)
-							self.$set(self.subjectData, 'subId', codeData.subId);
-							self.$set(self, "securityCheck", true)
+							self.securityAppCheckPlanScanCode(codeData.subId,self.planSetId);
+							// console.log(codeData.subId)
+							// self.$set(self.subjectData, 'subId', codeData.subId);
+							// self.$set(self, "securityCheck", true)
 						} else {
 							uni.showToast({
 								title: '请扫描正确的二维码',
@@ -172,6 +185,61 @@
 					}
 				});
 			},
+			//查询计划
+			async securityAppCheckPlanScanCode(subId,planSetId) {
+				let self = this;
+				let checkCategory = null;
+				if(uni.getStorageSync('identityData')){
+					if(uni.getStorageSync('identityData').type=='collegeAdmin'){
+						checkCategory=2
+					}else if(uni.getStorageSync('identityData').type=='schoolAdmin'){
+						checkCategory=1
+					}
+				}
+				let obj = {
+					subId:subId,
+					checkCategory:checkCategory,
+				};
+				if(planSetId){
+					obj.planSetId = planSetId;
+				}
+				const {
+					data
+				} = await securityAppCheckPlanScanCode(obj);
+				if (data.code == 200) {
+					if(data.data[0]){
+						if(data.data[1]){
+							//多个
+							self.$set(self,'subjectData',data.data);
+							self.$set(self,'securityCheck',true);
+						}else{
+							//单个
+							let infoData = data.data[0];
+							infoData.pageType = 0;
+							uni.navigateTo({
+								url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' + encodeURIComponent(
+									JSON.stringify(infoData))
+							});
+						}
+					}else{
+						//没有
+						uni.showToast({
+							title: '该实验室暂无检查计划!',
+							icon: "none",
+							mask: true,
+							duration: 2000
+						});
+					}
+				}
+			},
+			batchClickTow(row) {
+				let infoData = row;
+				infoData.pageType = 0;
+				uni.navigateTo({
+					url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' + encodeURIComponent(
+						JSON.stringify(infoData))
+				});
+			},
 			//安全检查扫码控制显示隐藏
 			goPage(type,status) {
 				if (type == 'securityCheck') {
@@ -574,5 +642,100 @@
 				height: 160rpx;
 			}
 		}
+		.shade-box {
+			height: 100%;
+			width: 100%;
+			position: fixed;
+			display: flex;
+			flex-direction: column;
+			z-index: 200;
+			background: rgba(0, 0, 0, 0.2);
+			top: 0;
+		
+			.null-box {
+				flex: 1;
+			}
+		
+			.shade_n {
+				position: absolute;
+				bottom: 0;
+				left: 0;
+				width: 750rpx;
+				height: 466rpx;
+				background: #FFFFFF;
+				border-radius: 20rpx 20rpx 0rpx 0rpx;
+				overflow-y: auto;
+		
+				.title {
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					padding: 0 50rpx 0 284rpx;
+					box-sizing: border-box;
+					border-bottom: 1rpx solid #E0E0E0;
+		
+					>view {
+						font-size: 30rpx;
+						color: #3D3D3D;
+						line-height: 90rpx;
+						text-align: left;
+					}
+		
+					>img {
+						width: 24rpx;
+						height: 12rpx;
+					}
+				}
+		
+				.batch {
+					padding: 0 30rpx;
+					box-sizing: border-box;
+		
+					.batch-li {
+						display: flex;
+						justify-content: space-between;
+						align-items: center;
+						border-bottom: 1rpx solid #E0E0E0;
+						padding: 20rpx 0 16rpx 0rpx;
+						box-sizing: border-box;
+		
+						.batch-li-l {
+							>text:nth-of-type(1) {
+								display: block;
+								font-size: 30rpx;
+								color: #333333;
+								line-height: 42rpx;
+								text-align: left;
+							}
+		
+							>text:nth-of-type(2) {
+								display: block;
+								font-size: 28rpx;
+								color: #666666;
+								line-height: 39rpx;
+								text-align: left;
+								margin-top: 6rpx;
+							}
+						}
+		
+						.batch-li-r {
+							font-size: 28rpx;
+							color: #666666;
+							line-height: 39rpx;
+							text-align: left;
+							display: flex;
+							justify-content: flex-start;
+							align-items: center;
+		
+							>img {
+								width: 24rpx;
+								height: 24rpx;
+								margin-left: 9rpx;
+							}
+						}
+					}
+				}
+			}
+		}
 	}
 </style>

+ 41 - 240
pages_safetyCheck/views/scanCodeCheck.vue

@@ -1,15 +1,15 @@
 <template>
-	<view class="shade">
+	<view class="shade" v-if="pageType == 1">
 		<view class="null-box" @click="dialogClose()"></view>
 		<view class="shade_n">
 			<view class="title">
-				<view>{{dialogTtile}}</view>
+				<view>请选择实验室</view>
 			</view>
 			<view class="batch">
 				<view class="batch-li" @click="batchClick(item)" v-for="(item,index) in batchList">
 					<view class="batch-li-l">
-						<text v-if="dialogStatus==0">{{item.planTitle}}</text>
-						<text v-if="dialogStatus==1">{{item.checkName}}</text>
+						<text>{{item.planTitle}}-{{item.checkName}}</text>
+						<text>{{item.subName}}{{item.roomNum?'('+item.roomNum+')':''}}</text>
 					</view>
 					<view class="batch-li-r">
 						<img :src="imagesUrl('commonality/icon_wd_gd@1x.png')">
@@ -22,9 +22,9 @@
 
 <script>
 	import {
-		securityAppCheckPlanAppTitleList,
 		securityAppCheckManageList,
 		securityAppCheckSetOptionList,
+		securityAppCheckPlanScanCode,
 	} from '@/pages_safetyCheck/api/index.js'
 	import {
 		config
@@ -36,24 +36,10 @@
 		},
 		data() {
 			return {
-				baseUrl: config.base_url,
+				pageType:0,
 				newData:{},
-				dialogTtile: '',
-				dialogStatus: 0, //0计划 1批次 2实验室
 				batchList: [],
-				queryParams: {
-					page: 1,
-					pageSize: 100,
-					checkCategory: '', //1校院巡查 2学院自查
-					subId: '',
-				},
-				checkPlanSetVoList: null,
-				form: {},
-				OptionListArr:[],//临时存储检查项
-				planId:'',
-				planTitle:'',
-				checkTypeName:'',
-				crossCheck:'',
+				checkCategory: null,
 			}
 		},
 		created() {
@@ -62,251 +48,66 @@
 		mounted() {
 			if(uni.getStorageSync('identityData')){
 				if(uni.getStorageSync('identityData').type=='collegeAdmin'){
-					this.queryParams.checkCategory=2
+					this.checkCategory=2
 				}else if(uni.getStorageSync('identityData').type=='schoolAdmin'){
-					this.queryParams.checkCategory=1
+					this.checkCategory=1
 				}
 			}
 			this.$set(this, 'newData', this.subjectData);
-			console.log(this.subjectData)
-			this.$set(this.queryParams, 'subId', this.subjectData.subId);
-			this.securityAppCheckPlanAppTitleList();
+			this.securityAppCheckPlanScanCode();
 		},
 		methods: {
 			dialogClose() {
-				this.dialogStatus = 0;
 				this.$parent.goPage('securityCheck',false);
-				
-				
-			},
-			//十六进制颜色值和RGB格式转换
-			hexToRgb(hex, opacity = 1) {
-				// 去除#号
-				var color = hex.replace("#", "");
-				// 分割成红、绿、蓝三部分的16进制字符串
-				var red = parseInt(color.substring(0, 2), 16);
-				var green = parseInt(color.substring(2, 4), 16);
-				var blue = parseInt(color.substring(4, 6), 16);
-				return `RGB(${red}, ${green}, ${blue},${opacity})`;
 			},
 			batchClick(row) {
-				let self = this;
-				if (this.dialogStatus == 0) { //计划点击
-					this.$set(this, 'planId', row.planId);
-					this.$set(this, 'planTitle', row.planTitle);
-					this.$set(this, 'checkTypeName', row.checkTypeName);
-					this.$set(this, 'crossCheck', row.crossCheck);
-					if (row.checkPlanSetVoList.length == 1) {
-						//如果只有1个检查批次不弹窗
-						let planSetId = row.checkPlanSetVoList[0].planSetId
-						self.checkPlanSetVoList = row.checkPlanSetVoList[0];
-						self.securityAppCheckManageList(planSetId)
-					} else if (row.checkPlanSetVoList.length == 0) {
-						this.dialogStatus = 0;
-						this.$parent.goPage('securityCheck',false);
-						uni.showToast({
-							title: '该实验室暂无检查计划!',
-							icon: "none",
-							mask: true,
-							duration: 2000
-						});
-						return
-					} else {
-						this.$set(this, 'batchList', row.checkPlanSetVoList);
-						this.dialogStatus = 1;
-						this.dialogTtile = '批次';
-						this.$parent.goPage('securityCheck',true);
-			
-					}
-				} else if (this.dialogStatus == 1) { //批次点击
-					/* this.dialogStatus = 2;
-					this.dialogTtile = '实验室'; */
-					let planSetId = row.planSetId
-					self.checkPlanSetVoList = row;
-					this.securityAppCheckManageList(planSetId)
-				}
+				let infoData = row;
+				infoData.pageType = 0;
+				uni.navigateTo({
+					url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' + encodeURIComponent(
+						JSON.stringify(infoData))
+				});
 			},
 			//查询计划
-			async securityAppCheckPlanAppTitleList() {
-				this.queryParams.subId = this.newData.subId;
-				this.queryParams.checkStatus = 0;
-				let self = this;
-				const {
-					data
-				} = await securityAppCheckPlanAppTitleList(this.queryParams);
-				if (data.code == 200) {
-					//循环过滤掉当前计划中批次中已经检查完成的
-					data.data.records.forEach(function(item, index) {
-						let list = [];
-						item.checkPlanSetVoList.forEach(function(item2) {
-							if (item2.checkSetProgress != 100) {
-								list.push(item2)
-							}
-						})
-						item.checkPlanSetVoList = list
-					})
-					let list2 = []
-					list2 = data.data.records.filter(function(item) {
-						return item.checkPlanSetVoList.length != 0
-					});
-					data.data.records = list2
-			
-					if (data.data.records.length == 1) { //一个计划
-						this.$set(this, 'planId', data.data.records[0].planId);
-						this.$set(this, 'planTitle', data.data.records[0].planTitle);
-						this.$set(this, 'checkTypeName', data.data.records[0].checkTypeName);
-						this.$set(this, 'crossCheck', data.data.records[0].crossCheck);
-						if (data.data.records[0].checkPlanSetVoList.length == 1) { //1个批次
-							let planSetId = data.data.records[0]
-							if (data.data.records[0].checkPlanSetVoList[0]) { //一个批次
-								let planSetId = data.data.records[0].checkPlanSetVoList[0].planSetId
-								self.checkPlanSetVoList = data.data.records[0].checkPlanSetVoList[0];
-								self.securityAppCheckManageList(planSetId)
-							}
-						} else if (data.data.records[0].checkPlanSetVoList.length == 0) {
-							this.dialogStatus = 0;
-							this.$parent.goPage('securityCheck',false);
-							uni.showToast({
-								title: '该实验室暂无检查计划!',
-								icon: "none",
-								mask: true,
-								duration: 2000
-							});
-							return
-						} else { //多个批次
-							this.dialogStatus = 1;
-							this.batchList = data.data.records[0].checkPlanSetVoList;
-							this.$parent.goPage('securityCheck',true);
-							this.dialogTtile = '批次';
-						}
-			
-					} else if (data.data.records.length==0) {
-						this.dialogStatus = 0;
-						this.$parent.goPage('securityCheck',false);
-						uni.showToast({
-							title: '该实验室暂无检查计划!',
-							icon: "none",
-							mask: true,
-							duration: 2000
-						});
-						return
-					} else { //多个计划
-						this.batchList = data.data.records;
-						this.$parent.goPage('securityCheck',true);
-						this.dialogTtile = '计划标题';
-					}
-				}
-			},
-			//检查任务-在此结果里对比实验室Id判断是否有实验室
-			async securityAppCheckManageList(planSetId) {
-				let self = this;
+			async securityAppCheckPlanScanCode() {
+				console.log('planSetId',this.newData)
 				let obj = {
-					page: 1,
-					pageSize: 20,
-					planSetId: planSetId,
-					subId: self.newData.subId,
+					subId:this.newData.subId,
+					checkCategory:this.checkCategory,
+				};
+				if(this.newData.planSetId){
+					obj.planSetId = this.newData.planSetId;
 				}
 				const {
 					data
-				} = await securityAppCheckManageList(obj);
+				} = await securityAppCheckPlanScanCode(obj);
 				if (data.code == 200) {
-					//this.shadeList = data.data.records;
-					if (data.data.records[0]) {
-						let manageId = data.data.records[0].manageId;
-						self.securityAppCheckSetOptionList(data.data.records[0],0);
-					} else {
-						self.dialogStatus = 0;
-						this.$parent.goPage('securityCheck',false);
+					if(data.data[0]){
+						if(data.data[1]){
+							//多个
+							this.$set(this,'batchList',data.data);
+							this.$set(this,'pageType',1);
+						}else{
+							//单个
+							let infoData = data.data[0];
+							infoData.pageType = 0;
+							uni.navigateTo({
+								url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' + encodeURIComponent(
+									JSON.stringify(infoData))
+							});
+						}
+					}else{
+						//没有
 						uni.showToast({
 							title: '该实验室暂无检查计划!',
 							icon: "none",
 							mask: true,
 							duration: 2000
 						});
-						return
+						this.dialogClose();
 					}
-			
 				}
 			},
-			//查询检查项
-			async securityAppCheckSetOptionList(item,checkStatus) {
-				let self = this;
-				let upData = item;
-				let obj = {
-					page: 1,
-					pageSize: 20,
-					checkStatus: checkStatus,
-					manageId: upData.manageId,
-				}
-				const {
-					data
-				} = await securityAppCheckSetOptionList(obj);
-				if (data.code == 200 && checkStatus==0) {//先查询待检查数据
-					if (data.data.records[0]) {
-						let infoData = {};
-						infoData.pageType = 0;
-						infoData.itemsStatus = 0;
-						infoData.subName = upData.subName;
-						infoData.checkPlanSetVoList = self.checkPlanSetVoList;
-						infoData.planId = self.planId;
-						infoData.planTitle = self.planTitle;
-						infoData.checkTypeName = self.checkTypeName;
-						infoData.crossCheck = self.crossCheck;
-						
-						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 {
-						self.securityAppCheckSetOptionList(item,2);
-						
-					}
-				}else if (data.code == 200 && checkStatus==2) {//查询检查中数据
-					if (data.data.records[0]) {
-						let infoData = {};
-						infoData.pageType = 0;
-						infoData.itemsStatus = 0;
-						infoData.subName = upData.subName;
-						infoData.checkPlanSetVoList = self.checkPlanSetVoList;
-						infoData.planId = self.planId;
-						infoData.planTitle = self.planTitle;
-						infoData.checkTypeName = self.checkTypeName;
-						infoData.crossCheck = self.crossCheck;
-						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 {
-						self.dialogStatus = 0;
-						this.$parent.goPage('securityCheck',false);
-						uni.showToast({
-							title: '该实验室暂无检查工作!',
-							icon: "none",
-							mask: true,
-							duration: 2000
-						});
-						return;
-					}
-				}
-			},
-
-
 		},
 		onHide() {