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.

426 lines
14 KiB
JavaScript

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.

/** 显示日志 */
var psShowLog = false;
/** 正在执行请求 */
var psRequesting = false;
/**
* 用户签名通用请求函数
* @param {any} url 请求地址
* @param {any} data 请求数据
* @param {any} cbFunc 回调函数
* @param {any} cbParam 回调函数参数
* @param {any} errorMessage 错误信息
*/
function psRequest(url, data, cbFunc, cbParam, errorMessage) {
//if (psRequesting === true) {
// alert("上一任务正在执行, 请等待完成后再发送请求.");
// return;
//}
//psRequesting = true;
var sUserAgent = navigator.userAgent;
var isWin10 = sUserAgent.indexOf("Windows NT 10") > -1 || sUserAgent.indexOf("Windows 10") > -1;
if (isWin10) {
psRequestJsonp(url, data, cbFunc, cbParam, errorMessage);
} else {
psRequestCors(url, data, cbFunc, cbParam, errorMessage);
}
}
/**
* 用户签名通用请求函数
* @param {any} url 请求地址
* @param {any} data 请求数据
* @param {any} cbFunc 回调函数
* @param {any} cbParam 回调函数参数
* @param {any} errorMessage 错误信息
*/
function psRequestJsonp(url, data, cbFunc, cbParam, errorMessage) {
/*
$.jsonp({
type: "get",
async: false,
url: url + "&" + data,
dataType: "jsonp",
success: function (result) {
psRequesting = false;
// 显示返回数据
if (psShowLog) {
console.log("------------返回数据------------");
console.log(JSON.stringify(result));
}
cbFunc(result.success, result.message, result.data, cbParam);
},
error: function (jqXHR, textStatus, errorThrown) {
psRequesting = false;
var message = errorMessage + textStatus;
cbFunc(false, message, null, cbParam);
}
});
*/
$.ajax({
type: "get",
async: false,
url: url + "&" + data,
dataType: "jsonp",
jsonp: "callback",//传递给请求处理程序或页面的用以获得jsonp回调函数名的参数名(默认为:callback)
success: function (result) {
psRequesting = false;
// 显示返回数据
if (psShowLog) {
console.log("------------返回数据------------");
console.log(JSON.stringify(result));
}
cbFunc(result.success, result.message, result.data, cbParam);
},
error: function (jqXHR, textStatus, errorThrown) {
psRequesting = false;
var message = errorMessage + textStatus;
cbFunc(false, message, null, cbParam);
}
});
}
/**
* 用户签名通用请求函数
* @param {any} url 请求地址
* @param {any} data 请求数据
* @param {any} cbFunc 回调函数
* @param {any} cbParam 回调函数参数
* @param {any} errorMessage 错误信息
*/
function psRequestCors(url, data, cbFunc, cbParam, errorMessage) {
var request;
var requestType = "";
if (window.XDomainRequest) {
// code for IE8, IE9, IE10
request = new XDomainRequest();
requestType = "XDomainRequest";
} else if (window.XMLHttpRequest) {
// code for IE11+, Firefox, Chrome, Opera, Safari
request = new XMLHttpRequest();
requestType = "XMLHttpRequest";
} else {
// code for IE5, IE6, IE7
request = new ActiveXObject("Microsoft.XMLHTTP");
requestType = "Microsoft.XMLHTTP";
}
try {
if (requestType === "XDomainRequest") {
request.onload = function () {
// 处理完成
psRequesting = false;
// 成功返回数据
var responseText = request.responseText;
// 控制台显示返回数据
if (psShowLog) {
console.log("------------返回数据------------");
console.log(responseText);
}
var result = JSON.parse(responseText);
cbFunc(result.success, result.message, result.data, cbParam);
};
} else {
request.onreadystatechange = function () {
// 处理完成
psRequesting = false;
// 成功返回数据
if (request.readyState === 4 && request.status === 200) {
var responseText = request.responseText;
// 控制台显示返回数据
if (psShowLog) {
console.log("------------返回数据------------");
console.log(responseText);
}
var result = JSON.parse(responseText);
cbFunc(result.success, result.message, result.data, cbParam);
}
};
}
if (requestType !== "Microsoft.XMLHTTP") {
request.ontimeout = function () {
// 处理完成
psRequesting = false;
// 请求超时
var message = errorMessage + "请求超时";
cbFunc(false, message, null, cbParam);
};
request.onerror = function (e, b) {
// 处理完成
psRequesting = false;
// 请求出错
var message = errorMessage + "请求出错";
cbFunc(false, message, null, cbParam);
};
}
// 发送请求
if (requestType !== "XDomainRequest") {
request.open("POST", url, false);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=UTF-8");
} else {
request.open("POST", url);
}
request.send(data);
} catch (err) {
// 处理完成
psRequesting = false;
// 请求出错
var message = errorMessage + err.message;
cbFunc(false, message, null, cbParam);
}
}
/**
* 用户签名本地请求函数
* @param {any} action 请求动作
* @param {any} cbFunc 回调函数
* @param {any} data 请求数据
* @param {any} cbParam 回调函数参数
*/
function psRequestLocal(action, cbFunc, data, cbParam) {
var jsonData = JSON.stringify(data);
// 显示请求数据
if (psShowLog) {
console.log("------------请求数据------------");
console.log(JSON.stringify(jsonData));
}
var url = "http://127.0.0.1:56961?action=" + action;
data = "data=" + Base64.encode(jsonData);
var errorMessage = "请求本地服务失败, 请确认已安装客户端并打开.\n如有疑问, 请联系系统管理员.\n错误信息:";
psRequest(url, data, cbFunc, cbParam, errorMessage);
}
/**
* 用户签名服务器请求函数
* @param {any} action 请求动作
* @param {any} cbFunc 回调函数
* @param {any} data 请求数据
* @param {any} cbParam 回调函数参数
*/
function psRequestServer(action, cbFunc, data, cbParam) {
// 判断请求地址
var url = data.serverAddress;
if ((url === null) || (url === undefined) || (url === "")) {
alert("服务器地址不能为空!");
return;
}
var jsonData = JSON.stringify(data);
// 显示请求数据
if (psShowLog) {
console.log("------------请求数据------------");
console.log(JSON.stringify(jsonData));
}
url = url + action + "?";
data = "data=" + Base64.encode(jsonData);
var errorMessage = "请求服务器失败, 请确认网络连接是否正常.\n如有疑问, 请联系系统管理员.\n错误信息:";
psRequestCors(url, data, cbFunc, cbParam, errorMessage);
}
/**
* 用户签名服务器请求函数
* @param {any} serverAddress 请求动作
* @param {any} action 请求动作
* @param {any} cbFunc 回调函数
* @param {any} data 请求数据
* @param {any} cbParam 回调函数参数
*/
function psRequestServer1(serverAddress, action, cbFunc, data, cbParam) {
// 判断请求地址
var url = serverAddress;
if ((url === null) || (url === undefined) || (url === "")) {
alert("服务器地址不能为空!");
return;
}
// 显示请求数据
if (psShowLog) {
console.log("------------请求数据------------");
console.log(data);
}
url = url + action + "?";
// data = "data=" + Base64.encode(jsonData);
var errorMessage = "请求服务器失败, 请确认网络连接是否正常.\n如有疑问, 请联系系统管理员.\n错误信息:";
psRequest(url, data, cbFunc, cbParam, errorMessage);
}
/**
* 用户签名通用回调函数, 回调函数必须包含四个参数, 且顺序不可改变
* @param {any} success 是否成功
* @param {any} message 返回消息
* @param {any} data 返回数据
* @param {any} cbParam 回调参数, 请求时传入
*/
function psCBFunc(success, message, data, cbParam) {
if (success) {
//成功处理
alert("处理成功!");
if (data !== null) {
alert(data);
}
} else {
alert(message);
}
}
/**
* 签订用户文书(传递显示数据)
* @param {any} cbFunc 回调函数
* @param {any} data 请求数据
* @param {any} cbParam 回调函数参数
*/
function psSignSignerNotifyWithShowData(cbFunc, data, cbParam) {
psRequestLocal("SignSignerNotifyWithShowData", cbFunc, data, cbParam);
}
/**
* 签订用户文书(选择模板)
* @param {any} cbFunc 回调函数
* @param {any} data 请求数据
* @param {any} cbParam 回调函数参数
*/
function psSignPatientNotify(cbFunc, data, cbParam) {
psRequestLocal("SignPatientNotify", cbFunc, data, cbParam);
}
/**
* 签订用户授权书
* @param {any} cbFunc 回调函数
* @param {any} data 请求数据
* @param {any} cbParam 回调函数参数
*/
function psSignPatientEmpower(cbFunc, data, cbParam) {
psRequestLocal("SignPatientEmpower", cbFunc, data, cbParam);
}
/**
* 创建待办用户文书(传递显示数据)-前期命名错误, 为兼容性保留, 已更名为psCreateTodoPatientNotifyWithShowData
* @param {any} cbFunc 回调函数
* @param {any} data 请求数据
* @param {any} cbParam 回调函数参数
*/
function psCreateTodoSignPatientNotifyWithShowData(cbFunc, data, cbParam) {
psRequestLocal("CreateTodoPatientNotifyWithShowData", cbFunc, data, cbParam);
}
/**
* 创建待办用户文书(传递显示数据)
* @param {any} cbFunc 回调函数
* @param {any} data 请求数据
* @param {any} cbParam 回调函数参数
*/
function psCreateTodoPatientNotifyWithShowData(cbFunc, data, cbParam) {
psRequestLocal("CreateTodoPatientNotifyWithShowData", cbFunc, data, cbParam);
}
/**
* 创建待办用户文书(传递显示数据)
* @param {any} cbFunc 回调函数
* @param {any} data 请求数据
* @param {any} cbParam 回调函数参数
*/
function psCreateTodoPatientNotify(cbFunc, data, cbParam) {
psRequestLocal("CreateTodoPatientNotify", cbFunc, data, cbParam);
}
/**
* 创建待办授权书(选择模板)
* @param {any} cbFunc 回调函数
* @param {any} data 请求数据
* @param {any} cbParam 回调函数参数
*/
function psCreateTodoPatientEmpower(cbFunc, data, cbParam) {
psRequestLocal("CreateTodoPatientEmpower", cbFunc, data, cbParam);
}
/**
* 创建待办授权书(传递显示数据)
* @param {any} cbFunc 回调函数
* @param {any} data 请求数据
* @param {any} cbParam 回调函数参数
*/
function psCreateTodoPatientEmpowerWithShowData(cbFunc, data, cbParam) {
psRequestLocal("CreateTodoPatientEmpowerWithShowData", cbFunc, data, cbParam);
}
/**
* 通过请求编码获取用户文书数据
* @param {any} cbFunc 回调函数
* @param {any} data 请求数据
* @param {any} cbParam 回调函数参数
*/
function psGetPatientNotifyByIncode(cbFunc, data, cbParam) {
psRequestServer("/api/notify/select", cbFunc, data, cbParam);
}
/**
* 查询用户文书数据
* @param {any} cbFunc 回调函数
* @param {any} data 请求数据
* @param {any} cbParam 回调函数参数
*/
function psSelectPatientNotify(cbFunc, data, cbParam) {
psRequestServer("/api/notify/select", cbFunc, data, cbParam);
}
/**
* 查询用户授权书数据
* @param {any} cbFunc 回调函数
* @param {any} data 请求数据
* @param {any} cbParam 回调函数参数
*/
function psSelectPatientEmpower(cbFunc, data, cbParam) {
psRequestServer("/api/empower/select", cbFunc, data, cbParam);
}
/**
* 获取文书文件
* @param {any} cbFunc 回调函数
* @param {any} data 请求数据
* @param {any} cbParam 回调函数参数
*/
function psGetSingerNotifyFile(cbFunc, data, cbParam) {
var sendData = "pk=" + data.pk + "&type=" + data.type;
psRequestServer1(data.serverAddress, "/api/notify/getFile", cbFunc, sendData, cbParam);
}
/**
* 获取授权书文件
* @param {any} cbFunc 回调函数
* @param {any} data 请求数据
* @param {any} cbParam 回调函数参数
*/
function psGetPatientEmpowerFile(cbFunc, data, cbParam) {
var sendData = "pk=" + data.pk + "&type=" + data.type;
psRequestServer1(data.serverAddress, "/api/empower/getFile", cbFunc, sendData, cbParam);
}
/**
* 采集用户信息
* @param {any} cbFunc 回调函数
* @param {any} data 请求数据
* @param {any} cbParam 回调函数参数
*/
function psCollectPatientInfo(cbFunc, data, cbParam) {
psRequestLocal("CollectPatientInfo", cbFunc, data, cbParam);
}
/**
* 验证用户信息
* @param {any} cbFunc 回调函数
* @param {any} data 回调函数
* @param {any} cbParam 回调函数
*/
function psVerifyPatientInfo(cbFunc, data, cbParam) {
psRequestLocal("VerifyPatientInfo", cbFunc, data, cbParam);
}
/**
*
* @param {*} cbFunc 回调函数
* @param {*} data 回调函数
* @param {*} cbParam 回调函数
*/
function signPdfOfBase64(cbFunc, data, cbParam) {
psRequestLocal("signPdfOfBase64", cbFunc, data, cbParam);
}