ISBN扫码:改用camera mode=scanCode 全屏无取景框实时识别

This commit is contained in:
97694732@qq.com 2026-06-04 15:53:57 +08:00
parent 6f6f7e03ca
commit 84fd370191

View File

@ -676,6 +676,13 @@
</swiper-item>
</swiper>
<!-- 全屏扫码摄像头无取景框实时识别 -->
<view class="scan-camera-overlay" v-if="showScanCamera">
<camera class="scan-camera" mode="scanCode" device-position="back" flash="auto" @scancode="handleScancode" @error="closeScanCamera"></camera>
<cover-view class="scan-camera-close" @click="closeScanCamera"></cover-view>
<cover-view class="scan-camera-tip">对准条码自动识别</cover-view>
</view>
<!-- 底部提交栏 -->
<view class="bottom-bar">
<view class="submit-btn" @click="submitUpload">
@ -819,6 +826,7 @@ export default {
historyList: [],
isSubmitting: false,
isLoading: false,
showScanCamera: false,
// ISBN
noIsbnPrintTime: '',
@ -1147,16 +1155,23 @@ export default {
uni.showToast({ title: '请先登录孔网账号', icon: 'none' })
return
}
//
uni.scanCode({
onlyFromCamera: true,
scanType: ['barcode'],
success: (res) => {
this.isbn = (res.result || '').trim()
this.searchISBN()
},
fail: () => {}
})
//
this.showScanCamera = true
},
//
handleScancode(e) {
const code = (e.detail && e.detail.result) || ''
if (code && code.length === 13) {
this.showScanCamera = false
this.isbn = code.trim()
this.searchISBN()
}
},
//
closeScanCamera() {
this.showScanCamera = false
},
// ISBN - +
@ -2855,6 +2870,51 @@ picker {
height: 40rpx;
}
/* ========== 全屏扫码摄像头 ========== */
.scan-camera-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 9999;
background-color: #000;
}
.scan-camera {
width: 100%;
height: 100%;
}
.scan-camera-close {
position: fixed;
top: 60rpx;
left: 30rpx;
width: 60rpx;
height: 60rpx;
border-radius: 50%;
background-color: rgba(0,0,0,0.4);
color: #fff;
font-size: 36rpx;
display: flex;
align-items: center;
justify-content: center;
z-index: 10000;
}
.scan-camera-tip {
position: fixed;
bottom: 120rpx;
left: 50%;
transform: translateX(-50%);
color: #fff;
font-size: 28rpx;
background-color: rgba(0,0,0,0.5);
padding: 12rpx 30rpx;
border-radius: 40rpx;
z-index: 10000;
}
/* ========== 底部提交栏 ========== */
.bottom-bar {
background-color: #ffffff;