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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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