diff --git a/pages/upload/upload.vue b/pages/upload/upload.vue index 8f06f5d..35bad12 100644 --- a/pages/upload/upload.vue +++ b/pages/upload/upload.vue @@ -676,6 +676,13 @@ + + + + + 对准条码自动识别 + + @@ -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;