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