116 lines
2.8 KiB
JavaScript
116 lines
2.8 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?return_page=/pages/result_page/result_page',
|
|
success: () => {
|
|
console.log('Successfully redirected to emblemscanner');
|
|
},
|
|
fail: (err) => {
|
|
console.error('Failed to redirect to emblemscanner:', err);
|
|
wx.showToast({
|
|
title: 'Navigation failed',
|
|
icon: 'error'
|
|
});
|
|
}
|
|
});
|
|
},
|
|
|
|
}); |