fix(预约扫码页): 修复重复触发硬件动作,添加调试日志并新增站点logo
| | |
| | | const showMissingEntryDialog = ref(false); |
| | | const dialogCountdown = ref(5); |
| | | let dialogTimer = null; |
| | | let hasMountedHardwareFlow = false; |
| | | |
| | | const hours = Array.from({ length: 24 }, (_, index) => String(index).padStart(2, '0')); |
| | | const minutes = Array.from({ length: 60 }, (_, index) => String(index).padStart(2, '0')); |
| | |
| | | startDialogCountdown(); |
| | | } |
| | | |
| | | hasMountedHardwareFlow = true; |
| | | |
| | | // 首屏硬件动作不要依赖 init 回调,否则 init 卡住时扫码第一步不会触发 |
| | | triggerHardwareByStep(currentStepName.value); |
| | | |
| | |
| | | |
| | | // 监听步骤变化,动态启停硬件 |
| | | watch(currentStepName, (newStep, oldStep) => { |
| | | // onLoad 修改 mode / step 时会先触发一次 watch,这里等页面挂载后再处理, |
| | | // 避免现场登记和签离首屏读卡被 onLoad + onMounted 重复触发两次。 |
| | | if (!hasMountedHardwareFlow) { |
| | | return; |
| | | } |
| | | |
| | | // 先关闭上一步的硬件 |
| | | if (oldStep === 'qr') HardwareAPI.stopScan(); |
| | | if (oldStep === 'idcard') HardwareAPI.stopReadCard(); |
| | |
| | | |
| | | // #ifdef APP-PLUS |
| | | if (HardwarePlugin) { |
| | | showPluginDebugModal('开始扫码调用', { |
| | | method: 'startScan', |
| | | message: '前端已发起开始扫码请求1111', |
| | | }); |
| | | HardwarePlugin.startScan({}, (res) => { |
| | | showPluginDebugModal('扫码回调', res); |
| | | if (res && res.code === 200) { |