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

121 lines
2.7 KiB
JavaScript

// Test Result Page - Display QR scan results for testing
Page({
/**
* Page initial data
*/
data: {
qr_code: '',
scan_timestamp: '',
scan_mode: 'unknown',
source_page: 'unknown',
qr_position: null,
qr_sharpness: 0,
qr_size: 0,
raw_query_string: ''
},
/**
* Lifecycle function--Called when page load
*/
onLoad(options) {
console.log('Test result page loaded with options:', options);
// Parse all query parameters
const timestamp = new Date().toLocaleString();
const qr_code = options.qr_code || 'No QR code provided';
// Parse additional data if provided
let qr_position = null;
let qr_sharpness = 0;
let qr_size = 0;
try {
if (options.qr_position) {
qr_position = JSON.parse(decodeURIComponent(options.qr_position));
}
if (options.qr_sharpness) {
qr_sharpness = parseFloat(options.qr_sharpness);
}
if (options.qr_size) {
qr_size = parseInt(options.qr_size);
}
} catch (error) {
console.warn('Error parsing additional QR data:', error);
}
// Generate raw query string for debugging
const raw_query_string = Object.keys(options)
.map(key => `${key}=${options[key]}`)
.join('\n');
this.setData({
qr_code: decodeURIComponent(qr_code),
scan_timestamp: timestamp,
scan_mode: options.scan_mode || 'unknown',
source_page: options.source_page || 'unknown',
qr_position: qr_position,
qr_sharpness: qr_sharpness,
qr_size: qr_size,
raw_query_string: raw_query_string
});
},
/**
* Scan again - go back to emblemscanner
*/
scanAgain() {
wx.redirectTo({
url: '/pages/emblemscanner/emblemscanner?debug=1',
fail: (err) => {
console.error('Failed to navigate to scanner:', err);
wx.showToast({
title: 'Navigation failed',
icon: 'error'
});
}
});
},
/**
* Copy QR code to clipboard
*/
copyQRCode() {
wx.setClipboardData({
data: this.data.qr_code,
success: () => {
wx.showToast({
title: 'QR code copied',
icon: 'success'
});
},
fail: () => {
wx.showToast({
title: 'Copy failed',
icon: 'error'
});
}
});
},
/**
* Go back to previous page
*/
goBack() {
wx.navigateBack({
fail: () => {
// If can't go back, go to scanner
this.scanAgain();
}
});
},
/**
* Share this page (for testing)
*/
onShareAppMessage() {
return {
title: 'QR Scan Result',
path: `/pages/test_result_page/test_result_page?qr_code=${encodeURIComponent(this.data.qr_code)}`
};
}
});