Vueを使用して手書き署名機能を実装する

Vueを使用して手書き署名機能を実装する

個人的な実装のスクリーンショット:

インストール:

npm インストール vue-esign --save

使用:

1. main.jsにインポートする

'vue-esign' から vueEsign をインポートします
Vue.use(vueEsign)

2. ページ内の引用

<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>

3. 説明

財産タイプデフォルト値例示する
番号800キャンバスの幅、つまりエクスポートされた画像の幅
身長番号300キャンバスの高さ、つまりエクスポートされた画像の高さ
線幅4番号ブラシの太さ
線の色#000000ブラシの色
背景色ヌルキャンバスの背景色。空の場合、キャンバスの背景は透明になります。
複数の形式をサポート '#ccc'、'#E5A1A1'、'rgb(229, 161, 161)'、'rgba(0,0,0,.6)'、'red'
クロップブール間違いキャンバス設定サイズに基づいて、周囲の空白領域を切り取るかどうか

待望のオリジナルコードはこちらです:

データ () {
  戻る {
    線幅: 6,
    線の色: '#000000',
    背景色: ''、
    結果画像: ''、
    isCrop: 偽
  }
},
メソッド: {
  ハンドルリセット(){
    this.$refs['esign'].reset() //キャンバスをクリアする},
  ハンドル生成() {
    this.$refs['esign'].generate().then(res => {
      this.resultImg = res // 署名によって生成された base64 イメージを取得します}).catch(err => { // 署名がない場合は、これを呼び出します。$message({
        メッセージ: err + ' 符号なし! '、
        タイプ: '警告'
      })
      alert(err) // キャンバスが署名されていない場合に実行されます'署名されていません'
    })
  }
}

付録: base64 を画像に変換する方法:

// base64を画像に変換する base64ImgtoFile(dataurl, filename = 'file') {
 
定数 arr = dataurl.split(',')
 
定数 mime = arr[0].match(/:(.*?);/)[1]
 
定数サフィックス = mime.split('/')[1]
 
定数bstr = atob(arr[1])
 
n = bstr.lengthとする
 
const u8arr = 新しい Uint8Array(n)
 
(n--) {
 
u8arr[n] = bstr.charCodeAt(n)
 
}
 
新しいファイルを返します([u8arr], `${filename}.${suffix}`, {
 
タイプ: パントマイム
 
})
 
},

これで、vue を使用して手書き署名機能を実装する方法についての説明は終了です。手書き署名コンテンツの vue 実装の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vueはキャンバスを使用して手書きの電子署名を実装します
  • Vue+element がシグネチャ効果を追加(モバイル デバイスで利用可能)
  • vue vue-esign 署名ボードデモ

<<:  MYSQLストアドプロシージャ、つまり一般的な論理知識のポイントの要約

>>:  VMware ESXi 6.0 および仮想マシンのインストール チュートリアルの展開 (画像とテキスト)

推薦する

LeetCode の SQL 実装 (177. 給与が N 番目に高い)

[LeetCode] 177. 最も高い給与従業員テーブルからn番目に高い給与を取得する SQL ...

ウェブページからテキスト透かしを削除する2つの簡単な方法

<br /> 特定の Web サイトを閲覧して、優れた Web ページを見つけた場合、そ...

MySQL 5.7.17 圧縮パッケージのインストールと設定方法のグラフィックチュートリアル

インターネット上にはMySQL 5.7.17のインストールチュートリアルがほとんどなく不十分なので、...

データベースミドルウェアMyCatの紹介

1. Mycatの適用シナリオMycat は幅広いシナリオに合わせて開発されており、新しいユーザーが...

Centos6.5 glibc アップグレードプロセスの紹介

目次シナリオ要件glibc バージョンglibcのインストールglibc ソフトリンクシナリオ要件C...

Windows 10 インストール vmware14 チュートリアル図

ソフトウェアのダウンロードソフトウェアのダウンロード リンク: https://pan.baidu....

JavaScript の構造化代入の一般的なシナリオと例 5 つ

目次序文1. データを抽出する2. エイリアス値3. 動的プロパティ4. オブジェクトの分解における...

CSS でベジェ曲線の実装を反転する方法

まずは、以前書いた CSS カルーセルアニメーション効果を見てみましょう。アニメーションの遷移をスム...

Vue は書籍管理ケースを実装します

この記事では、書籍管理を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は次の...

メタを使用してトラフィックキャッシュをキャンセルし、ページにアクセスするたびにページを更新して簡単にデバッグできるようにします。

コードをコピーコードは次のとおりです。 <!-- ブラウザがローカル キャッシュからページにア...

mysql を解決: エラー 1045 (28000): ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードの使用: NO/YES)

1. 問題時々Mysqlにログインしてパスワードを入力すると、この状況が発生しますmysql -u...

MySQLサービスの自動停止の解決策

この記事では主に、MySQL サービスの自動停止の解決策を紹介し、参考と学習のために共有します。一緒...

VMWare で Ubuntu を再起動した後、インターネットにアクセスできなくなる問題の解決方法

VMWareでUbuntuを再起動した後、インターネットにアクセスできなくなる問題を解決するには、次...

Linux コマンドラインからファイルを削除する実用的な方法

rm コマンドrm コマンドは、ファイルを削除するときによく使用されるコマンドです。ファイルまたはデ...

Tomcatの動作原理を分析する

SpringBoot は巨大な Python のようで、ゆっくりと私たちの周りを巻きつき、麻痺させま...