You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

318 lines
12 KiB
Plaintext

9 months ago
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>手写签名版</title>
<script src="../Scripts/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="../Scripts/bootstrap/js/jquery.min.js"></script>
<script type="text/javascript" src="../Scripts/bootstrap/js/bootstrap.min.js"></script>
<script type="text/javascript" src="../Scripts/QueryString.js"></script>
<script type="text/javascript" src="../Scripts/config.js"></script>
<script type="text/javascript" src="../Comm/Gener.js"></script>
<script src="../Scripts/jq-signature.min.js" type="text/javascript"></script>
<script src="../Scripts/jq-signature.js" type="text/javascript"></script>
<style>
* {
margin: 0;
padding: 0;
}
.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
.clearfix {
*zoom: 1;
}
.wapr_nav {
border-bottom: 2px solid #ccc;
}
.wapr_nav_left {
margin: 10px 0;
padding: 0 20px;
float: left;
font-size: 15px;
color: #333;
text-align: center;
line-height: 30px;
border-right: 1px solid #ccc;
cursor: pointer;
}
.wapr_nav_right {
float: right;
margin: 10px 0;
padding: 0 20px;
font-size: 15px;
color: #333;
text-align: center;
line-height: 30px;
cursor: pointer;
}
.wapr_nav_left_img1 {
display: block;
width: 15px;
height: 15px;
background: url(Img/1.png) no-repeat;
margin-left: 7px;
}
.wapr_nav_left_img2 {
display: block;
width: 15px;
height: 15px;
background: url(Img/2.png) no-repeat;
margin-left: 7px;
}
.wapr_nav_left_img3 {
display: block;
width: 15px;
height: 15px;
background: url(Img/3.png) no-repeat;
margin-left: 7px;
}
.wapr_nav_left_img4 {
display: block;
width: 15px;
height: 15px;
background: url(Img/4.png) no-repeat;
margin-left: 7px;
}
.qudiao {
border-right: none;
}
.qianziban {
}
#addImg input {
position: absolute;
top: 5px;
right: 6px;
width: 60px;
/* color: #fff; */
height: 50px;
/* 重点代码让input隐藏 */
opacity: 0;
}
#addImg {
position: relative;
height: 40px;
width: 35px;
}
</style>
</head>
<body>
<div class="wapr" id="sxb" style="height: 100%">
<div class="wapr_nav clearfix" id="button">
<div id="saveBtn" onclick="saveSignature();" class="wapr_nav_left"><span class="wapr_nav_left_img1"></span>保存</div>
<div id="addImg" onclick="AddImg()" class="wapr_nav_left"><span class="wapr_nav_left_img2"></span>插入<input id="inputImg" type="file" /></div>
<div id="clearBtn" onclick="clearCanvas()" class="wapr_nav_left qudiao"><span class="wapr_nav_left_img3"></span>重置</div>
<!-- <div class="wapr_nav_right"><span class="wapr_nav_left_img4"></span>取消</div>-->
</div>
<div id="signature" class="js-signature" data-border="0px solid black" data-line-color="#bc0000"
data-auto-fit="true">
</div>
</div>
<script type="text/javascript">
$(window).resize(function () {
Auto();
//ctx.restore();
});
function Auto() {
// 变化后需要做的事
var canvawidth = document.getElementById("signature").offsetWidth;
var canvaheight = document.getElementById("signature").offsetHeight;
var iframe = window.parent.document.getElementById("eudlgframe");
//console.log( )
document.body.style.height = iframe.offsetHeight + "px";
document.getElementById("signature").style.height = document.getElementById("sxb").offsetHeight - document.getElementById("button").offsetHeight + 'px';
document.getElementById("signature").style.width = document.getElementById("sxb").offsetWidth + 'px';
var canvas = $('#signature').children()[0];
var png = canvas.toDataURL("image/png")
var width = document.getElementById("signature").offsetWidth;
var height = document.getElementById("signature").offsetHeight;
canvas.width = width;
canvas.height = height;
canvas.style.width = width + 'px';
canvas.style.height = height + 'px';
//SavePC = pic;
//创建image对象
var imgObj = new Image();
imgObj.src = png;
var ctx = canvas.getContext("2d");
//待图片加载完后将其显示在canvas上
imgObj.onload = function () {
// console.log(width+"========"+canvawidth);
ctx.strokeStyle = "#000";
ctx.drawImage(this, (width - canvawidth) / 2, (height - canvaheight) / 2);//this即是imgObj,保持图片的原始大小470*480
//ctx.drawImage(this, 0, 0,1024,768);//改变图片的大小到1024*768
ctx.restore();
ctx.save();
}
}
</script>
<script type="text/javascript">
var imagePath = "";
var SavePC = ""
$(document).on('ready', function () {
//alert('还未实现.');
//if ($('.js-signature').length) {
$('.js-signature').jqSignature();
document.getElementById("signature").style.width = document.getElementById("sxb").offsetWidth + 'px';
var canvas = $('#signature').children()[0];
//canvas.width = img.width;
canvas.height = 159;
canvas.style.height = "159px";
var ctx = canvas.getContext("2d");
ctx.strokeStyle = "#000";
ctx.restore();
//从缓存取出除父页面图片的二进制流
InsertImg("");
// }
Auto();
});
//插入
//在input file内容改变的时候触发事件
$('#inputImg').change(function () {
//获取input file的files文件数组;
//$('#filed')获取的是jQuery对象.get(0)转为原生对象;
//这边默认只能选一个,但是存放形式仍然是数组,所以取第一个元素使用[0];
var file = $('#inputImg').get(0).files[0];
//创建用来读取此文件的对象
var reader = new FileReader();
//使用该对象读取file文件
reader.readAsDataURL(file);
//读取文件成功后执行的方法函数
reader.onload = function (e) {
//读取成功后返回的一个参数e整个的一个进度事件
console.log(e);
//选择所要显示图片的img要赋值给img的src就是e中target下result里面
//转为base64编码格式的地址并加载到画布
InsertImg(e.target.result);
//是否是插入的图片
window.localStorage.setItem("InsertTmg", "true");
}
})
//加载保存的签名
function InsertImg(SavePC) {
if (SavePC == "")
SavePC = localStorage.getItem("writeImg");
var img = new Image();
var user = new WebUser();
var canvas = $('#signature').children()[0];
var ctx = canvas.getContext("2d");
if (!SavePC) {
img.src = "../../DataUser/Siganture/" + user.Name + ".png";
} else {
img.src = SavePC;
}
console.log(SavePC);
img.onload = function () {
//img.width="50px";
//img.height="100px";
ctx.strokeStyle = "#000";
ctx.drawImage(img, 0, 0, 340, 150);
if (!SavePC) {
var data = new Date();
var day = data.getDate();
var day1 = data.getMonth() + 1;
ctx.restore();
ctx.beginPath();
ctx.textBaseline = "middle";
ctx.textAlign = "center";
ctx.font = "bold 20px 宋体";
ctx.fillText(day1 + "." + day, 315, 150);
}
ctx.restore();
ctx.save();
}
}
function clearCanvas() {
//$('#signature').html('<p><em></em></p>');
$('.js-signature').eq(0).jqSignature('clearCanvas');
var canvas = $('#signature').children()[0]
var ctx = canvas.getContext("2d");
ctx.strokeStyle = "#000";
ctx.restore();
}
function isCanvasBlank(canvas) {
var blank = document.createElement('canvas');//系统获取一个空canvas对象
blank.width = canvas.width;
blank.height = canvas.height;
return canvas.toDataURL() == blank.toDataURL();//比较值相等则为空
}
function saveSignature() {
var canvas = $('#signature').children()[0];
if (isCanvasBlank(canvas)) {
SavePC = '';
} else {
$('#signature').empty();
var pic = $('.js-signature').jqSignature('getDataURL');
//var pic = $('.js-signature').eq(0).jSignature("getData", "svgbase64")
SavePC = pic;
}
//图片二进制流存入到缓存中
window.localStorage.setItem("writeImg", SavePC);
//console.log(SavePC+"pic=========");
var writType = GetQueryString("WritType");
// console.log(writType);
if (writType != null && writType != undefined && writType == "WorkCheck") {
//console.log("=============");
parent.setHandWriteSrc("WorkCheck", SavePC, 1);
return;
}
var newpic = pic.replace(/^data:image\/(png|jpg);base64,/, "");
var handler = new HttpHandler("BP.WF.HttpHandler.WF_CCForm");
handler.AddPara("FK_Node", GetQueryString("FK_Node"));
handler.AddPara("WorkID", GetQueryString("WorkID"));
handler.AddPara("FK_Flow", GetQueryString("FK_Flow"));
handler.AddPara("KeyOfEn", GetQueryString("KeyOfEn"));
handler.AddPara("imageData", newpic);
var data = handler.DoMethodReturnString("HandWriting_Save");
if (data.indexOf('err@') == 0) {
alert(data);
imagePath = "";
return;
}
if (data.indexOf('info@') == 0) {
imagePath = data.replace('info@', '');
parent.setHandWriteSrc(GetQueryString("KeyOfEn"), imagePath, 0);
}
alert("图片上传成功.");
}
$('.js-signature').eq(0).on('jq.signature.changed', function () {
window.localStorage.setItem("InsertTmg", "false");
});
</script>
</body>
</html>