63 lines
1.4 KiB
Vue
63 lines
1.4 KiB
Vue
<template>
|
|
<view id="barcode"></view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
// #ifdef APP-PLUS
|
|
barcode: [
|
|
plus.barcode.QR,
|
|
plus.barcode.EAN13,
|
|
plus.barcode.EAN8,
|
|
plus.barcode.UPCA,
|
|
plus.barcode.UPCE,
|
|
plus.barcode.CODABAR,
|
|
plus.barcode.CODE39,
|
|
plus.barcode.CODE93,
|
|
plus.barcode.CODE128,
|
|
plus.barcode.ITF,
|
|
],//码类型
|
|
// #endif
|
|
};
|
|
},
|
|
created() {
|
|
var statusBarHeight = uni.getSystemInfoSync().statusBarHeight;//状态栏
|
|
var height = statusBarHeight + 44 +104+'px';
|
|
var pages = getCurrentPages();
|
|
var page = pages[pages.length - 1];
|
|
// #ifdef APP-PLUS
|
|
var currentWebview = page.$getAppWebview();
|
|
this.barcode = plus.barcode.create('barcode', this.barcode, {
|
|
top: '0',
|
|
left: '0px',
|
|
width: '100%',
|
|
height: height,//这里可以设置扫码框的高度
|
|
position: 'static'
|
|
});
|
|
this.barcode.onmarked = this.onmarked;
|
|
currentWebview.append(this.barcode);
|
|
const res = uni.getSystemInfoSync();
|
|
if(res.platform == 'android'){//安卓机
|
|
this.barcode.start();
|
|
}
|
|
// #endif
|
|
},
|
|
onUnload() {
|
|
clearTimeout(this.t);
|
|
},
|
|
methods: {
|
|
onmarked(type, result) {
|
|
// console.log(type +':'+ result);
|
|
this.$emit('getCode',result);
|
|
this.t=setTimeout(() => {
|
|
this.barcode.start();
|
|
}, 1000)
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="less">
|
|
</style> |