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>
|