You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
<template>
|
|
|
|
<view class="">
|
|
|
|
<u-popup v-model="isShow" mode='bottom'>
|
|
|
|
<view class="popup_box">
|
|
|
|
<view class="pop_title uni-flex space-between">
|
|
|
|
<view class="">
|
|
|
|
扫描{{title}}
|
|
|
|
</view>
|
|
|
|
<view class="">
|
|
|
|
<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" :isShowHistory="false">
|
|
|
|
</win-com-scan>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</u-popup>
|
|
|
|
</view>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
|
import {
|
|
|
|
ref,
|
|
|
|
getCurrentInstance
|
|
|
|
} from 'vue'
|
|
|
|
import winComScan from '@/mycomponents/scan/winComScan.vue'
|
|
|
|
const props = defineProps({
|
|
|
|
title: {
|
|
|
|
type: String,
|
|
|
|
default: ''
|
|
|
|
},
|
|
|
|
isShowRecord: {
|
|
|
|
type: Boolean,
|
|
|
|
default: true
|
|
|
|
}
|
|
|
|
})
|
|
|
|
const code = ref('')
|
|
|
|
const isShow = ref(false)
|
|
|
|
const expand = ref(false)
|
|
|
|
const scanList = ref([])
|
|
|
|
const expendIcon = ref('arrow-down')
|
|
|
|
const scan = ref()
|
|
|
|
const openScanPopup = () => {
|
|
|
|
setTimeout(res => {
|
|
|
|
isShow.value = true
|
|
|
|
}, 500)
|
|
|
|
}
|
|
|
|
const closeScanPopup = () => {
|
|
|
|
isShow.value = false
|
|
|
|
}
|
|
|
|
const getfocus = () => {
|
|
|
|
if (isShow.value) {
|
|
|
|
scan.value.getfocus()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
const scanClick = () => {
|
|
|
|
scan.value.handelScanMsg()
|
|
|
|
}
|
|
|
|
const cancelClick = () => {
|
|
|
|
scan.value.clearScanValue()
|
|
|
|
}
|
|
|
|
const getScanResult = (result) => {
|
|
|
|
if (result.label.barType === 'BarCode') {
|
|
|
|
code.value = result.label.code;
|
|
|
|
}
|
|
|
|
callBack();
|
|
|
|
}
|
|
|
|
const callBack = () => {
|
|
|
|
scan.value.clear()
|
|
|
|
emit("getScanCode", code.value);
|
|
|
|
}
|
|
|
|
// 传递给父类
|
|
|
|
const emit = defineEmits(['getScanCode'])
|
|
|
|
defineExpose({openScanPopup,closeScanPopup})
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style>
|
|
|
|
</style>
|