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

11 months ago
/** 显示日志 */
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);
}