星油云站
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.
 
 
 
 

267 lines
5.2 KiB

<template>
<view class="page-content">
<cu-custom :isBack="true" class="main-topbar bg-main-oil" bgColor="bg-main-oil">
<block slot="content">扫描二维码123</block>
<block slot="backText">返回</block>
</cu-custom>
<camera class='scan-camera' :flash="flashValue" mode="scanCode" @scancode="scancode" @initdone="initdone"
@stop="openStop" @error="openFail" frame-size='large'>
<cover-view class='scan-animation' :animation="animationData2"></cover-view>
<cover-view class="cover-aquare">
<cover-view class='cover-aquare-inner'></cover-view>
<cover-view class='cover-corner cover-left-top'>
<cover-view class="w-line"></cover-view>
<cover-view class="h-line"></cover-view>
</cover-view>
<cover-view class='cover-corner cover-right-top'>
<cover-view class="w-line w1-line"></cover-view>
<cover-view class="h-line h1-line"></cover-view>
</cover-view>
<cover-view class='cover-corner cover-left-bottom'>
<cover-view class="h-line"></cover-view>
<cover-view class="w-line"></cover-view>
</cover-view>
<cover-view class='cover-corner cover-right-bottom'>
<cover-view class="h-line h3-line"></cover-view>
<cover-view class="w-line w3-line"></cover-view>
</cover-view>
</cover-view>
<cover-view class="flash text-center">
<cover-view @tap="touchFlash" class=" text-white lg" v-show="flashValue!='on'">
打开手电筒
</cover-view>
<cover-view @tap="touchFlash" class=" text-white lg" v-show="flashValue=='on'">
关闭手电筒
</cover-view>
</cover-view>
</camera>
</view>
</template>
<script>
let diSrc = 'http://downsc.chinaz.net/Files/DownLoad/sound1/201711/9360.mp3'
let innerAudioContext = wx.createInnerAudioContext()
innerAudioContext.src = diSrc
export default {
data() {
return {
once: false,
lightOn: false,
animationData2: {},
flashValue: 'auto'
}
},
onShow() {
this.donghua()
setInterval(() => {
this.donghua()
}, 6000);
},
// onShow() {
// this.donghua()
// },
methods: {
touchFlash() {
if (this.flashValue != 'on') {
this.flashValue = 'on'
} else if (this.flashValue == 'on') {
this.flashValue = 'off'
}
},
donghua() {
var animation2 = uni.createAnimation({
duration: 1000,
timingFunction: 'linear',
})
this.animation2 = animation2
animation2.translateY(235).step({
duration: 3000
})
this.animationData2 = animation2.export()
setTimeout(() => {
animation2.translateY(0).step({
duration: 3000
})
this.animationData2 = animation2.export()
}, 3000)
},
initdone(e) {
console.log('相机初始化完成时触发', e)
},
openStop(err) {
console.log('摄像头异常终止', err)
uni.showToast({
title:'摄像头异常终止',
icon:'none'
})
},
openFail(err) {
console.log('用户不允许使用摄像头时触发', err)
uni.showToast({
title:'用户不允许使用摄像头',
icon:'none'
})
},
scancode(e) {
if (!this.once) {
var scanUrl = ''
// uni.getStorageSync('scanUrl')
// 提示音
innerAudioContext.play()
console.log('play滴~')
// 校验扫描结果,并处理
let res = e.detail.result
console.log(res)
console.log(e)
uni.setStorageSync('qrCode', res)
this.once = true
let url = ''
const tag = res.substring(0, 2)
if (tag == "XM" || tag == "HT" || tag == "G7") {
url = '/pages/stationDetail/stationDetail'
} else {
url = '/pages/stationDetail/ZYSite'
}
console.log(tag)
uni.redirectTo({
// url: `/pages/stationDetail/stationDetail`,
url: url,
fail: (err) => {
// console.log(err)
},
success: (res) => {
// console.log('chengg', res)
}
})
}
}
}
}
</script>
<style scoped>
.page-content {
overflow: hidden;
}
.scan-camera {
width: 750upx;
height: 92vh;
border-radius: 6rpx;
}
.cover-corner {
position: absolute;
z-index: 2;
}
.cover-left-top {
left: 0upx;
top: 0upx;
}
.cover-right-top {
right: 0;
top: 0;
}
.cover-left-bottom {
left: 0;
bottom: 0;
}
.cover-right-bottom {
right: 0;
bottom: 0;
}
.scan-animation {
position: absolute;
width: 480rpx;
height: 8rpx;
top: 200upx;
left: 135upx;
background-color: #FE0505;
border-radius: 50%;
box-shadow: 5upx 5upx 0 10upx #FE0505;
}
.cover-aquare-inner {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border: 2upx solid #f1f3f7;
}
.cover-aquare {
position: absolute;
width: 500upx;
height: 500upx;
overflow: inherit;
top: 200upx;
left: 125upx;
/* border: 1px solid #FE0505; */
}
.h-line {
width: 10upx;
height: 20upx;
background-color: #FE0505;
}
.w-line {
width: 30upx;
height: 10upx;
background-color: #FE0505;
}
.h1-line {
width: 10upx;
float: right;
height: 20upx;
}
.w1-line {
width: 30upx;
height: 10upx;
}
.h3-line {
right: -21upx;
position: relative;
z-index: 4;
}
.flash {
position: absolute;
width: 750upx;
top: 800upx;
z-index: 4;
}
.cu-avatar {
text-align: center;
background: transparent;
}
.cu-avatar [class*="cuIcon-"] {
padding-left: 1.5rem;
}
</style>