Vue-电子签名(E-Signature)
业务场景
- 用户在页面使用电子签名进行文件的签收与信息的确认
分析
- 考虑用户会通过手机或者PC端进行操作,因此需要在事件中考虑手机端部分
思路
- 通过一个对话框的形式利用
Canvas
生成图片并通过toDataURL()
转换成Base64
的形式保存下来提交给后端进行保存
最终效果
实际效果展示
实现
export default {name: 'ESignature',data() {return {points: [],canvasTxt: null,stage_info: [],startX: 0,startY: 0,moveY: 0,moveX: 0,isDown: false,strokeStyle: '#000',lineWidth: 2}},mounted() {this.initCanvas()},methods: {// 初始化CanvasinitCanvas() {let canvas = this.$refs.canvasF// 获取画布的高度canvas.height = this.$refs.canvasHW.offsetHeight - 20// 获取画布的宽度canvas.width = this.$refs.canvasHW.offsetWidth - 20// 创建 context 对象this.canvasTxt = canvas.getContext('2d')this.stage_info = canvas.getBoundingClientRect()},// 鼠标按下事件 - 准备绘画mouseDown(ev) {ev = ev || eventev.preventDefault()if (ev) {let obj = {x: ev.offsetX,y: ev.offsetY}this.startX = obj.xthis.startY = obj.ythis.canvasTxt.beginPath()this.canvasTxt.moveTo(this.startX, this.startY)this.canvasTxt.lineTo(obj.x, obj.y)this.canvasTxt.stroke()this.canvasTxt.closePath()this.points.push(obj)this.isDown = true}},// 鼠标移动事件 - 开始绘画mouseMove(ev) {ev = ev || eventev.preventDefault()if (this.isDown) {let obj = {x: ev.offsetX,y: ev.offsetY}this.moveY = obj.ythis.moveX = obj.xthis.canvasTxt.strokeStyle = this.strokeStylethis.canvasTxt.lineWidth = this.lineWidththis.canvasTxt.beginPath()this.canvasTxt.moveTo(this.startX, this.startY)this.canvasTxt.lineTo(obj.x, obj.y)this.canvasTxt.stroke()this.canvasTxt.closePath()this.startY = obj.ythis.startX = obj.xthis.points.push(obj)}},// 松开鼠标事件 - 停止绘画mouseUp(ev) {ev = ev || eventev.preventDefault()if (ev) {let obj = {x: ev.offsetX,y: ev.offsetY}this.canvasTxt.beginPath()this.canvasTxt.moveTo(this.startX, this.startY)this.canvasTxt.lineTo(obj.x, obj.y)this.canvasTxt.stroke()this.canvasTxt.closePath()this.points.push(obj)this.points.push({ x: -1, y: -1 })this.isDown = false}},// 返回handleGoBack() {this.handleOverwrite()this.$emit('on-back')},// 重写handleOverwrite() {this.canvasTxt.clearRect(0, 0, this.$refs.canvasF.width, this.$refs.canvasF.height)this.points = []},}
}
详情请看:Vue-电子签名(E-Signature)
Vue-电子签名(E-Signature)相关推荐
- 电子签名 和 电子证书
上回我白话了一下:"对称加密"和"非对称加密"的来龙去脉,收到了不错的反馈,今天接着上一次白话留下的伏笔,说一说"对称加密"和"非 ...
- sa密码修改记录_【数据完整性】一文读懂电子记录与电子签名
一.电子记录的定义和特征 1.电子记录(Electronic Record)是指依靠计算机系统进行创建.修改.维护.存档.找回或发送,诸如文字.图表.数据.声音.图像及其他以电子(数字)形式存在的信 ...
- 白话解释 非对称加密,电子签名,电子证书,根证书,HTTPS,PKI 到底是什么
上回我白话了一下:"对称加密"和"非对称加密"的来龙去脉,收到了不错的反馈,今天接着上一次白话留下的伏笔,说一说"对称加密"和"非 ...
- 【北邮国院大三上】电子商务法(e-commerce law)知识点整理——e-transaction_Part2_BUPTWeek8
北邮国院大三电商在读,随课程进行整理知识点.仅整理PPT和相关法条中相对重要的知识点,个人认为相对不重要的细小的知识点不列在其中.如有错误请指出.转载请注明出处,祝您学习愉快. 在进入主题之前,先讲了 ...
- vue signature 电子签名
只修改3视图文件 文件夹位置放的相同 就不用改相对地址 npm install vue-signature-simple 文件名index.js 与main.js同级 import VueSignat ...
- vue中使用电子签名
使用vue-cli4脚手架,js-signature 2.0.0(https://www.npmjs.com/package/jq-signature)jquery 3.4.1. 1.安装jq及js- ...
- 【电子签名手机-vue】
电子签名手机-vue <template><div class="signature" @touchmove.prevent><div class=& ...
- VUE解决微信签名,SPA微信invalid signature问题,完美处理
深度解决方案,包教不包会,只因为踩坑无数,希望大家能有所收获 前端小菜鸟,因为项目要对接微信的jssdk,对接就需要签名认证,但是无奈安卓和IOS各有各的坑,本篇文章只讨论签名,和一个分享的坑,希望大 ...
- Web前后端笔记-vue封装http请求添加signature及后端(Java)解析并验证
首先帖下运行截图: 签名过期情况: 签名错误情况: 这里npm要导入js-md5,并且在main.js中添加 import md5 from 'js-md5' Vue.prototype.$md5 = ...
- vue 单页面(SPA) history模式调用微信jssdk 跳转后偶尔 “invalid signature“错误解决方案
vue 单页面(SPA) history模式调用微信jssdk 跳转后偶尔 "invalid signature"错误解决方案 参考文章: (1)vue 单页面(SPA) hist ...
最新文章
- 干货 | 目标检测入门,看这篇就够了(下)
- 波士顿动力发布新版人形机器人:能跳跃旋转、后空翻
- 定时从linux获取文件,Linux 使用scp命令定时将文件备份到另一台服务器
- LeetCode 之Two Sum
- Nexus:一站式私有仓库管理(NuGet、Maven、npm、Docker)
- 尚硅谷2020最新版SpringCloud(H版alibaba)框架开发教程全套完整版从入门到精通
- div超出不换行_文字超出显示点点点之ellipsis 设置
- 用c语言求最大公约数的流程图,如何用c语言求最大公约数和最小公倍数
- php关闭gd库,详解php开启gd库的两种方法
- linux服务器和客户端配置,Linux基础教程:YUM服务端与客户端配置步骤
- 【十二】Jmeter:“CSV 数据文件设置”参数化请求出现中文乱码
- 华为v3鸿蒙系统_重磅!华为鸿蒙系统问世!
- CDN技术详解之系统架构
- c# winform实现人脸识别系统(文末附源码)
- Excel 数据透视表教程大全之 03 刷新数据、添加多个字段作为值字段、值显示为总数的百分
- CPU在计算机领域的含义,电脑中的CPU是什么意思
- Restful API设计规范及实战
- php网页转html网页怎么弄
- 用容器类实现事件坚挺器接口的示例
- 芯片族探索互联网+的新视角
热门文章
- 如何设置一个可扩展的MongoDB数据库?
- 叶文贤:胸怀绿色润滑 锻造品牌灵魂
- Python/Matplotlib实现雨点图动画
- Image Retrieval using Scene Graphs ——基于场景图的图像检索 读书笔记
- usb驱动开发21——驱动生命线
- java引用不同包下同名类_Java--一个类中引用不同包下同名类
- padavan mysql_newifi3 用Padavan(老毛子)固件 搭建web 尝试
- idea中创建scala的worksheet第五章
- kubernetes Downward API
- 如何修复cdn服务器异常,cdn服务器连接异常解决方法