1. 程式人生 > 程式設計 >vue 使用 canvas 實現手寫電子簽名

vue 使用 canvas 實現手寫電子簽名

功能

  1. 相容 PC 和 Mobile;
  2. 畫布自適應螢幕大小變化(視窗縮放、螢幕旋轉時畫布無需重置,自動校正座標偏移);
  3. 自定義畫布尺寸(匯出圖尺寸),畫筆粗細、顏色,畫布背景色;
  4. 支援裁剪 (針對需求:有的簽字需要裁剪掉四周空白)。
  5. 匯出圖片格式為 base64 ;
  6. 示例demo

安裝

npm install vue-esign --save

使用

main.js 中引入

import vueEsign from 'vue-esign'
Vue.use(vueEsign)

頁面中使用

必須設定 ref ,用來呼叫元件的兩個內建方法 reset() 和 generate() 無需給元件設定 style 的寬高,如果畫布的 width 屬性值沒超出父元素的樣式寬度,則該元件的樣式寬度就是畫布寬度,超出的話,元件樣式寬度則是父元素的100%; 所以只需設定好父元素的寬度即可;

<vue-esign ref="esign" :width="800" :height="300" :isCrop="isCrop" :lineWidth="lineWidth" :lineColor="lineColor" :bgColor.sync="bgColor" />
<button @click="handleReset">清空畫板</button> 
<button @click="handleGenerate">生成圖片</button>
data () {
 return {
 lineWidth: 6,lineColor: '#000000',bgColor: '',resultImg: '',isCrop: false
 }
},methods: {
 handleReset () {
 this.$refs.esign.reset()
 },handleGenerate () {
 this.$refs.esign.generate().then(res => {
 this.resultImg = res
 }).catch(err => {
 alert(err) // 畫布沒有簽字時會執行這裡 'Not Signned'
 })
 }
}

說明

屬性 型別 預設值 說明
width Number 800 畫布寬度,即匯出圖片的寬度
height Number 300 畫布高度,即匯出圖片的高度
lineWidth 4 Number 畫筆粗細
lineColor String #000000 畫筆顏色
bgColor String 畫布背景色,為空時畫布背景透明, 支援多種格式 '#ccc','#E5A1A1','rgb(229,161,161)','rgba(0,.6)','red'
isCrop Boolean false 是否裁剪,在畫布設定尺寸基礎上裁掉四周空白部分

兩個內建方法,通過給元件設定 ref 呼叫:

清空畫布

this.$refs.esign.reset()

生成圖片

this.$refs.esign.generate().then(res => {
 console.log(res) // base64圖片
}).catch(err => {
 alert(err) // 畫布沒有簽字時會執行這裡 'Not Signned'
})

有任何問題請到此提issue

vue 使用 canvas 實現手寫電子簽名

總結

到此這篇關於vue 使用 canvas 實現手寫電子簽名的文章就介紹到這了,更多相關vue 手寫電子簽名內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!