<!-- 远程开门 -->
<template>
	<view id="empowerOpen">
		<view class="page-one" v-if="pageType==1">
			<view class="header">
				<view class="header-n">
					<input class="header-l" type="text" @change="subNameChange()" v-model="getData.searchValue" placeholder="实验室名称">
					<view class="header-r" v-if="getData.searchValue" @click="clearSearch()" >
						<img src="@/pages/images/clear.png" />
					</view>
					
				</view>
			</view>
			<view class="list">
				<view class="list-li" v-for="(item,index) in dataList">
					<view class="list-li-l">{{item.subName}}（{{item.roomNum}}）</view>
					<view class="list-li-r" @click="openClick(item)">开门</view>
				</view>
			</view>
		</view>
		<view class="success" v-if="successVisible">
			<view class="null-box" @click="closeTip()"></view>
			<view class="panel">
				<img class="panel-t" v-if="authorizeStatus==1" src="@/pages/images/icon_kcxq_cg.png" />
				<img class="panel-t" v-if="authorizeStatus==2" src="@/pages/images/icon_kcxq_sb.png" />
				<view class="panel-m">{{authorizeStatus==1?'开门成功':'开门失败'}}</view>
				<view class="panel-b">({{count}}S)</view>
			</view>
		</view>
	</view>

</template>

<script>
	import {
		config
	} from '@/api/request/config.js'
	import {
		systemSubjectGetAppSubject,
		laboratoryApplyRemoteOpenLock,
	} from '@/pages_manage/api/index.js'
	export default {
		components: {

		},
		data() {
			return {
				pageType: 1,
				baseUrl: config.base_url,
				getData: {
					searchValue: '',
					adminId: uni.getStorageSync('userId'),
				},
				newData: {

				},
				addForm:{
					
				},
				dataList:[],
				authorizeStatus:2,//1成功 2失败
				successVisible: false,
				timer: null,
				count: '',


			}
		},
		onLoad(option) {

		},
		onShow() {

		},
		mounted() {
			this.systemSubjectGetAppSubject();
		},
		methods: {
			//开门
			async openClick(row){
				let self = this;
				let obj={
					labId:row.subId,
				}
				const {
					data
				} = await laboratoryApplyRemoteOpenLock(obj);
				if (data.code == 200) {
					this.$set(this, 'authorizeStatus', 1)
					this.$set(this, 'successVisible', true)
					this.getCode();
				}else{
					this.$set(this, 'authorizeStatus', 2)
					this.$set(this, 'successVisible', true)
					this.getCode();
				}
			},
			//获取实验室
			async systemSubjectGetAppSubject() {
				let self = this;
				const {
					data
				} = await systemSubjectGetAppSubject(this.getData);
				if (data.code == 200) {
					this.dataList = data.data;
				}
			},
			//实验室搜索
			subNameChange() {
				this.systemSubjectGetAppSubject();
			},
			//实验室搜索框清除
			clearSearch(){
				this.getData.searchValue='';
				this.systemSubjectGetAppSubject();
			},
			cancelClick(){
				
			},
			submitForm(){
				this.$set(this,'successVisible',true)
				this.getCode();
			},
			//关闭弹框倒计时
			getCode() {
				let self=this;
				const TIME_COUNT = 3;
				if (!this.timer) {
					this.count = TIME_COUNT;
					this.show = false;
					this.timer = setInterval(() => {
						if (this.count > 0 && this.count <= TIME_COUNT) {
							this.count -= 1;
						} else {
							self.successVisible=false;
							clearInterval(this.timer);
							this.timer = null;
						}
					}, 1000);
				}
			},
			closeTip() {
				this.$set(this, 'successVisible', false)
			},
		}
	}
</script>

<style lang="stylus" scoped>
	#empowerOpen {

		.page-one {
			.header {
				width: 749rpx;
				height: 120rpx;
				background: #FFFFFF;
				padding: 20rpx 30rpx;
				box-sizing: border-box;
				border-bottom: 1rpx solid #D8D8D8;
				
				.header-n{
					position: relative;
					width: 690rpx;
					height: 80rpx;
					border-radius: 10rpx 10rpx 10rpx 10rpx;
					border: 1rpx solid #E0E0E0;
					padding-left: 20rpx;
					box-sizing: border-box;
					.header-l {
						width: 590rpx;
						height: 80rpx;
					}
					.header-r{
						position: absolute;
						top: 0rpx;
						right: 0rpx;
						width: 68rpx;
						height: 80rpx;
						>img{
							width: 24rpx;
							height: 24rpx;
							margin-top: 24rpx;
							margin-left: 24rpx;
						}
					}
				}
				
			}

			.list {
				padding: 0 30rpx;
				box-sizing: border-box;
				background: #fff;

				.list-li {
					height: 90rpx;
					display: flex;
					justify-content: space-between;
					align-items: center;
					border-bottom: 1rpx solid #D8D8D8;

					.list-li-l {
						flex: 1;
						font-family: PingFang SC, PingFang SC;
						font-weight: 400;
						font-size: 30rpx;
						color: #333333;
						line-height: 42rpx;
					}

					.list-li-r {
						font-family: PingFang SC, PingFang SC;
						font-weight: 400;
						font-size: 28rpx;
						color: #0183FA;
						line-height: 39rpx;
					}
				}
				.list-li:last-child{
					border-bottom: none;
				}
			}

		}

		
		.success {
			height: 100%;
			width: 100%;
			position: fixed;
			top: 0;
			display: flex;
			flex-direction: column;
			z-index: 10;
			background: rgba(0, 0, 0, 0.2);

			.null-box {
				flex: 1;
			}

			.panel {
				width: 550rpx;
				height: 255rpx;
				background: #FFFFFF;
				border-radius: 20rpx 20rpx 20rpx 20rpx;
				position: absolute;
				top: 320rpx;
				left: 100rpx;
				display: flex;
				flex-direction: column;
				align-items: center;
				.panel-t{
					width: 80rpx;
					height: 80rpx;
					margin: 40rpx 0 18rpx 0;
				}
				.panel-m{
					font-family: PingFang SC, PingFang SC;
					font-weight: 400;
					font-size: 30rpx;
					color: #3D3D3D;
					line-height: 42rpx;
					margin-bottom: 8rpx;
				}
				.panel-b{
					font-family: PingFang SC, PingFang SC;
					font-weight: 400;
					font-size: 30rpx;
					color: #999999;
					line-height: 42rpx;
				}
			}
		}
	}
</style>
