var interval = 0; var jyztz; // 由于定时器只能传字符串 所以定义全局参数 var parent_mine;//framepage窗口对象 var json_mine;//交易入参 var classPath_mine;//指向后台路径 var userBean_mine;//用户对象 var className_mine_suc;//交易结束后赋值的方法名(成功) var className_mine_err;//交易结束后赋值的方法名(失败) function getinitStr() { var json = { "flag":"1", "jylx":"init" } return JSON.stringify(json); } /** * 交易入口 * @param level * @param json * @param userBean * @param className * @param classPath */ function sendYbMessage(parent,json,userBean,className_suc,className_err,classPath,ifaways){ parent_mine = parent; parent_mine.transactionMap.clear(); var jsons = getinitStr();//调用交易前 需发送初始化websocket if(parent_mine.websocket && parent_mine.websocket.readyState==1){ //一定是要连接成功的! parent_mine.websocket.send(jsons); json_mine = json; classPath_mine = classPath; userBean_mine = userBean; className_mine_suc = className_suc; className_mine_err = className_err; var start = (new Date()).getTime(); interval=setTimeout('timelyFun('+start+','+ifaways+')',100); }else{ console.log("websocket连接失败"); } //interval=setTimeout('timelyFun('+strMap+')',100); } /** * 发送交易获取发送串 * @param json * @param userBean * @param classPath */ function getYbSendMessage(json,userBean,classPath,ifalways){ //inpatientService.getHttpICKInfo 读卡 buffalo.remoteCall(classPath, [json,userBean], function(reply){//发交易后监听 var start = (new Date()).getTime(); clearTimeout(interval); interval=setTimeout('return_message('+start+','+ifalways+')',100); }); } /** * 发送交易获取发送串 * @param json * @param userBean * @param classPath */ function getYbSendMessage_admin(json,classPath,ifalways){ //inpatientService.getHttpICKInfo 读卡 buffalo.remoteCall(classPath, [json], function(reply){//发交易后监听 var start = (new Date()).getTime(); clearTimeout(interval); interval=setTimeout('return_message('+start+','+ifalways+')',100); }); } /** * 医保交易结束之后赋值 * @param start */ function return_message(start,ifalways){ var end = (new Date()).getTime(); jyztz = getRetByFramePage(parent_mine,"jyzt"); // parent_mine.transactionMap.get("jyzt"); if(jyztz == '1'){ callAlert(className_mine_suc); }else if(jyztz == "-1"){ callAlert(className_mine_err); }else if(jyztz == "9"){ }else{ if(!((end-start)>=1000*5) || ifalways=='1'){ interval=setTimeout('return_message('+start+','+ifalways+')',100); }else { clearTimeout(interval); LayerMsg("交易超时"); } } } /** * 入口 * @param start 交易发起时间 * @param parents frampage * @param json 交易入参 * @param userBean * @param className 交易结束处理赋值方法 * @param classPath 获取拼串方法路径 */ function timelyFun(start,ifalways){ // start,parents,json,userBean,className,classPath var end = (new Date()).getTime(); jyztz = getRetByFramePage(parent_mine,"jyzt"); // parent_mine.transactionMap.get("jyzt"); if(jyztz=='0'){ if(json_mine.admin=="1"){ getYbSendMessage_admin(json_mine,classPath_mine,ifalways); }else{ getYbSendMessage(json_mine,userBean_mine,classPath_mine,ifalways); } }else if(jyztz == '-1'){ callAlert(className_mine_err); }else if(jyztz == '9'){//不做操作 }else{ if(!((end-start)>=1000*5) || ifalways=='1'){//部分交易不限时,重庆的结算 interval=setTimeout('timelyFun('+start+','+ifalways+')',100); }else{//交易超时 clearTimeout(interval); LayerMsg("交易超时"); } } } //自定义函数:根据传入的函数名,调用函数 function callAlert(functionName){ //根据函数名得到函数类型 var func=eval(functionName); //创建函数对象,并调用 new func(); } var tzqh = true; //根据险种代码来指向JS function initYBJS(xzdm,className,strMap) { var ybPath = ""; var userBean = getUserBean(); if(tzqh && xzdm == '33100001' && userBean.ywktbz && userBean.ywktbz.indexOf("9")>-1){ console.log("切换新台州市本级!"); ybPath = "/charge/js/outpatientCharge_33100001_tz.js"; $.getScript(ybPath, function () { console.log('加载了' + xzdm + "的JS"); if (className) { callAlert(className, strMap); } }); }else { if (xzdm == '33100001' || xzdm == "33102201" || xzdm == "33102401") {//台州恩普 ybPath = "/charge/js/outpatientCharge_33100001.js"; } else if (xzdm == '50000000') {//重庆 ybPath = "/charge/js/outpatientCharge_50000000.js"; } else if (xzdm == '33052301') {//安吉 湖州 ybPath = "/charge/js/outpatientCharge_33052301.js"; } else if (xzdm == "33102101" || xzdm == "33102301" || xzdm == "33108101" || xzdm == "33108201") { ybPath = "/charge/js/outpatientCharge_33102101.js"; } else if (xzdm == '33050001' || xzdm == '33052201') { ybPath = "/charge/js/outpatientCharge_33050001.js"; } else if (xzdm == '33070001') {//金华 ybPath = "/charge/js/outpatientCharge_33070001.js"; } else if (xzdm == '33080001') {//衢州 ybPath = "/charge/js/outpatientCharge_33080001.js"; } else if (xzdm == '33020001') {//宁波 ybPath = "/charge/js/outpatientCharge_33020001.js"; } else if (wzXzdm(xzdm)) { ybPath = "/charge/js/outpatientCharge_33038101.js"; } else if (xzdm == '33010001') { ybPath = "/charge/js/outpatientCharge_33010001.js"; } else if (xzdm == '33000000') { ybPath = "/charge/js/outpatientCharge_33000000.js"; } else if (xzdm == "50000099" || (xzdm && xzdm.indexOf('500')==0)) { ybPath = "/charge/js/outpatientCharge_50000099.js"; } else if (xzdm == '33000001') { ybPath = "/charge/js/outpatientCharge_33000001.js"; } else if (xzdm == '32098101') { ybPath = "/charge/js/outpatientCharge_32098101.js"; }else if (xzdm=='33042201'){ ybPath = "/charge/js/outpatientCharge_33042201.js"; }else if (xzdm=='33000099'){ ybPath = "/charge/js/outpatientCharge_33000099.js"; }else if(xzdm =='33038102'){ ybPath = "/charge/js/outpatientCharge_33038102.js"; } else { ybPath = "/charge/js/outpatientCharge_00000000.js"; } if (ybPath) { $.getScript(ybPath, function () { console.log('加载了' + xzdm + "的JS"); if (className) { callAlert(className, strMap); } }); } } } //根据险种代码来指向JS function initYBJSBySsqh(ssqh,className,strMap) { var ybPath = ""; if(ssqh){ console.log("ssqh修改前:"+ssqh); var mySsqh = ssqh.substring(0,3); console.log("ssqh修改后:"+ssqh); if(mySsqh =='500'){//重庆 ybPath = "/charge/js/outpatientCharge_50000099.js"; }else if(ssqh.indexOf("3302")>-1){//宁波的初始化登录 // ybPath = "/charge/js/outpatientCharge_33020001.js"; ybPath = "/charge/js/outpatientCharge_33000099.js"; }else if(ssqh.indexOf('3304')>-1){ ybPath = "/charge/js/outpatientCharge_33000099.js"; }else if(ssqh.indexOf('3308')>-1 ||(ssqh.indexOf('3301')>-1) ||(ssqh.indexOf('3307')>-1) ||(ssqh.indexOf('3305')>-1 )||(ssqh.indexOf('3310')>-1 )||(ssqh.indexOf('3303')>-1) ){ ybPath = "/charge/js/outpatientCharge_33000099.js"; } if(ybPath){ $.getScript(ybPath,function(){ console.log('加载了'+mySsqh +"的JS"); if(className){ callAlert(className,strMap); } }); } } } function getNewKxxy(kxxy){ if(!kxxy){ LayerMsg("未获取到卡串!");return; } var str = kxxy.split("|"); if(str[0].length==1){ //老卡串 return kxxy; }else{//新卡串 var retKxxy = "1|"+str[3]+"|"+str[2]+"|"+str[0]+"|||||||||"+str[5]; console.log(retKxxy); return retKxxy; } } //部分情况下 需要在js引入之后 在进行 function initYbJs(xzdm,callback) { var ybPath = ''; if(xzdm =='33000099'){ ybPath = "/charge/js/outpatientCharge_33000099.js"; } else if (xzdm == "50000099") { ybPath = "/charge/js/outpatientCharge_50000099.js"; }else { ybPath = "/charge/js/outpatientCharge_00000000.js"; } $.getScript(ybPath, function () { console.log('加载了' + xzdm + "的JS"); callback("1"); }); }