|
|
/*
|
|
|
说明:
|
|
|
1. 该文件被嵌入到 /WF/WorkOpt/WorkCheck.htm 里面去,与WorkCheck.js 一起工作.
|
|
|
2. 为了适合不同的电子签名的需要,集成不同的电子签名厂家.
|
|
|
3. 如果不需要电子签名该文件保留为空.
|
|
|
4, WorkCheck.htm文件引用了jquery 在这里可以使用jQuery 的函数.
|
|
|
*/
|
|
|
|
|
|
|
|
|
function InitSignature() {
|
|
|
|
|
|
iSP.init(
|
|
|
{
|
|
|
//fixed: false,
|
|
|
isGet: true,
|
|
|
//currentKeysn: '0020000001', //正式环境应为this.EmpFrom0101000005
|
|
|
crossDomain: 'http://192.168.100.82:8080/iSignature-Phone/', //如果不是跨域,iSignature-Phone请设置项目路径http://127.0.0.1:8080/iSM_V3/
|
|
|
documentId: workid, //必须指定文档ID
|
|
|
moveable: true //是否可以移动签章
|
|
|
}
|
|
|
);
|
|
|
}
|
|
|
|
|
|
//作用:进行签章
|
|
|
function DoSignaturePhone(empNo, nodeID, EleID) {
|
|
|
|
|
|
//alert(empNo + ',' + nodeID +','+EleID);
|
|
|
|
|
|
if (CheckHaveSing(empNo) == true) {
|
|
|
alert('您已经盖过章,请撤销重盖.');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var txt = $("#WorkCheck_Doc").val();
|
|
|
if (txt == "" || txt == null || txt == undefined) {
|
|
|
alert('请输入审核意见.');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var tbID = nodeID + '_' + empNo;
|
|
|
document.getElementById(tbID).value = txt;
|
|
|
|
|
|
|
|
|
var divID = "div_" + tbID;
|
|
|
var user = EleID;
|
|
|
|
|
|
|
|
|
//签章必须的参数
|
|
|
var runSignatureParams = {
|
|
|
keySN: user, //签章服务的keysn,获取key文件名称,不包括后缀名,所有key文件存放在WEB-INF/key文件
|
|
|
documentId: workid, //文档ID
|
|
|
elemId: divID, //指定定位的页面元素的id,不仅限div元素,所有html元素都可以.
|
|
|
enableMove: true
|
|
|
//,DivList:"yfdiv"//添加显示改签章在其他位置,多个位置用“;”分割
|
|
|
};
|
|
|
|
|
|
var params = {
|
|
|
callback: function (data) {
|
|
|
if (data.error) {
|
|
|
alert('签章失败');
|
|
|
}
|
|
|
else {
|
|
|
//执行数据库保存.
|
|
|
SaveWorkCheck();
|
|
|
// alert('签章成功');
|
|
|
}
|
|
|
},
|
|
|
backGetPwd: false, //是否后台获取印章密码,跨域不支持
|
|
|
|
|
|
protectedData: [//定义保护数据,fieldName用于指定元素的id或者name获取该元素的值,元素为input或textarea时,获取该元素的value属性,其他元素调用innerHTML属性.
|
|
|
{ fieldDesc: "电子签章", fieldName: tbID } //已经设置了保护项描述信息,不必添加desc属性.
|
|
|
|
|
|
],
|
|
|
runSignatureParams: runSignatureParams//运行签章的参数
|
|
|
|
|
|
};
|
|
|
//显示选择印章列表div窗口
|
|
|
iSP.showGetSignatureByKey(params);
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
function CheckHaveSing(empNo) {
|
|
|
// var sg = DocForm.SignatureControl.GetSignatureInfo(empNo);
|
|
|
var objs = document.getElementsByName("iHtmlSignature"); //获得页面内签章个数
|
|
|
for (var i = 0; i < objs.length; i++) {
|
|
|
var item = objs[i];
|
|
|
|
|
|
if (item.UserName == empNo || item.UserName == '0020000001') { //将已存在的签章KEYNAME与当前业务系统用户进行比对
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*验证签章
|
|
|
*/
|
|
|
function checkSignature(isAlert) {
|
|
|
var checkSignatureParams = {
|
|
|
callback: function (data) {
|
|
|
console.log(data);
|
|
|
},
|
|
|
"signatures": iSP.signatures//获取签章数据,指定验证那些印章
|
|
|
};
|
|
|
iSP.checkSignature(checkSignatureParams); //执行验证签章操作
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*获取印章信息
|
|
|
*/
|
|
|
function getSignInfo() {
|
|
|
|
|
|
var _signature = [];
|
|
|
_signature.push(iSP.signatures[iSP.signatures.length - 1]); //获取最后一个签章,放在数组里面
|
|
|
// alert(_signature.documentId); //json转化成字符串
|
|
|
var signInfoParam = {
|
|
|
|
|
|
"signatures": _signature //获取签章数据,指定获取那些印章,
|
|
|
// , "callback": function (data) { }
|
|
|
|
|
|
|
|
|
|
|
|
//获取签章回调方法,该参数不是必须,客户可以通过设置该属性和方法,接受验证结果,做自己的业务流程.
|
|
|
};
|
|
|
iSP.getSignInfo(signInfoParam); //获取指定的印章的信息.
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 删除签章
|
|
|
*/
|
|
|
function removeSignature(documentId, userNo) {
|
|
|
|
|
|
|
|
|
// getSignInfo();
|
|
|
//return;
|
|
|
|
|
|
var _signature = [];
|
|
|
_signature.push(iSP.signatures[iSP.signatures.length - 1]); //获取最后一个签章,放在数组里面
|
|
|
//alert(jsonToString(_signature));//json转化成字符串
|
|
|
var removeSignatureParam = {
|
|
|
"signatures": _signature //获取签章数据,指定获取那些印章,
|
|
|
//,"callback":testFunction//删除签章回调方法,该参数不是必须,客户可以通过设置该属性和方法,接受验证结果,做自己的业务流程.
|
|
|
};
|
|
|
iSP.removeSignature(removeSignatureParam);
|
|
|
} |