<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" @getResult="getScanResult" :placeholder='title' :clearResult="false"
						:boxFocus="true" :isShowHistory="isShowHistory">
					</win-com-scan>
				</view>
			</view>
		</view>
	</uni-popup>
	<comMessage ref="comMessage"></comMessage>
</template>

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

		created() {

		},
		methods: {
			openScanPopup() {
				this.$refs.popup.open('bottom')
			},
			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;
				getBalanceByContainer(this.code).then(res => {
					uni.hideLoading();
					if (res.data.length > 0) {
						this.containerInfo = res.data[0];
						this.callBack();
					} 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>
