Last active
August 9, 2024 14:30
-
-
Save stevebauman/cf41218606bb753bfb2e2fb788967828 to your computer and use it in GitHub Desktop.
A VueJS Signature canvas field, using szimek/signature_pad
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<template> | |
<div> | |
<canvas ref="canvas"></canvas> | |
<div class="clearfix"></div> | |
<div class="btn-group"> | |
<button @click="clear" type="button" class="btn btn-default"> | |
<i class="fa fa-times"></i> | |
Clear Signature | |
</button> | |
</div> | |
</div> | |
</template> | |
<style> | |
.signature { | |
border: 2px solid #cbc9c6; | |
border-radius: 5px; | |
} | |
</style> | |
<script> | |
import SignaturePad from 'signature_pad'; | |
export default { | |
props: { | |
value: String, | |
}, | |
data() { | |
return { | |
pad: null, | |
}; | |
}, | |
mounted() { | |
this.pad = new SignaturePad(this.$refs.canvas, { | |
onEnd: () => { | |
this.$emit('input', this.pad.toDataURL()); | |
} | |
}); | |
}, | |
methods: { | |
clear() { | |
this.pad.clear(); | |
this.$emit('input', this.pad.toDataURL()); | |
}, | |
} | |
} | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
No I mean just after it, and I wasn't able to get the onEnd handler to work, so I just removed it.
Here's my current component (in Vue 3):
My usage of v-model is a bit strange, but it's still in progress, it should be plenty for someone to work with. My needs are emerging as I work with the designer to handle templates and custom signatures.