2025-10-29 21:27:29 +00:00

116 lines
2.7 KiB
JavaScript

// Result Page - Handle emblemscanner results and navigation
Page({
/**
* Page initial data
*/
data: {
ok: false,
qr_code: '',
serial_code: '',
scan_timestamp: '',
show_verify_failed: false
},
/**
* Lifecycle function--Called when page load
*/
onLoad(options) {
console.log('Result page loaded with options:', options);
const timestamp = new Date().toLocaleString();
const ok = options.ok === '1';
const qr_code = options.qr_code || '';
const serial_code = options.serial_code || '';
this.setData({
ok: ok,
qr_code: decodeURIComponent(qr_code),
serial_code: decodeURIComponent(serial_code),
scan_timestamp: timestamp,
show_verify_failed: !ok
});
console.log('Result page data:', {
ok: ok,
qr_code: qr_code,
serial_code: serial_code
});
// Handle navigation based on result
if (ok && serial_code) {
// Success case: redirect to productinfo page
this.redirectToProductInfo(serial_code);
} else if (!ok) {
// Failure case: show verify failed UI
this.showVerifyFailed();
}
},
/**
* Redirect to product info page with serial code
*/
redirectToProductInfo(serialCode) {
console.log('Redirecting to productinfo with serial_code:', serialCode);
wx.redirectTo({
url: `/pages/productinfo/productinfo?serial_code=${encodeURIComponent(serialCode)}`,
success: () => {
console.log('Successfully redirected to productinfo');
},
fail: (err) => {
console.error('Failed to redirect to productinfo:', err);
// Fallback: show verify failed UI
this.showVerifyFailed();
}
});
},
/**
* Show verify failed UI
*/
showVerifyFailed() {
console.log('Showing verify failed UI');
this.setData({
show_verify_failed: true
});
},
/**
* Handle verifyfailed component back event - rescan
*/
onVerifyFailedBack() {
console.log('Verify failed back event - rescanning');
this.rescan();
},
/**
* Handle verifyfailed component service event
*/
onVerifyFailedService() {
console.log('Verify failed service event - showing service modal');
// You can implement service modal logic here if needed
// For now, just log it
},
/**
* Rescan - go back to emblemscanner
*/
rescan() {
console.log('Rescan button clicked');
wx.redirectTo({
url: '/pages/emblemscanner/emblemscanner',
success: () => {
console.log('Successfully redirected to emblemscanner');
},
fail: (err) => {
console.error('Failed to redirect to emblemscanner:', err);
wx.showToast({
title: 'Navigation failed',
icon: 'error'
});
}
});
},
});