opnform-host-nginx/client/components/pages/forms/show/FormQrCode.vue

51 lines
939 B
Vue
Raw Normal View History

2023-12-09 15:47:03 +01:00
<template>
<div>
<h3 class="font-semibold text-xl">QR Code</h3>
<p>Scan the QR code to open the form (Right click to copy the image)</p>
<div class="flex items-center">
2024-01-10 16:17:47 +01:00
<img v-if="QrUrl" :src="QrUrl" class="m-auto" />
2023-12-09 15:47:03 +01:00
</div>
</div>
</template>
<script>
import QRCode from 'qrcode'
export default {
name: 'FormQrCode',
props: {
form: { type: Object, required: true },
extraQueryParam: { type: String, default: '' }
},
data () {
2024-01-10 16:17:47 +01:00
return {
2023-12-09 15:47:03 +01:00
QrUrl: null
}
},
computed: {
shareUrl () {
return (this.extraQueryParam) ? this.form.share_url + "?" + this.extraQueryParam : this.form.share_url + this.extraQueryParam
}
},
watch: {
shareUrl () {
this.generateQR()
}
},
mounted () {
this.generateQR()
},
methods: {
generateQR () {
QRCode.toDataURL(this.shareUrl).then(url => {
this.QrUrl = url
})
}
}
}
</script>