Files
im/pages/common/scan.vue
T

115 lines
2.2 KiB
Vue
Raw Normal View History

2025-12-08 02:29:46 +08:00
<template>
2025-12-08 18:10:51 +08:00
<view class="scan_page" :style="{height:windowHeight+'px'}">
<uni-nav-bar
left-icon="back"
@clickLeft="back"
fixed
backgroundColor="#FFF"
statusBar
>
</uni-nav-bar>
<barcode id='1'
class="barcode"
ref="barcode"
:autostart="true"
background="rgb(0,0,0)"
frameColor="#07c160"
scanbarColor="#07c160"
:style="{height:windowHeight+'px'}"
:filters="fil"
@marked="success"
@error="fail">
</barcode>
2025-12-08 02:29:46 +08:00
<view class="overlay">
<button class="btn" @click="toStart">开始扫码识别</button>
<button class="btn" @click="tocancel">取消扫码识别</button>
<button class="btn" @click="toFlash">开启闪光灯</button>
<button class="btn" @click="toscan">预览</button>
</view>
</view>
</template>
<script>
export default {
data() {
return {
2025-12-08 18:10:51 +08:00
fil: [0, 2, 1,3,4,12],
windowHeight:500,
2025-12-08 02:29:46 +08:00
}
},
2025-12-08 18:10:51 +08:00
onLoad() {
uni.scanCode({
complete(res) {
console.log(res)
}
})
},
created() {
const info = uni.getSystemInfoSync();
console.log(info);
this.windowHeight = info.screenHeight;
},
2025-12-08 02:29:46 +08:00
methods: {
2025-12-08 18:10:51 +08:00
success(e) {
2025-12-08 02:29:46 +08:00
console.log("success1:" + JSON.stringify(e));
},
2025-12-08 18:10:51 +08:00
fail(e) {
2025-12-08 02:29:46 +08:00
console.log("fail1:" + JSON.stringify(e));
},
toStart: function() {
this.$refs.barcode.start({
conserve: true,
filename: '_doc/barcode/'
});
},
tocancel:function(){
this.$refs.barcode.cancel();
},
toFlash: function() {
this.$refs.barcode.setFlash(true);
},
toscan: function() {
console.log("scan:");
const barcodeModule = uni.requireNativePlugin('barcodeScan');
barcodeModule.scan("/static/barcode1.png"
,(e)=>{
console.log("scan_error:"+JSON.stringify(e));
});
2025-12-08 18:10:51 +08:00
},
back(){
uni.navigateBack();
2025-12-08 02:29:46 +08:00
}
}
}
</script>
<style lang="scss" scoped>
.scan_page{
width: 750rpx;
position: relative;
.barcode {
2025-12-08 18:10:51 +08:00
width: 750rpx;
2025-12-08 02:29:46 +08:00
background-color: #808080;
}
.btn {
top: 20rpx;
width: 730rpx;
margin-left: 10rpx;
margin-top: 10rpx;
background-color: #458B00;
border-radius: 10rpx;
}
.overlay{
background: rgba(0, 0, 0, 0.1);
2025-12-08 18:10:51 +08:00
position: absolute;
bottom: 100rpx;
left: 0;
right: 0;
height: 200rpx;
2025-12-08 02:29:46 +08:00
}
}
</style>