| | |
| | | qrCode: string |
| | | } |
| | | |
| | | function wait(ms: number) { |
| | | return new Promise(resolve => setTimeout(resolve, ms)) |
| | | } |
| | | |
| | | interface VisitorCodeDisplayOrder extends Omit<MiniMyVisitorCodeOrderItem, 'qrCodes'> { |
| | | qrCodes: VisitorCodeDisplayTicket[] |
| | | } |
| | |
| | | }, |
| | | }) |
| | | |
| | | const router = useRouter() |
| | | const sysInfo = uni.getSystemInfoSync() |
| | | const statusBarHeight = sysInfo.statusBarHeight || 0 |
| | | const navBarHeight = 44 |
| | |
| | | const currentTicket = computed(() => order.value?.qrCodes?.[0] || null) |
| | | |
| | | function handleBack() { |
| | | router.back() |
| | | const pages = getCurrentPages() |
| | | if (pages.length > 1) { |
| | | uni.navigateBack({ |
| | | delta: 1, |
| | | fail: () => { |
| | | uni.switchTab({ url: '/pages/index/index' }) |
| | | }, |
| | | }) |
| | | return |
| | | } |
| | | uni.switchTab({ |
| | | url: '/pages/index/index', |
| | | fail: () => { |
| | | uni.reLaunch({ url: '/pages/index/index' }) |
| | | }, |
| | | }) |
| | | } |
| | | |
| | | function ticketTimeText() { |
| | |
| | | errorCorrectionLevel: 'M', |
| | | margin: 1, |
| | | }) |
| | | const size = 400 |
| | | const size = 448 |
| | | const moduleCount = qr.modules.size |
| | | const tileSize = size / moduleCount |
| | | const canvasId = 'sharedSingleVisitorQrCanvas' |
| | |
| | | } |
| | | |
| | | context.draw(false, () => { |
| | | uni.canvasToTempFilePath({ |
| | | canvasId, |
| | | width: size, |
| | | height: size, |
| | | destWidth: size * 2, |
| | | destHeight: size * 2, |
| | | success: res => resolve(res.tempFilePath), |
| | | fail: reject, |
| | | void wait(500).then(() => { |
| | | uni.canvasToTempFilePath({ |
| | | canvasId, |
| | | width: size, |
| | | height: size, |
| | | destWidth: size * 2, |
| | | destHeight: size * 2, |
| | | success: res => resolve(res.tempFilePath), |
| | | fail: reject, |
| | | }) |
| | | }) |
| | | }) |
| | | }) |
| | |
| | | position: fixed; |
| | | left: -9999px; |
| | | top: -9999px; |
| | | width: 400px; |
| | | height: 400px; |
| | | width: 448px; |
| | | height: 448px; |
| | | opacity: 0; |
| | | pointer-events: none; |
| | | } |