<!-- 扫一扫 -->
<template>
<view class="scan-view">
<view class="status_bar">
<!-- 这里是状态栏 -->
</view>
<!-- <u-navbar :title="userInfo.channelname " :background="'#000'" :title-color="'#fff'" :border-bottom="false"></u-navbar> -->
<!-- 自定义导航栏 -->
<view class="nav-bar">
<view class="left" @click="onClickBack">
<text class="fwhfont icon-icon-chevron-left" style="font-size: 50rpx;"></text>
</view>
<view class="title">
<text class="title-text">{{userInfo.channelname}}</text>
</view>
</view>
<u-toast ref="uToast" />
<view class="scan-border">
<view
style="width: 500rpx;height: 600rpx;border: 1rpx solid #ccc;margin-bottom: 120rpx;position: relative;">
<view class="Bordertop">
<view style="width: 44rpx;height: 10rpx;background-color: #FBCC04;"></view>
<view style="width: 44rpx;height: 10rpx;background-color: #FBCC04;"></view>
</view>
<view class="Borderright">
<view style="width: 10rpx;height: 44rpx;background-color: #FBCC04;"></view>
<view style="width:10rpx;height: 44rpx;background-color: #FBCC04;position: absolute;bottom: 0rpx;">
</view>
</view>
<view class="Borderbottom">
<view style="width: 44rpx;height: 10rpx;background-color: #FBCC04;"></view>
<view style="width: 44rpx;height: 10rpx;background-color: #FBCC04;"></view>
</view>
<view class="Borderleft">
<view style="width: 10rpx;height: 44rpx;background-color: #FBCC04;"></view>
<view
style="width: 10rpx;height: 44rpx;background-color: #FBCC04;position: absolute;bottom: 0rpx;">
</view>
</view>
<!-- bindscancode="onScancode" @initdone="onCameraInitDone" -->
<camera class="scan-camera" @scancode="onScancode" @error="onError" mode="scanCode"
device-position="back" flash="auto">
<cover-view class="scan-animation" :animation="animation"></cover-view>
</camera>
</view>
<view class="scanText">将二维码/条码放到取景框内,即可自动扫描</view>
<view class="footerButton">
<view class="btns" >
<text class="fwhfont icon-jianpan" style="padding-right: 20rpx;"></text>
<text>输码</text>
</view>
<view class="btns">
<text class="fwhfont icon-icon-list" style="padding-right: 20rpx;"></text>
<text>记录</text>
</view>
</view>
</view>
</view>
</template>
<script>
var animation = uni.createAnimation({
timingFunction: "linear",
delay: 0
});
export default {
data() {
return {
animation: {},
};
},
onShow() {
this.lineAnimation()
},
methods: {
/**扫码线条动画*/
lineAnimation() {
this.animation = animation;
let that = this;
let scode = true;
this.timer = setInterval(
function() {
if (scode) {
animation.translateY(260).step({
duration: 1500,
});
scode = !scode;
} else {
animation.translateY(-10).step({
duration: 1500,
});
scode = !scode;
}
that.animation = animation.export();
}.bind(this),
1500
);
},
// 相机初始化完成回调函数
onCameraInitDone() {
// setInterval(() => {
// this.$refs.camera.scanCode();
// }, 1000);
},
onError() {
this.$toast('扫码错误')
},
onClickBack() {
uni.navigateBack();
},
/**扫码成功*/
onScancode(e) {
},
},
onUnload() {
},
};
</script>
<style lang="scss" scoped>
page {
background-color: black;
}
.status_bar {
height: var(--status-bar-height);
width: 100%;
}
.scan-view {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
position: fixed;
align-items: center;
justify-content: space-around;
background-color: #000;
}
.Bordertop {
display: flex;
justify-content: space-between;
position: absolute;
z-index: 99;
width: 100%;
top: -2rpx;
}
.Borderleft {
left: -2rpx;
z-index: 99;
position: absolute;
height: 100%;
}
.Borderright {
z-index: 99;
position: absolute;
right: -2rpx;
height: 100%;
}
.Borderbottom {
display: flex;
z-index: 99;
justify-content: space-between;
position: absolute;
width: 100%;
bottom: -6rpx;
}
.scan-border {
width: 100%;
height: 75%;
/* border: 6rpx solid #08FDFE; */
display: flex;
flex-direction: column;
align-items: center;
.scan-camera {
width: 100%;
height: 100%;
border-radius: 6rpx;
}
}
.scan-animation {
position: absolute;
top: 4%;
left: 2%;
width: 480rpx;
height: 2rpx;
background-color: #FBCC04;
border-radius: 50%;
}
.footerButton {
width: 100%;
margin-top: 100rpx;
display: flex;
justify-content: space-around;
align-items: center;
.btns {
color: #ebebeb;
display: flex;
justify-content: space-around;
align-items: center;
margin: 10rpx;
padding: 20rpx;
background-color: #333333;
border-radius: 20rpx;
}
}
.scanText {
position: absolute;
bottom: 32%;
// left: 15%;
color: #ebebeb;
}
/* 导航栏样式 */
.nav-bar {
display: flex;
justify-content: space-between;
align-items: center;
position: fixed;
top: 3%;
left: 0;
width: 100%;
height: 110rpx;
padding: 0 10px;
box-sizing: border-box;
z-index: 999;
margin-top: 22rpx;
}
/* 左侧按钮样式 */
.left {
display: flex;
justify-content: center;
align-items: center;
color: #000;
background: #fff;
border-radius: 60rpx;
}
/* 标题样式 */
.title {
flex: 1;
display: flex;
align-items: center;
margin-left: 26rpx;
}
/* 标题文字样式 */
.title-text {
max-width: 200px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: #FFFFFF;
font-size: 36rpx;
}
</style>