dedsudiyu 2 miesięcy temu
rodzic
commit
75f5ad6826

+ 1 - 1
api/request/config.js

@@ -1,7 +1,7 @@
 const config = {
 	// base_url: 'http://192.168.1.43/api', //43服务器
 	base_url: 'http://192.168.1.8/api',//1.8服务器
-	//base_url: 'http://192.168.1.9:8080',//柴
+	// base_url: 'http://192.168.1.9:8080',//柴
 	// base_url: 'http://192.168.1.24:8080',//林总
 	// base_url: 'http://192.168.1.7:8080',//刘波
 	// base_url: 'http://192.168.1.17:8080',//小飞

+ 7 - 0
pages.json

@@ -672,6 +672,13 @@
 						"navigationBarTitleText": "远程开门"
 					}
 				},
+				//应急处置-实验室列表
+				{
+					"path": "views/emergencyEvacuationSubList", //应急疏散
+					"style": {
+						"navigationBarTitleText": "应急处置"
+					}
+				},
 				//应急处置
 				{
 					"path": "views/emergencyEvacuationBig", //应急疏散

+ 124 - 23
pages/component/topWarn.vue

@@ -15,6 +15,7 @@
 	import {
 		laboratoryBigViewSelectTriggerInfo,
 		laboratoryPlanCloseRiskPlan,
+		laboratoryBigViewGetFloorByBigView,
 	} from '@/pages_manage/api/index.js'
 
 	export default {
@@ -141,25 +142,54 @@
 			//结束预案弹窗
 			closePlan() {
 				let self = this;
-				uni.showModal({
-					content: '传感器数据监测异常,确定要强制结束预案?关闭报警后,3分钟内系统不再触发预案报警,请核实确认后再执行此操作?',
-					cancelColor: "#999",
-					confirmColor: "#0183FA",
-					success: function(res) {
-						if (res.confirm) {
-							self.closeRiskPlan();
-						} else if (res.cancel) {
-
+				if(self.planData[1]){
+						let list = [];
+						for(let i=0;i<self.planData.length;i++){
+							list.push(self.planData[i].subName+'-'+self.planData[i].eventName)
 						}
-					}
-				});
+						uni.showActionSheet({
+							itemList: list,
+							success: function(res) {
+								uni.showModal({
+									content: '传感器数据监测异常,确定要强制结束预案?关闭报警后,3分钟内系统不再触发预案报警,请核实确认后再执行此操作?',
+									cancelColor: "#999",
+									confirmColor: "#0183FA",
+									success: function(resData) {
+										if (resData.confirm) {
+											self.closeRiskPlan(res.tapIndex);
+										} else if (resData.cancel) {
+								
+										}
+									}
+								});
+							},
+							fail: function(res) {
+								// console.log(res.errMsg);
+							}
+						});
+				}else{
+					uni.showModal({
+						content: '传感器数据监测异常,确定要强制结束预案?关闭报警后,3分钟内系统不再触发预案报警,请核实确认后再执行此操作?',
+						cancelColor: "#999",
+						confirmColor: "#0183FA",
+						success: function(res) {
+							if (res.confirm) {
+								self.closeRiskPlan(0);
+							} else if (res.cancel) {
+					
+							}
+						}
+					});
+				}
 			},
 			//结束预案方法
-			async closeRiskPlan() {
+			async closeRiskPlan(index) {
+				console.log('index',index)
+				let self = this;
 				const {
 					data
 				} = await laboratoryPlanCloseRiskPlan({
-					eventId: this.planData[0].eventId
+					eventId: self.planData[index].eventId
 				});
 				if (data.code == 200) {
 					uni.showToast({
@@ -168,21 +198,92 @@
 						mask: true,
 						duration: 2000
 					});
-					this.laboratoryBigViewSelectTriggerInfo();
+					self.laboratoryBigViewSelectTriggerInfo();
+				}
+			},
+			//查询实验室是否配置地图
+			async laboratoryBigViewGetFloorByBigView(obj) {
+				const {
+					data
+				} = await laboratoryBigViewGetFloorByBigView({
+					id: obj.floorId
+				})
+				if (data.code == 200) {
+					if(data.data[0]){
+						if(data.data[0].buildLayoutVoList){
+							if (data.data[0].buildLayoutVoList[0]) {
+								uni.navigateTo({
+									url: '/pages_manage/views/emergencyEvacuationBig?item=' + encodeURIComponent(JSON.stringify(
+										obj))
+								});
+							}else{
+								uni.showToast({
+									title: '该实验室楼层未配置地图数据,请联系管理员.',
+									icon: "none",
+									mask: true,
+									duration: 4000
+								});
+							}
+						}else{
+							uni.showToast({
+								title: '该实验室楼层未配置地图数据,请联系管理员.',
+								icon: "none",
+								mask: true,
+								duration: 4000
+							});
+						}
+					}else{
+						uni.showToast({
+							title: '该实验室楼层未配置地图数据,请联系管理员.',
+							icon: "none",
+							mask: true,
+							duration: 4000
+						});
+					}
 				}
 			},
 			//页面跳转
 			goPage() {
-				let obj = {
-					buildId: this.planData[0].buildId,
-					floorId: this.planData[0].floorId,
-					subId: this.planData[0].subId,
-					groupId: this.planData[0].eventId,
+				let self = this;
+				if(self.planData[1]){
+					let list = [];
+					for(let i=0;i<self.planData.length;i++){
+						list.push(self.planData[i].subName+'-'+self.planData[i].eventName)
+					}
+					uni.showActionSheet({
+						itemList: list,
+						success: function(res) {
+							let obj = {
+								buildId: self.planData[res.tapIndex].buildId,
+								floorId: self.planData[res.tapIndex].floorId,
+								subId: self.planData[res.tapIndex].subId,
+								groupId: self.planData[res.tapIndex].eventId,
+							}
+							self.laboratoryBigViewGetFloorByBigView(obj);
+						},
+						fail: function(res) {
+							// console.log(res.errMsg);
+						}
+					});
+				}else{
+					let obj = {
+						buildId: self.planData[0].buildId,
+						floorId: self.planData[0].floorId,
+						subId: self.planData[0].subId,
+						groupId: self.planData[0].eventId,
+					}
+					self.laboratoryBigViewGetFloorByBigView(obj);
 				}
-				uni.navigateTo({
-					url: '/pages_manage/views/emergencyEvacuationBig?item=' + encodeURIComponent(JSON.stringify(
-						obj))
-				});
+				// let obj = {
+				// 	buildId: this.planData[0].buildId,
+				// 	floorId: this.planData[0].floorId,
+				// 	subId: this.planData[0].subId,
+				// 	groupId: this.planData[0].eventId,
+				// }
+				// uni.navigateTo({
+				// 	url: '/pages_manage/views/emergencyEvacuationBig?item=' + encodeURIComponent(JSON.stringify(
+				// 		obj))
+				// });
 			},
 		},
 		onHide() {

+ 23 - 0
pages/views/home/home.vue

@@ -29,6 +29,8 @@
 			uni.removeStorageSync('planSensorList');
 			if (uni.getStorageSync('token') && uni.getStorageSync('userId') && uni.getStorageSync('userType')) {
 				this.userType = uni.getStorageSync('userType')
+				console.log('检查用户个人信息/初始密码');
+				this.passwrodTips();
 			} else {
 				uni.removeStorageSync('token');
 				uni.removeStorageSync('userId');
@@ -39,6 +41,27 @@
 			}
 		},
 		methods: {
+			//初始密码修改提示
+			passwrodTips(){
+				uni.showModal({
+					title: '提示',
+					cancelColor: '#999999',
+					confirmColor: '#0183FA',
+					content: '为了保证信息安全,是否修改默认密码',
+					cancelText:'稍后修改',
+					confirmText:'修改密码',
+					success(res) {
+						if (res.confirm) {
+							console.log('确定')
+							uni.navigateTo({
+								url: '/pages_basics/views/editPassword/editPassword',
+							});
+						} else if (res.cancel) {
+							console.log('取消')
+						}
+					}
+				})
+			},
 		},
 		onHide() {
 			this.userType = 0;

+ 0 - 22
pages/views/pupilPage/pupilHome.vue

@@ -89,7 +89,6 @@
 		},
 		created() {},
 		mounted() {
-			this.passwrodTips();
 		},
 		methods: {
 			goPage(type) {
@@ -184,27 +183,6 @@
 					}
 				});
 			},
-			//初始密码修改提示
-			passwrodTips(){
-				uni.showModal({
-					title: '提示',
-					cancelColor: '#999999',
-					confirmColor: '#0183FA',
-					content: '为了保证信息安全,是否修改默认密码',
-					cancelText:'稍后修改',
-					confirmText:'修改密码',
-					success(res) {
-						if (res.confirm) {
-							console.log('确定')
-							uni.navigateTo({
-								url: '/pages_basics/views/editPassword/editPassword',
-							});
-						} else if (res.cancel) {
-							console.log('取消')
-						}
-					}
-				})
-			},
 		}
 	}
 </script>

+ 4 - 23
pages/views/teacherPage/teacherHome.vue

@@ -122,7 +122,6 @@
 			}
 		},
 		mounted() {
-			this.passwrodTips();
 		},
 		methods: {
 			goHome() {
@@ -194,8 +193,11 @@
 					});
 				} else if (type == 'emergencyDisposal') {
 					//应急处置
+					// uni.navigateTo({
+					// 	url: "/pages_manage/views/emergencyEvacuationBig",
+					// });
 					uni.navigateTo({
-						url: "/pages_manage/views/emergencyEvacuationBig",
+						url: "/pages_manage/views/emergencyEvacuationSubList",
 					});
 				} else if (type == 'cageSiteManagement') {
 					//笼位管理
@@ -250,27 +252,6 @@
 					}
 				});
 			},
-			//初始密码修改提示
-			passwrodTips(){
-				uni.showModal({
-					title: '提示',
-					cancelColor: '#999999',
-					confirmColor: '#0183FA',
-					content: '为了保证信息安全,是否修改默认密码',
-					cancelText:'稍后修改',
-					confirmText:'修改密码',
-					success(res) {
-						if (res.confirm) {
-							console.log('确定')
-							uni.navigateTo({
-								url: '/pages_basics/views/editPassword/editPassword',
-							});
-						} else if (res.cancel) {
-							console.log('取消')
-						}
-					}
-				})
-			},
 		}
 	}
 </script>

+ 22 - 4
pages_basics/views/completeInformation/completeInformation.vue

@@ -55,8 +55,11 @@
 			<view class="shade-big-box">
 				<view class="shade-top-box">
 					<view class="shade-top-left-box">
-						<uni-icons type="search" class="icon-view" size="20" color="#999999"></uni-icons>
-						<input class="input-top-p" v-model="getData.searchValue" maxlength="10" focus placeholder="请输入导师">
+						<uni-icons type="search" class="icon-view-left" size="20" color="#999999"></uni-icons>
+						<input class="input-top-p"  @confirm="searchButton()"
+						v-model="getData.searchValue" maxlength="10" focus placeholder="请输入导师">
+						<uni-icons v-if="getData.searchValue" @click="clearButton()"
+						type="clear" class="icon-view-right" size="20" color="#999999"></uni-icons>
 					</view>
 					<view class="shade-top-right-button" @click="searchButton()">搜索</view>
 				</view>
@@ -172,6 +175,15 @@
 				})
 			},
 			//搜索按钮
+			clearButton(){
+				this.$set(this, 'getDataType', false);
+				this.$set(this, 'dataList', []);
+				this.$set(this, 'total', 0);
+				this.$set(this.getData, 'searchValue','');
+				this.$set(this.getData, 'page', 1);
+				this.systemSubjectGetAppSubject();
+			},
+			//搜索按钮
 			searchButton(){
 				this.$set(this, 'getDataType', false);
 				this.$set(this, 'dataList', []);
@@ -372,14 +384,20 @@
 						height:80rpx;
 						margin:20rpx 0 0 30rpx;
 						width:580rpx;
-						.icon-view{
+						.icon-view-left{
 							margin:20rpx 21rpx 0 18rpx;
 							color:#999999;
 						}
 						.input-top-p{
 							line-height:80rpx;
 							height:80rpx;
-							width:500rpx;
+							width:420rpx;
+						}
+						.icon-view-right{
+							width:80rpx;
+							height:80rpx;
+							line-height:80rpx;
+							text-align: center;
 						}
 					}
 					.shade-top-right-button{

+ 8 - 0
pages_manage/api/index.js

@@ -99,6 +99,14 @@ export const laboratoryBigViewGetBuildByBigView = (data) => {
 		data: data,
 	})
 };
+//应急疏散-新实验室列表(替代原楼栋-楼层-实验室页面)
+export const laboratorySubRelInfoSelectAdminBySubPage  = (data) => {
+    return apiResquest({
+        url: `/laboratory/subRelInfo/selectAdminBySubPage`,
+        method: 'post',
+        data: data
+    })
+};
 /****************疏散相关接口****************/
 //查询当前用户下的预案触发数据
 export const laboratoryBigViewSelectTriggerInfo = (data) => {

+ 4 - 4
pages_manage/views/accessQualification/accessQualificationInfo.vue

@@ -10,7 +10,7 @@
 				<view>申请人:</view>
 				<view>{{newData.labSecurityApply.userName}}</view>
 			</view>
-			<view class="user-info-box-min">
+			<view class="user-info-box-min" style="flex-direction: column;">
 				<view>申请时限:</view>
 				<view>{{newData.labSecurityApply.validBeginTime}}至{{newData.labSecurityApply.validEndTime}}</view>
 			</view>
@@ -19,7 +19,7 @@
 				<view>{{newData.labSecurityApply.applyCause==null?'':newData.labSecurityApply.applyCause}}</view>
 			</view>
 		</view>
-		<view class="user-info-box">
+		<view class="user-info-box" style="margin-bottom:20rpx;">
 			<view class="user-info-box_title">
 				<view style="color: red;">*</view>身份信息:(关联学生信息材料)
 			</view>
@@ -39,11 +39,11 @@
 				<view>物理卡号:</view>
 				<view>{{newData.sysUser.cardNum}}</view>
 			</view> -->
-			<view class="user-info-box-min">
+			<view class="user-info-box-min" v-if="newData.sysUser.gradeName">
 				<view>班级:</view>
 				<view>{{newData.sysUser.gradeName}}</view>
 			</view>
-			<view class="user-info-box-min">
+			<view class="user-info-box-min" v-if="newData.sysUser.tutorUserName">
 				<view>导师:</view>
 				<view>{{newData.sysUser.tutorUserName}}</view>
 			</view>

+ 62 - 42
pages_manage/views/emergencyEvacuationBig.vue

@@ -248,28 +248,41 @@
 				groupId: null,
 				planStatus: false,
 				warnData: null,
+				pageData:null,
 			}
 		},
 		onLoad(option) {
-			console.log('option', option);
 			if (option.item) {
 				let obj = JSON.parse(decodeURIComponent(option.item));
-				this.$set(this, 'warnData', obj);
-				this.$set(this, 'buildingId', obj.buildId);
-				this.$set(this, 'deptId', obj.buildId);
-				this.$set(this, 'floorId', obj.floorId);
-				this.$set(this, 'subId', obj.subId);
-				this.$set(this.itemData, 'subjectId', obj.subId);
-				this.$set(this, 'groupId', obj.groupId);
-				this.$set(this, 'pageType', 2);
+				// console.log('obj',obj)
+				if(obj.type == 'skip'){
+					// 新实验室列表跳转进入逻辑
+					this.$set(this, 'pageData', obj);
+					this.$set(this, 'buildingId', obj.buildId);
+					this.$set(this, 'deptId', obj.buildId);
+					this.$set(this, 'floorId', obj.floorId);
+					this.$set(this, 'subId', obj.subId);
+					this.$set(this.itemData, 'subjectId', obj.subId);
+					this.$set(this, 'pageType', 2);
+				}else{
+					this.$set(this, 'warnData', obj);
+					this.$set(this, 'buildingId', obj.buildId);
+					this.$set(this, 'deptId', obj.buildId);
+					this.$set(this, 'floorId', obj.floorId);
+					this.$set(this, 'subId', obj.subId);
+					this.$set(this.itemData, 'subjectId', obj.subId);
+					this.$set(this, 'groupId', obj.groupId);
+					this.$set(this, 'pageType', 2);
+				}
 			}
 		},
 		onShow() {
-			if (this.warnData) {
-				this.getDataA();
-			} else {
-				this.laboratoryBigViewGetBuildByBigView();
-			}
+			// if (this.warnData) {
+			// 	this.getDataA();
+			// } else {
+			// 	this.laboratoryBigViewGetBuildByBigView();
+			// }
+			this.getDataA();
 			this.getRedisEvacuation();
 		},
 		onUnload() {},
@@ -313,9 +326,16 @@
 			},
 			//返回按钮
 			backButton() {
-				let self = this;
-				this.$set(this, 'pageType', 1);
-				this.laboratoryBigViewGetBuildByBigView();
+				// let self = this;
+				// this.$set(this, 'pageType', 1);
+				// this.laboratoryBigViewGetBuildByBigView();
+				if(this.pageData){
+					uni.navigateBack();
+				}else{
+					uni.redirectTo({
+						url: "/pages_manage/views/emergencyEvacuationSubList",
+					});
+				}
 			},
 			//结束预案
 			closePlan() {
@@ -361,7 +381,7 @@
 				});
 			},
 			async closeRiskPlan() {
-				console.log('this.groupId',this.groupId);
+				// console.log('this.groupId',this.groupId);
 				const {
 					data
 				} = await laboratoryPlanCloseRiskPlan({
@@ -552,7 +572,7 @@
 			},
 			//录制
 			recordButton(e) {
-				console.log("按下")
+				// console.log("按下")
 				let self = this;
 				let num = 0;
 				for (let i = 0; i < self.trumpetList.length; i++) {
@@ -570,7 +590,7 @@
 					return
 				}
 				this.liveType = true;
-				console.log('录制', e)
+				// console.log('录制', e)
 				this.startPoint = e.touches[0]; //记录长按时开始点信息,后面用于计算上划取消时手指滑动的距离。
 				const options = {
 					duration: 10000,
@@ -582,10 +602,10 @@
 				}
 				this.recorderManager.start(options); //开始录音
 				this.recorderManager.onStart(() => {
-					console.log('recorder start')
+					// console.log('recorder start')
 				})
 				this.recorderManager.onError((res) => {
-					console.log(res);
+					// console.log(res);
 				})
 				wx.showToast({
 					title: "正在录音,上划取消发送",
@@ -596,7 +616,7 @@
 			},
 			//取消
 			cancelButton(e) {
-				console.log("移动")
+				// console.log("移动")
 				let self = this;
 				let num = 0;
 				for (let i = 0; i < self.trumpetList.length; i++) {
@@ -608,7 +628,7 @@
 					return
 				}
 				this.liveType = false;
-				console.log('取消', e)
+				// console.log('取消', e)
 				let moveLenght = e.touches[e.touches.length - 1].clientY - this.startPoint.clientY; //移动距离
 				if (Math.abs(moveLenght) > 50) {
 					wx.showToast({
@@ -628,7 +648,7 @@
 			},
 			//发送
 			sendButton(e) {
-				console.log("松开")
+				// console.log("松开")
 				let self = this;
 				let num = 0;
 				for (let i = 0; i < self.trumpetList.length; i++) {
@@ -641,16 +661,16 @@
 					return
 				}
 				this.liveType = false;
-				console.log('发送', e)
+				// console.log('发送', e)
 				wx.hideToast(); //结束录音、隐藏Toast提示框
 				this.recorderManager.stop(); //结束录音
 				this.recorderManager.onStop((res) => {
 					if (!this.sendLock) {
-						console.log('1', this.recorderManager)
+						// console.log('1', this.recorderManager)
 						this.uploadImg(res.tempFilePath);
 					}
-					console.log('停止录音', res.tempFilePath)
-					console.log("sendLock", this.sendLock);
+					// console.log('停止录音', res.tempFilePath)
+					// console.log("sendLock", this.sendLock);
 				})
 			},
 			//上传MP3
@@ -669,7 +689,7 @@
 					success: (uploadFileRes) => {
 						let res = JSON.parse(uploadFileRes.data);
 						if (res.code == 200) {
-							console.log("上传成功", res)
+							// console.log("上传成功", res)
 							let url = 'http://'+uni.getStorageSync('mqttIntranetUrl').split(':')[0]+'/'+res.data.url
 							self.iotAppSpeakerPlayVoice(url);
 						} else {
@@ -716,13 +736,13 @@
 			},
 			//监听应急疏散数据变更
 			getMqttLineData(val) {
-				console.log('收到疏散MQTT')
+				// console.log('收到疏散MQTT')
 				let self = this;
 				if (val.EXIT_LINE_MESSAGE) {
-					console.log('数据改变')
+					// console.log('数据改变')
 					this.evacuate();
 				} else {
-					console.log('应急疏散已结束')
+					// console.log('应急疏散已结束')
 					uni.showToast({
 						title: '应急疏散已结束',
 						icon: "none",
@@ -800,7 +820,7 @@
 					];
 					return "rgba(" + rgba.toString() + ")";
 				};
-				console.log('data', data)
+				// console.log('data', data)
 				if (data.code == 200) {
 					if (data.data[0].buildLayoutVoList[0]) {
 						let list = JSON.parse(data.data[0].labExitLineVo.layoutJoinData)
@@ -993,9 +1013,9 @@
 								} else {
 									self.endEvacuation();
 								}
-								console.log('用户点击确定');
+								// console.log('用户点击确定');
 							} else if (res.cancel) {
-								console.log('用户点击取消');
+								// console.log('用户点击取消');
 							}
 						}
 					});
@@ -1020,7 +1040,7 @@
 				const {
 					data
 				} = await laboratoryExitLineExecuteEvacuation(obj)
-				console.log('data', data)
+				// console.log('data', data)
 				if (data.code == 200) {
 					this.$set(this, 'isEvacuate', false);
 					uni.showToast({
@@ -1041,7 +1061,7 @@
 				const {
 					data
 				} = await laboratoryexitLineEndEvacuation(obj)
-				console.log('data', data)
+				// console.log('data', data)
 				if (data.code == 200) {
 					this.$set(this, 'isEvacuate', true);
 					uni.showToast({
@@ -1089,22 +1109,22 @@
 				this.client.on("connect", e => {
 					this.client.subscribe(this.mtopic, (err) => {
 						if (!err) {
-							console.log("预案订阅成功:" + this.mtopic);
+							// console.log("预案订阅成功:" + this.mtopic);
 						} else {
 							// console.log("连接错误:" + err);
 						}
 					});
 					this.client.subscribe(this.mtopicOne, (err) => {
 						if (!err) {
-							console.log("疏散订阅成功:" + this.mtopicOne);
+							// console.log("疏散订阅成功:" + this.mtopicOne);
 						} else {
 							// console.log("连接错误:" + err);
 						}
 					});
 				});
 				this.client.on("message", (topic, message) => {
-					console.log('message', message);
-					console.log('topic,', topic);
+					// console.log('message', message);
+					// console.log('topic,', topic);
 					if (message) {
 						if (topic == this.mtopic) {
 							//预案触发

+ 351 - 0
pages_manage/views/emergencyEvacuationSubList.vue

@@ -0,0 +1,351 @@
+<template>
+	<view id="emergencyEvacuationSubList">
+		<view class="top-search-max-box">
+			<view class="left-search-box">
+				<uni-icons class="icon-view-left" type="search" size="20"></uni-icons>
+				<input class="search-input" @confirm="searchButton()"
+				v-model="getData.subName" maxlength="10" focus placeholder="搜索实验室/房间号">
+				<uni-icons v-if="getData.subName" @click="clearButton()"
+				type="clear" class="icon-view-right" size="20" color="#999999"></uni-icons>
+			</view>
+			<view class="right-search-button" @click="searchButton()">搜索</view>
+		</view>
+		<scroll-view scroll-y @scrolltolower="scrollGet" class="bottom-for-max-box">
+			<view class="for-max-big-sub-box" v-for="(item,index) in dataList" :key="index">
+				<view class="left-big-box">
+					<view class="sub-name-box">
+						{{item.subName}}{{item.roomName?'('+item.roomName+')':''}}
+					</view>
+					<view class="sub-type-box">
+						<view v-if="item.levelName" class="level-p"
+							:style="'border:1px solid '+item.levelColor+';color:'+item.levelColor+';'">{{item.levelName}}</view>
+						<view v-if="item.typeName" class="type-p">{{item.typeName}}</view>
+						<view v-if="item.moldName" class="type-p">{{item.moldName}}</view>
+						<view v-if="item.subArea" class="type-p">{{item.subArea}}m²</view>
+					</view>
+					<view class="sub-address-box">
+						<img src="@/pages_manage/images/icon_14.png">
+						<view>
+							{{item.deptName?item.deptName:''}}{{item.deptName&&item.buildName?'丨':''}}{{item.buildName?item.buildName:''}}{{item.buildName&&item.floorName?'-':''}}{{item.floorName?item.floorName:''}}
+						</view>
+					</view>
+				</view>
+				<view class="right-button" @click="goPage(item)">
+					<view></view>
+					<view>确认</view>
+					<view></view>
+				</view>
+			</view>
+			<view class="get-data-null-p" v-if="getDataType">- 没有更多数据 -</view>
+			<view class="get-data-null-p" v-else="getDataType">- 滑动加载更多 -</view>
+		</scroll-view>
+	</view>
+</template>
+
+
+<script>
+	import {
+		laboratorySubRelInfoSelectAdminBySubPage,
+		laboratoryBigViewGetFloorByBigView,
+	} from '@/pages_manage/api/index.js'
+	export default {
+		data() {
+			return {
+				dataList: [],
+				total: 0,
+				getData: {
+					page: 1,
+					pageSize: 10,
+					subName: '',
+				},
+				getDataType: false,
+			}
+		},
+		created() {
+
+		},
+		mounted() {
+			this.laboratorySubRelInfoSelectAdminBySubPage();
+		},
+		methods: {
+			//跳转
+			goPage(item) {
+				if(!item.buildId){
+					uni.showToast({
+						title: '该实验室为绑定楼栋,请联系管理员.',
+						icon: "none",
+						mask: true,
+						duration: 2000
+					});
+					return
+				}else if(!item.floorId){
+					uni.showToast({
+						title: '该实验室为绑定楼层,请联系管理员.',
+						icon: "none",
+						mask: true,
+						duration: 2000
+					});
+					return
+				}else if(!item.subId){
+					uni.showToast({
+						title: '实验室数据异常,请联系管理员.',
+						icon: "none",
+						mask: true,
+						duration: 2000
+					});
+					return
+				}
+				let obj = {
+					type: 'skip',
+					buildId: item.buildId,
+					floorId: item.floorId,
+					subId: item.subId,
+				};
+				this.laboratoryBigViewGetFloorByBigView(obj);
+			},
+			
+			async laboratoryBigViewGetFloorByBigView(obj) {
+				const {
+					data
+				} = await laboratoryBigViewGetFloorByBigView({
+					id: obj.floorId
+				})
+				if (data.code == 200) {
+					if(data.data[0]){
+						if(data.data[0].buildLayoutVoList){
+							if (data.data[0].buildLayoutVoList[0]) {
+								uni.navigateTo({
+									url: '/pages_manage/views/emergencyEvacuationBig?item=' + encodeURIComponent(JSON.stringify(obj))
+								});
+							}else{
+								uni.showToast({
+									title: '该实验室楼层未配置地图数据,请联系管理员.',
+									icon: "none",
+									mask: true,
+									duration: 4000
+								});
+							}
+						}else{
+							uni.showToast({
+								title: '该实验室楼层未配置地图数据,请联系管理员.',
+								icon: "none",
+								mask: true,
+								duration: 4000
+							});
+						}
+					}else{
+						uni.showToast({
+							title: '该实验室楼层未配置地图数据,请联系管理员.',
+							icon: "none",
+							mask: true,
+							duration: 4000
+						});
+					}
+				}
+			},
+			//搜索按钮
+			clearButton(){
+				this.$set(this, 'getDataType', false);
+				this.$set(this, 'dataList', []);
+				this.$set(this, 'total', 0);
+				this.$set(this.getData, 'subName','');
+				this.$set(this.getData, 'page', 1);
+				this.laboratorySubRelInfoSelectAdminBySubPage();
+			},
+			//搜索按钮
+			searchButton() {
+				this.$set(this, 'getDataType', false);
+				this.$set(this, 'dataList', []);
+				this.$set(this, 'total', 0);
+				this.$set(this.getData, 'page', 1);
+				this.laboratorySubRelInfoSelectAdminBySubPage();
+			},
+			//滚动加载事件
+			scrollGet() {
+				let self = this;
+				if (self.total / self.getData.pageSize <= self.getData.page) {
+					this.$set(this, 'getDataType', true);
+				} else {
+					this.getData.page += 1;
+					this.$nextTick(() => {
+						this.laboratorySubRelInfoSelectAdminBySubPage();
+					})
+				}
+			},
+			//获取实验室
+			async laboratorySubRelInfoSelectAdminBySubPage() {
+				let self = this;
+				const {
+					data
+				} = await laboratorySubRelInfoSelectAdminBySubPage(this.getData);
+				if (data.code == 200) {
+					if (self.getData.page == 1) {
+						this.dataList = data.data.records;
+						this.total = data.data.total;
+						if (data.data.total / self.getData.pageSize <= self.getData.page) {
+							this.$set(this, 'getDataType', true);
+						}
+					} else {
+						this.dataList = [...this.dataList, ...data.data.records]
+						this.total = data.data.total;
+						if (data.data.total / self.getData.pageSize <= self.getData.page) {
+							this.$set(this, 'getDataType', true);
+						}
+					}
+				}
+			},
+		},
+	}
+</script>
+
+<style lang="stylus" scoped>
+	#emergencyEvacuationSubList {
+		height: 100%;
+		display flex;
+		flex-direction column;
+		overflow: hidden;
+
+		.top-search-max-box {
+			height: 130rpx;
+			display: flex;
+			background-color: #fff;
+			margin-bottom: 20rpx;
+
+			.left-search-box {
+				display: flex;
+				height: 78rpx;
+				width: 590rpx;
+				border: 1px solid #E0E0E0;
+				border-radius: 50rpx;
+				margin: 25rpx 9rpx 0 30rpx;
+
+				.icon-view-left {
+					margin: 18rpx 18rpx;
+				}
+
+				.search-input {
+					width: 430rpx;
+					height: 78rpx;
+					line-height: 78rpx;
+				}
+				.icon-view-right{
+					width:80rpx;
+					height:80rpx;
+					line-height:80rpx;
+					text-align: center;
+				}
+			}
+
+			.right-search-button {
+				width: 110rpx;
+				line-height: 100rpx;
+				margin: 15rpx 0;
+				color: #0183FA;
+				text-align: center;
+			}
+		}
+
+		.bottom-for-max-box {
+			flex: 1;
+			overflow-x: hidden;
+			overflow-y: scroll;
+
+			.for-max-big-sub-box {
+				background-color: #fff;
+				border-radius: 20rpx;
+				margin: 0 30rpx 20rpx;
+				overflow: hidden;
+				display: flex;
+
+				.left-big-box {
+					flex: 1;
+					overflow: hidden;
+					word-wrap: break-word;
+					/* 旧版本浏览器支持 */
+					overflow-wrap: break-word;
+					/* 标准属性 */
+					padding: 20rpx 0 26rpx 37rpx;
+
+					.sub-name-box {
+						font-size: 30rpx;
+					}
+
+					.sub-type-box {
+						margin: 17rpx 0 26rpx 0;
+
+						view:nth-child(1) {
+							margin-left: 0 !important;
+						}
+
+						view {
+							font-size: 24rpx;
+							text-align: center;
+							display: inline-block;
+							margin: 10rpx 0 0 10rpx;
+							border-radius: 10rpx;
+							padding: 0 15rpx;
+						}
+
+						.level-p {
+							height: 38rpx;
+							line-height: 38rpx;
+						}
+
+						.type-p {
+							height: 40rpx;
+							line-height: 38rpx;
+							background-color: rgba(1, 131, 250, 0.2);
+							color: #0183FA;
+						}
+					}
+
+					.sub-address-box {
+						display: flex;
+
+						img {
+							display: inline-block;
+							height: 30rpx;
+							width: 30rpx;
+							margin: 4rpx 14rpx 0 0;
+						}
+
+						view {
+							flex: 1;
+							font-size: 28rpx;
+							line-height: 39rpx;
+							margin-right: 20rpx;
+						}
+					}
+				}
+
+				.right-button {
+					width: 100rpx;
+					display: flex;
+					flex-direction: column;
+					background-color: #CCE6FE;
+
+					view:nth-child(1) {
+						flex: 1;
+					}
+
+					view:nth-child(2) {
+						font-size: 24rpx;
+						color: #0183FA;
+						text-align: center;
+					}
+
+					view:nth-child(3) {
+						flex: 1;
+					}
+				}
+			}
+
+			.get-data-null-p {
+				text-align: center;
+				line-height: 100rpx;
+				padding-bottom: 80px;
+				color: #999;
+			}
+		}
+	}
+</style>

+ 2 - 2
pages_student/views/accessApplication/applicationDetails.vue

@@ -36,11 +36,11 @@
 				<view>物理卡号:</view>
 				<view>{{subjectData.sysUser.cardNum}}</view>
 			</view> -->
-			<view class="user-info-box-min">
+			<view class="user-info-box-min" v-if="subjectData.sysUser.gradeName">
 				<view>班级:</view>
 				<view>{{subjectData.sysUser.gradeName}}</view>
 			</view>
-			<view class="user-info-box-min">
+			<view class="user-info-box-min" v-if="subjectData.sysUser.tutorUserName">
 				<view>导师:</view>
 				<view>{{subjectData.sysUser.tutorUserName}}</view>
 			</view>