vue-esign用途及使用方法詳細(xì)教程
一、vue-esign 核心用途
vue-esign 是 Vue項(xiàng)目專屬輕量級電子簽名插件,不用依賴后端,純前端就能實(shí)現(xiàn)手寫簽名、導(dǎo)出保存,體積小、易接入,解決前端手寫簽名的核心需求。
常見使用場景(手繪重點(diǎn)標(biāo)注)
?? 辦公場景:電子合同簽署、審批流程手寫確認(rèn)、報(bào)銷單/表單簽名(高頻使用?。?/p>
?? 教育場景:在線作業(yè)手寫答題、試卷批注、課堂筆記手繪、學(xué)生簽名確認(rèn)
? 通用場景:用戶手寫昵稱、留言板手繪、實(shí)名認(rèn)證手寫、小程序簽名
核心優(yōu)點(diǎn)(手繪小亮點(diǎn))
輕量無依賴,接入成本極低,不用額外裝其他插件
兼容 Vue2、Vue3 雙版本,適配絕大多數(shù)Vue項(xiàng)目
可自定義:筆跡粗細(xì)、筆跡顏色、畫板背景(純色/圖片都可)
簽名可導(dǎo)出為base64格式,方便傳給后端保存或本地預(yù)覽
二、手把手使用教程(新手友好·一步一標(biāo))
前置小提醒
? Vue3 項(xiàng)目 → 安裝 vue-esign@2.x 版本(推薦)
? Vue2 項(xiàng)目 → 安裝 vue-esign@1.x 版本(別裝錯(cuò)哦!)
? 無需額外依賴,安裝完成直接使用,不用配置復(fù)雜環(huán)境
步驟1:安裝依賴(復(fù)制命令直接執(zhí)行)
打開項(xiàng)目終端,根據(jù)自己的Vue版本,粘貼對應(yīng)命令,回車安裝即可:
# Vue3 項(xiàng)目(推薦,適配最新Vue版本) npm install vue-esign --save # Vue2 項(xiàng)目(指定1.x版本,避免兼容問題) npm install vue-esign@1.0.10 --save
步驟2:引入插件(兩種方式,選一種就好)
方式1:全局引入(項(xiàng)目通用,推薦!)
在main.js/ main.ts中引入,全局注冊后,所有組件都能直接使用:
// Vue3 項(xiàng)目(main.js / main.ts)
import { createApp } from 'vue'
import App from './App.vue'
import vueEsign from 'vue-esign'
const app = createApp(App)
app.use(vueEsign) // 全局注冊簽名組件
app.mount('#app')
// Vue2 項(xiàng)目(main.js)
import Vue from 'vue'
import App from './App.vue'
import vueEsign from 'vue-esign'
Vue.use(vueEsign) // 全局注冊簽名組件
new Vue({
el: '#app',
render: h => h(App)
})
方式2:局部引入(僅單個(gè)組件使用,節(jié)省資源)
如果只有一個(gè)組件需要用簽名,直接在該組件內(nèi)引入即可:
<template>
<!-- 簽名組件,直接使用 -->
<vue-esign ref="esign" :width="800" :height="400" />
</template>
<script setup>
// Vue3 局部引入
import { ref } from 'vue'
import vueEsign from 'vue-esign'
const esign = ref(null) // 獲取簽名組件實(shí)例(必須!)
</script>
<!-- Vue2 局部引入 -->
<script>
import vueEsign from 'vue-esign'
export default {
components: {
vueEsign // 局部注冊組件
},
data() {
return {
esign: null // 獲取簽名組件實(shí)例
}
}
}
</script>
步驟3:基礎(chǔ)使用示例(復(fù)制即用,新手必看)
以下是Vue3完整可運(yùn)行示例,包含「簽名畫板+清空+保存+預(yù)覽」,粘貼到組件中就能直接測試:
<template>
<div class="esign-container" style="padding: 20px;">
<!-- 簽名畫板(核心組件) -->
<vue-esign
ref="esign"
:width="800" <!-- 畫板寬度(px),可自定義 -->
:height="400" <!-- 畫板高度(px),可自定義 -->
:lineWidth="6" <!-- 筆跡寬度,越大數(shù)據(jù)越粗 -->
:lineColor="#000" <!-- 筆跡顏色,支持十六進(jìn)制(如#ff6600) -->
:bgColor="#f5f5f5" <!-- 畫板背景色,淺灰色更顯筆跡 -->
style="border: 1px solid #ddd; border-radius: 8px;"
/>
<!-- 操作按鈕(清空+保存) -->
<div style="margin-top: 20px;">
<button @click="handleReset" style="margin-right: 10px; padding: 8px 16px; cursor: pointer;">??? 清空簽名</button>
<button @click="handleSave" style="padding: 8px 16px; background: #409eff; color: #fff; border: none; border-radius: 4px; cursor: pointer;">?? 保存簽名</button>
</div>
<!-- 簽名預(yù)覽(保存后顯示) -->
<div v-if="signImg" style="margin-top: 20px;">
<h4>?? 簽名預(yù)覽:</h4>
<img :src="signImg" alt="簽名圖片" style="max-width: 800px; border: 1px solid #eee;">
</div>
</div>
</template>
<script setup>
import { ref } from 'vue'
// 簽名組件實(shí)例(必須通過ref獲取,才能調(diào)用內(nèi)置方法)
const esign = ref(null)
// 保存的簽名圖片(base64格式,可用于預(yù)覽、上傳)
const signImg = ref('')
// 清空簽名(調(diào)用插件內(nèi)置reset方法)
const handleReset = () => {
esign.value.reset() // 清空畫板
signImg.value = '' // 清空預(yù)覽圖
}
// 保存簽名(轉(zhuǎn)為base64格式)
const handleSave = async () => {
try {
// 調(diào)用插件內(nèi)置generate方法,生成base64圖片
const base64 = await esign.value.generate()
if (!base64) {
alert('?? 請先完成簽名再保存哦!')
return
}
signImg.value = base64 // 顯示預(yù)覽圖
// 后續(xù)可將base64傳給后端保存,或轉(zhuǎn)為文件上傳
console.log('簽名base64:', base64)
} catch (error) {
console.error('保存簽名失?。?, error)
alert('保存簽名失敗,請重試!')
}
}
</script>
步驟4:自定義配置項(xiàng)(按需調(diào)整,手繪表格)
根據(jù)項(xiàng)目需求,自定義畫板樣式,所有配置項(xiàng)整理如下(直接復(fù)制使用):
| 配置項(xiàng) | 類型 | 默認(rèn)值 | 手繪說明(重點(diǎn)) |
|---|---|---|---|
| width | Number | 800 | 畫板寬度(單位px,不可寫百分比) |
| height | Number | 400 | 畫板高度(單位px,按需調(diào)整) |
| lineWidth | Number | 4 | 筆跡寬度,數(shù)值越大越粗(推薦5-8) |
| lineColor | String | #000000 | 筆跡顏色,支持十六進(jìn)制(如#ff0000紅色) |
| bgColor | String | #ffffff | 畫板背景色,純色即可(推薦#f5f5f5淺灰) |
| bgImg | String | '' | 畫板背景圖片(url地址,注意跨域問題) |
| disabled | Boolean | false | 是否禁用簽名(true=禁用,false=可簽名) |
自定義示例(帶背景圖的簽名板)
<vue-esign ref="esign" :width="800" :height="400" :lineWidth="8" <!-- 粗筆跡 --> :lineColor="#ff6600" <!-- 橙色筆跡,更醒目 --> bgImg="https://xxx.com/sign-bg.png" <!-- 自定義背景圖URL --> />
步驟5:常見問題 & 注意事項(xiàng)(手繪避坑指南)
?? 移動(dòng)端適配:畫板寬度別寫固定值,用屏幕寬度計(jì)算,避免溢出
// Vue3 適配移動(dòng)端(獲取屏幕寬度,減去邊距) const width = ref(document.documentElement.clientWidth - 40)?? base64體積過大:生成的簽名base64可能偏長,可安裝
image-conversion庫壓縮后再上傳后端npm install image-conversion --save?? 簽名為空提示:調(diào)用generate()時(shí),如果沒簽名,會返回false,需先判斷再保存(示例中已包含)
?? 跨域問題:bgImg(背景圖)需確保支持跨域,否則會報(bào)錯(cuò),優(yōu)先用本地圖片
?? 版本兼容:Vue2和Vue3版本不能混裝,裝錯(cuò)會導(dǎo)致組件無法顯示,嚴(yán)格按照步驟1安裝
三、核心方法速查(手繪小卡片)
插件只有2個(gè)核心方法,記牢就能滿足99%的需求,不用記復(fù)雜語法:
| 方法名 | 手繪說明 | 使用方式(必記) |
|---|---|---|
| reset() | 清空當(dāng)前簽名,重置畫板 | esign.value.reset() |
| generate() | 生成簽名base64圖片(異步) | await esign.value.generate() |
四、MD文檔保存方法(手繪步驟)
復(fù)制本文檔全部內(nèi)容,按照以下步驟保存,即可下載使用:
新建一個(gè)文本文檔(.txt),打開后粘貼全部內(nèi)容
重命名文件,將后綴從「.txt」改為「.md」(例:vue-esign手繪筆記.md)
雙擊文件,用Markdown編輯器(Typora、VS Code等)打開,即可查看/編輯
五、筆記總結(jié)(手繪重點(diǎn))
vue-esign 是Vue專屬輕量級電子簽名插件,純前端實(shí)現(xiàn),無依賴、易接入;
核心流程:安裝依賴 → 全局/局部引入 → 配置畫板 → 調(diào)用方法(保存/清空);
關(guān)鍵注意:版本別裝錯(cuò)、移動(dòng)端適配、簽名為空判斷,避開這3個(gè)坑就能順利使用。
到此這篇關(guān)于vue-esign用途及使用方法詳細(xì)教程的文章就介紹到這了,更多相關(guān)vue-esign用途及使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue3鼠標(biāo)經(jīng)過顯示按鈕功能的實(shí)現(xiàn)
本篇文章介紹了如何使用 Vue3 實(shí)現(xiàn)一個(gè)鼠標(biāo)經(jīng)過顯示按鈕的效果,我們使用了 Vue3 的 Composition API 來創(chuàng)建響應(yīng)式的數(shù)據(jù),并使用了?@mouseover?和?@mouseleave?事件來監(jiān)聽鼠標(biāo)的移入和移出事件,感興趣的朋友一起看看吧2024-04-04
vue項(xiàng)目中按需引入element-ui的正確實(shí)現(xiàn)方法
這篇文章主要介紹了vue項(xiàng)目中按需引入element-ui的正確實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
在Vue3里使用scss實(shí)現(xiàn)簡單的換膚功能
這篇文章主要介紹了在Vue3里使用scss實(shí)現(xiàn)簡單的換膚功能,主題色切換、亮色模式和暗黑模式切換、背景圖切換,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2024-12-12
Vuex進(jìn)行Echarts數(shù)據(jù)頁面初始化后如何更新dom
這篇文章主要為大家詳細(xì)介紹了使用Vuex做Echarts數(shù)據(jù)時(shí),當(dāng)頁面初始化后如何更新dom,文中的示例代碼講解詳細(xì),有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11
vue?element-plus中el-input修改邊框border的方法
element樣式還是蠻好的,只是有時(shí)候我們需要做一些調(diào)整,比如el-input的邊框,下面這篇文章主要給大家介紹了關(guān)于vue?element-plus中el-input修改邊框border的相關(guān)資料,需要的朋友可以參考下2022-09-09
詳解vue-cli項(xiàng)目在IE瀏覽器打開報(bào)錯(cuò)解決方法
這篇文章主要介紹了詳解vue-cli項(xiàng)目在IE瀏覽器打開報(bào)錯(cuò)解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Vue2.0+ElementUI實(shí)現(xiàn)查詢條件展開和收起功能組件(代碼示例)
文章介紹了如何將查詢條件表單封裝成一個(gè)通用組件,以提高開發(fā)效率,組件支持多條件的折疊和展開功能,并提供了使用示例,感興趣的朋友一起看看吧2025-01-01
Vue項(xiàng)目中Element UI組件未注冊的問題原因及解決方法
在 Vue 項(xiàng)目中使用 Element UI 組件庫時(shí),開發(fā)者可能會遇到一些常見問題,例如組件未正確注冊導(dǎo)致的警告或錯(cuò)誤,本文將詳細(xì)探討這些問題的原因、解決方法,以及如何在需要時(shí)撤銷相關(guān)操作,需要的朋友可以參考下2025-01-01

