<template>
	<uni-popup ref="popup" :maskClick='false'>
		<view class="popup_box">
			<view class="pop_title uni-flex space-between">
				<view class="" style="font-size: 35rpx;">
					扫描{{title}}
				</view>
				<view>
					<image class=" icons_scan_close" src="/static/icons/icons_scan_close.svg" @click="closeScanPopup()">
					</image>
				</view>
			</view>
			<view class="">
				<view class="">
					<win-com-scan ref="scan" headerType='HCQ' @getResult="getScanResult" :placeholder='title' :clearResult="true"
						:boxFocus="true" :isShowHistory="isShowHistory">
					</win-com-scan>
				</view>
			</view>
		</view>
	</uni-popup>
	<comMessage ref="comMessage"></comMessage>
</template>

<script>
	import {
		getContainerByNumber
	} from '@/api/request2.js';
	import winComScan from '@/mycomponents/scan/winComScan.vue'
	export default {
		components: {
			winComScan,
		},
		emits: ["getContainer"],
		props: {
			title: {
				type: String,
				default: '器具'
			},
			isShowHistory: {
				type: Boolean,
				default: false
			}
		},
		data() {
			return {
				code: '',
				containerInfo: {}
			}
		},

		created() {

		},
		methods: {
			openScanPopup() {
				setTimeout(res => {
					this.$refs.popup.open('bottom')
				}, 500)
			},
			closeScanPopup() {
				this.$refs.popup.close()
			},
			scanClick() {
				this.$refs.scan.clickScanMsg();
			},
			cancelClick() {
				this.$refs.scan.clearScanValue();
			},
			getScanResult(result) {
				uni.showLoading({
					title: '扫描中...',
					mask: true
				});
				let label = result.label;
				this.code = label.container;
				getContainerByNumber(this.code).then(res => {
					uni.hideLoading();
					if (res.data.list.length > 0) {
						this.containerInfo = res.data.list[0];
						if (this.containerInfo.containerStatus == 'USED') {
							this.callBack();
						} else {
							this.showErrorMessage("器具[" + this.code + "]状态是[" + this.containerInfo.status + "],不可以绑定")
						}
					} else {
						this.showErrorMessage("未查找到器具[" + this.code + "]")
					}
				}).catch(error => {
					uni.hideLoading();
					this.showErrorMessage(error)
				})

			},
			callBack() {
				this.closeScanPopup();
				this.$emit("getContainer", this.containerInfo);
			},
			getfocus() {
				this.$refs.scan.getfocus();
			},
			losefocus() {
				this.$refs.scan.losefocus();
			},
			showErrorMessage(message) {
				setTimeout(r => {
					this.losefocus();
					this.$refs.comMessage.showErrorMessage(message, res => {
						this.code = '';
						this.getfocus();
					})
				})
			}
		}
	}
</script>

<style>
</style>
