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 および仮想マシンのインストール チュートリアルの展開 (画像とテキスト)

推薦する

MySQLのカバーインデックスに関する知識ポイントのまとめ

インデックスにクエリする必要があるすべてのフィールドの値が含まれている(またはカバーしている)場合、...

Vue3 の ref toRef と toRefs の違いを理解する方法

目次1. 基本1.参照2. 参照3. 参照4. 最適な使い方2. 詳細な1. なぜrefが必要なのか...

vscode を使用したリモート Linux 開発の実装

過去に別れを告げるvscode にリモート SSH が導入される前は、Linux サーバー開発者の多...

ネイティブ JS で音楽プレーヤーを実装するためのサンプル コード

この記事では主に、次のように共有されるネイティブ JS 音楽プレーヤーのサンプル コードを紹介します...

WeChatミニプログラムがいいねサービスを実装

この記事では、WeChatアプレットの具体的なコードを参考までに紹介します。具体的な内容は次のとおり...

Vueソースコード解析における仮想DOMの詳しい説明

なぜ仮想DOMが必要なのでしょうか?仮想 DOM はブラウザのパフォーマンス問題を解決するために設計...

MySQL 検査スクリプト (必読)

以下のように表示されます。 #!/usr/bin/env python3.5 psutilをインポー...

MySQLデータベースに接続し、クエリ操作を実行するためのIDEAの完全なコード

1.まずMysqlリンク設定ページを書く パッケージ com.wretchant.fredis.me...

CentOS で新しいユーザーを作成し、キーログインを有効にする方法

目次新しいユーザーを作成する新規ユーザーを承認する新規ユーザーのSSHキーログインを有効にする他のS...

純粋な CSS3+DIV で小さな三角形の境界線効果を実現するためのサンプル コード

具体的なコードは次のとおりです。 HTMLコードは次のとおりです <div class=&qu...

HTML ページ出力で従うべきいくつかの原則の要約

1. DOCTYPE は必須です。ブラウザは宣言した DOCTYPE に基づいてページのレンダリング...

UA による Web サイトのクロールを防ぐ Nginx のクローラー対策戦略

クローラー対策ポリシー ファイルを追加しました: vim /usr/www/server/nginx...

N キロメートル以内のデータを検索する MySQL の簡単な例

地球の円周率と半径、検索ポイントの経度と緯度から、検索ポイントと検索データテーブル間の距離はNキロメ...

海外のウェブページのカラーマッチング事例20選共有

この記事では、優れた Web ページのカラー マッチングの事例を 20 件集めて紹介します。これらの...

VMware で Centos7 ブリッジ ネットワークを構成する手順の詳細な説明

VMware仮想マシンでのCentos7ブリッジネットワーク構成の完全な手順は参考用です。具体的な内...