最近做了一个公司内部电子合同签署的功能,里面要实现电子签名,觉得可以记录一下!

1、HTML部分:

<template><div class='canvas-box' ref="canvasContent"><canvas @touchstart='touchStartHandle'@touchmove='touchMoveHandle'@touchend='touchEndHandle'ref="canvasBox"@mousedown="mouseDownHandle"@mousemove="mouseMoveHandle"@mouseup="mouseUpHandle"></canvas></div><div class='btn-box'><button @click="clearHandle">清空</button><button>提交</button></div>
</template>

2、CSS部分:

.canvasBox{position: relative;top: 100px;width: 90%;margin: 0 auto;height: 200px;
}
canvas {border: 1px solid #999;box-shadow: 0px 0px 2px 1px #999;
}
.btn-box {display: flex;justify-content: space-around;font-size: 28px;
}
button {background: transparent;border: none;
}

3、JS部分:

export default {data(){return {canvasTxt:null,stage_info:[],isDown:false}},mounted(){let canvas=this.$refs.canvasBox;canvas.height = 200;canvas.width =this.$refs.canvasContent.offsetWidth;this.canvasTxt=canvas.getContext("2d");this.stage_info = canvas.getBoundingClientRect();//getBoundingClientRect() : 获得页面中某个元素的左,上,右和下分别相对浏览器视窗的位置},methods:{//电脑设备事件mouseDownHandle(ev){ev = ev || event;ev.preventDefault();let obj={x:ev.offsetX ,y:ev.offsetY,};this.canvasTxt.beginPath();this.canvasTxt.moveTo(obj.x, obj.y);this.canvasTxt.lineTo(obj.x, obj.y);this.canvasTxt.stroke();this.canvasTxt.closePath();this.isDown=true;},//移动设备事件touchStartHandle(ev){ev = ev || event;ev.preventDefault();if(ev.touches.length == 1) {let obj={x:ev.targetTouches[0].clientX - this.stage_info.left,y:ev.targetTouches[0].clientY- this.stage_info.top};this.canvasTxt.beginPath();this.canvasTxt.moveTo(obj.x, obj.y);this.canvasTxt.lineTo(obj.x, obj.y);this.canvasTxt.stroke();this.canvasTxt.closePath();}},//电脑设备事件mouseMoveHandle(ev){ev = ev || event;ev.preventDefault();if(this.isDown){let obj={x:ev.offsetX,y:ev.offsetY};this.canvasTxt.beginPath();this.canvasTxt.moveTo(obj.x, obj.y);this.canvasTxt.lineTo(obj.x, obj.y);this.canvasTxt.stroke();this.canvasTxt.closePath();}},//移动设备事件touchMoveHandle(ev){ev = ev || event;ev.preventDefault();if(ev.touches.length == 1) {let obj={x:ev.targetTouches[0].clientX - this.stage_info.left,y:ev.targetTouches[0].clientY- this.stage_info.top};this.canvasTxt.beginPath();this.canvasTxt.moveTo(obj.x, obj.y);this.canvasTxt.lineTo(obj.x, obj.y);this.canvasTxt.stroke();this.canvasTxt.closePath();}},//电脑设备事件mouseUpHandle(ev){ev = ev || event;ev.preventDefault();let obj={x:ev.offsetX,y:ev.offsetY};this.canvasTxt.beginPath();this.canvasTxt.moveTo(obj.x, obj.y);this.canvasTxt.lineTo(obj.x, obj.y);this.canvasTxt.stroke();this.canvasTxt.closePath();this.isDown=false;},//移动设备事件touchEndHandle(ev){ev = ev || event;ev.preventDefault();if(ev.touches.length == 1) {let obj={x:ev.targetTouches[0].clientX - this.stage_info.left,y:ev.targetTouches[0].clientY- this.stage_info.top};this.canvasTxt.beginPath();this.canvasTxt.moveTo(obj.x, obj.y);this.canvasTxt.lineTo(obj.x, obj.y);this.canvasTxt.stroke();}},//清空画布clearHandle(){this.canvasTxt.clearRect(0, 0, this.$refs.canvasBox.width,this.$refs.canvasBox.height);},}
}

参考文章-可点击

H5 实现电子签名功能-VUE--12301合同签署类似功能相关推荐

  1. 华为:编程实现联想输入法 输入联想功能是非常实用的一个功能,请编程实现类似功能

    /**************************************************************************** 输入联想 问题描述: 输入联想功能是非常实用 ...

  2. c语言联想输入法算法,华为:编程实现联想输入法 输入联想功能是非常实用的一个功能,请编程实现类似功能...

    /**************************************************************************** 输入联想 问题描述: 输入联想功能是非常实用 ...

  3. 匹配输入华为:编程实现联想输入法 输入联想功能是非常实用的一个功能,请编程实现类似功能...

    首先声明,我是一个菜鸟.一下文章中出现技术误导情况盖不负责 每日一道理 漫漫人生路,谁都难免会遭遇各种失意或厄运.在凄风苦雨 惨雾愁云的考验面前,一个强者,是不会向命运低头的.风再冷,不会永远不息:雾 ...

  4. itextpdf5.x实现合同签署盖章预览功能

    文章目录 1.背景 2.E签宝产品接入使用 3.技术选型 3.1 iText 3.2 JFreeReport 3.3 PJX 3.3 Apache FOP 3.4 gnujpdf 3.5 PDF Bo ...

  5. 2023年10大电子合同签署平台排名参考

    数字经济成为推动中国国民经济高质量发展的新动能,电子签约作为企业数字化转型的降本增效.保安全的利器,应用前景广阔.为此我们研究了国内主流电子合同签署平台并做了深入分析对比,另外介绍了一些常识,希望对您 ...

  6. html5手机上签名,h5实现电子签名

    h5实现电子签名 前端需要引入:jSignature.min.js ,jquery-1.9.1.min.js 前端 部分写法: body内加 div id="signature"/ ...

  7. 君子签“区块链+保全链+全证据链”保障电子合同签署全程可靠可信

    随着数字经济的快速发展,企业开始积极拥抱信息化.数字化转型,越来越多的合同通过互联网.电子化的形式订立,以电子合同区块链存证为代表的电子证据应用被越来越多企业所采用,更被最高法官宣认可其法律效力,成为 ...

  8. 人力资源后台管理系统之合同—— 电子签章功能

    一: 先上图为敬: 二:通过上图可知,甲方需要先准备印章,账户,签署文件. 三:项目内截图: 四:通过左侧菜单可以看到合同管理菜单下,有三个子级菜单,分别是合同分类管理,合同推送,合同签章. 五:整体 ...

  9. 以电子签名形式订立的合同具有证据效力吗?

    关键词 电子签名 /文档签名 / 数据电文 / 中立第三方平台 / 电子认证机构 主题要旨 随着互联网行业的兴起,民事主体间采用电子签名形式订立合同的做法已日益普遍.根据法律规定,书面合同自当事人签字 ...

最新文章

  1. Spring学习-理解IOC和依赖注入
  2. jenkins运行日志时间与linux,Jenkins 用户文档(运行多个步骤)
  3. android 圆滑曲线,如何使用贝塞尔曲线在一组点上绘制平滑线?
  4. 计算机二级考试3月时间安排,2017年3月份计算机二级考试时间安排
  5. spring boot 异常设计原理
  6. feign-hystrix的使用
  7. 数据结构与算法--Tree(二叉树、B±树、红黑树)
  8. unsigned char bcd串乱码问题解决
  9. HDU3068 回文串 Manacher算法
  10. java app支付_Java 微信支付之APP支付服务端 (一)
  11. 当迷茫在大学里泛滥成灾——李开复
  12. C++解析char *p与char p[]
  13. 泰康人寿付刚:IT规划 SOA是目标
  14. 微服务架构的深入理解-总结的很好
  15. 配置pcie网卡指示灯
  16. ESP32-C3——专为物联网应用场景设计
  17. RocketMQ单机环境搭建
  18. 测试从Mathon插件发表
  19. Java Grammer:数据类型
  20. 我的爸爸正在计算机前写报告,关于计算器的作文结尾

热门文章

  1. Redis简介与基本使用
  2. android+蓝牙遥控器,一种通过蓝牙遥控安卓设备的方法与流程
  3. 【转载】Quartus II LPM使用指南-FIFO篇
  4. 天威诚信:数字认证体系助推车联网积极稳妥发展
  5. 段码液晶显示屏液交期有多长?
  6. 所以,《彩虹六号:围攻》到底需要怎么样的测试服?
  7. 遍身罗绮者 不是养蚕人
  8. 什么是绿色工厂,怎么进行绿色工厂认证
  9. 海康威视人脸识别智能终端获取设备事件二次开发Java
  10. caffe学习之——CMakeList.txt内容详解