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

推薦する

Tomcat CentOS インストールプロセス図

Tomcat CentOS インストールこのインストール チュートリアルでは、次の内容について説明し...

HTML外部参照CSSファイルが効果を発揮しない理由の分析と解決

フロントエンドの初心者として、私は数日間フロントエンドをいじってみました。 。今日、私は自分が固く信...

MySQL の時間タイプとモードの詳細

目次1. MySQL の時刻型2. タイムゾーンを確認する3. 不正な時間値4. 厳密モード5. 事...

Webフロントエンドインターフェースの設計に必須のスキル

[必須] ユーザーインターフェースPhotoShop/花火デザインアーティストと協力して、スケッチを...

MySQLのINサブクエリによってインデックスが使用できなくなる問題を解決する

今日は、MySQL IN サブクエリの最適化に関するケーススタディを見ました。最初は少し懐疑的でした...

UbuntuにCMakeをインストールするいくつかの方法の詳細な説明

CMakeをインストール sudo apt をインストール cmake この方法はインストールが簡単...

プロファイルを使用して遅い SQL を分析する MySQL の詳細な説明 (グループ左結合はサブクエリよりも効率的です)

プロファイルを使用して遅いSQLを分析するMySQL の SQL パフォーマンス アナライザーの主な...

ドラッグアンドドロップでVueユーザーインターフェースを生成する方法

目次序文1. 技術原理1.1 レイアウト1.2 コンポーネント1.3 ステータス1.4 イベント1....

CentOS サーバーに FFmpeg をインストールするための完全な手順

序文サーバーシステム環境は、CentOS 6.5 (最終) です。 FFmpeg をサーバーに正常に...

DockerでLNMPアーキテクチャを展開する方法

環境要件: IPホスト名192.168.1.1ノード1プロジェクト計画:コンテナネットワークセグメン...

MySQLのよくある間違い

NULL 値によると、MySQL の NULL 値は単にデータがないことを意味します。NULL 値は...

Nginx におけるサーバーとロケーションのマッチングロジックの詳細な理解

サーバーマッチングロジックNginx は、リクエストを実行するサーバー ブロックを決定するときに、サ...

MySqlデータベースをバックアップするいくつかの方法

mysqldump ツールのバックアップデータベース全体をバックアップする $> mysqld...

sshとは何ですか?使い方は?どのような誤解があるのでしょうか?

目次序文SSHとは何かssh は何に使用されますか? sshの使い方ssh 再修正要約する序文ssh...

overflow:autoの使い方の詳しい説明

本文に入る前に、オーバーフローとフレックスレイアウトの使い方をいくつか紹介します。 overflow...