Vue2实现手写电子签名

1、安装vue-esign

npm install vue-esign --save

2、在main.js中引入,并注册Vue

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

3、在页面中引入(html结构)

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

4、自带属性说明 

属性类型默认值说明
widthNumber800画布宽度,即导出图片的宽度
heightNumber300画布高度,即导出图片的高度
lineWidth4Number画笔粗细
lineColorString#000000画笔颜色
bgColorString画布背景色,为空时画布背景透明,
支持多种格式 '#ccc','#E5A1A1','rgb(229, 161, 161)','rgba(0,0,0,.6)','red'
isCropBooleanfalse是否裁剪,在画布设定尺寸基础上裁掉四周空白部分

5、实现代码(方法调用)

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 // 得到了签字生成的base64图片
    }).catch(err => { //  没有签名,点击生成图片时调用
      this.$message({
        message: err + ' 未签名!',
        type: 'warning'
      })
      alert(err) // 画布没有签字时会执行这里 'Not Signned'
    })
  }
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue.js是一种流行的JavaScript框架,用于构建用户界面。要在Vue.js实现电子签名,可以使用HTML5的Canvas元素和一些JavaScript库来实现。 以下是一个简单的示例,演示如何在Vue.js实现电子签名: 1. 首先,在Vue组件中添加一个Canvas元素,用于绘制签名: ```html <template> <div> <canvas ref="canvas" @mousedown="startDrawing" @mousemove="draw" @mouseup="stopDrawing"></canvas> <button @click="clearCanvas">清除</button> <button @click="saveSignature">保存</button> </div> </template> ``` 2. 在Vue组件的`data`中添加一些变量来跟踪绘图状态和保存签名的数据: ```javascript <script> export default { data() { return { drawing: false, context: null, lastX: 0, lastY: 0, signatureData: null }; }, mounted() { this.context = this.$refs.canvas.getContext('2d'); }, methods: { startDrawing(event) { this.drawing = true; this.lastX = event.clientX - this.$refs.canvas.offsetLeft; this.lastY = event.clientY - this.$refs.canvas.offsetTop; }, draw(event) { if (!this.drawing) return; const x = event.clientX - this.$refs.canvas.offsetLeft; const y = event.clientY - this.$refs.canvas.offsetTop; this.context.beginPath(); this.context.moveTo(this.lastX, this.lastY); this.context.lineTo(x, y); this.context.stroke(); this.lastX = x; this.lastY = y; }, stopDrawing() { this.drawing = false; }, clearCanvas() { this.context.clearRect(0, 0, this.$refs.canvas.width, this.$refs.canvas.height); }, saveSignature() { this.signatureData = this.$refs.canvas.toDataURL(); // 将签名保存为Base64编码的图像数据 } } }; </script> ``` 在上面的代码中,`startDrawing`、`draw`和`stopDrawing`方法用于跟踪鼠标移动并在Canvas上绘制签名。`clearCanvas`方法用于清除Canvas上的内容。`saveSignature`方法将签名保存为Base64编码的图像数据。 3. 最后,在Vue组件中使用这个Canvas组件: ```html <template> <div> <SignatureCanvas></SignatureCanvas> <img v-if="signatureData" :src="signatureData" alt="Signature"> </div> </template> <script> import SignatureCanvas from './SignatureCanvas.vue'; export default { components: { SignatureCanvas } }; </script> ``` 在上面的代码中,我们使用了一个自定义的`SignatureCanvas`组件来实现签名功能,并在签名完成后显示签名图像。 这只是一个简单的示例,你可以根据自己的需求进行扩展和定制。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值