errPage.js 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. //页面初始化
  2. window.onload=function(){
  3. if (typeof(document.onselectstart) != "undefined") {
  4. // IE禁止元素选取
  5. document.onselectstart = function (event){
  6. if(event.target.tagName!="INPUT"){
  7. return false;
  8. }
  9. }
  10. }
  11. WebSocketBase.socket.onerror = function () {
  12. logEvent("HealthManagerService startSession callback");
  13. let tips = "终端链接失败"
  14. ModalStyle(tips, 'pathN')
  15. }
  16. HealthManagerService.init();
  17. showErrTips();
  18. getHardwareInfo()
  19. }
  20. /**
  21. * @description: 根据返回错误类型展示tips
  22. * @param {reason}
  23. * @return:
  24. */
  25. function showErrTips(){
  26. let Request = GetRequest();
  27. let reason = Request['reason'];
  28. let urlParams = decodeURI(decodeURI(location.search));
  29. let urlParamsArr = urlParams.split('?')[1].split('&');
  30. // for(let item of urlParamsArr){
  31. // Request[item.split('=')[0]] = item.split('=')[1];
  32. // }
  33. for(let i=0; i<urlParamsArr.length;i++){
  34. Request[urlParamsArr[i].split('=')[0]] = urlParamsArr[i].split('=')[1];
  35. }
  36. if(reason!='CardStoreIsBusy'){
  37. $('#navBtns').css({display:'flex'});
  38. }
  39. if(reason!='CardStoreIsBusy'&&!usercode){
  40. $('#AuthFailBg').attr('src', './images/close.png');
  41. }
  42. let SuspensionTxt,PromptTxt
  43. var usercode = Request['usercode'];
  44. if(usercode){
  45. let url = './images/'
  46. $('#AuthFailBg').attr('src', url+usercode+'.gif')
  47. }
  48. if(Request['terminalno']){
  49. document.getElementById("TerminalNo").innerHTML = 'TerminalNo: '+Request['terminalno']
  50. }
  51. if(Request['errtime']){
  52. document.getElementById("ErrTime").innerHTML = 'ErrTime: '+Request['errtime']
  53. }
  54. if(Object.keys(Request).indexOf('showlimit')>0 && Request['showlimit'] ==1){
  55. $("#resetPsd").css({'display':'flex'})
  56. $("#downLoadConfig").css({'display':'flex'})
  57. }
  58. if(Object.keys(Request).indexOf('showmin')>0 && Request['showmin'] ==1){
  59. $("#minimize").css({'display':'flex'})
  60. }
  61. switch(reason)
  62. {
  63. case "breakdown" :
  64. var errmsg = Request['errmsg'];
  65. var clock =Request['reboottime'];
  66. if(clock){
  67. $("#RestartTxt").css({display:'block'})
  68. document.getElementById("RestartTxt").innerHTML = "可视柜台将在" + clock + "重启";
  69. }
  70. SuspensionTxt = "准入不通过暂停服务:"+errmsg;
  71. PromptTxt = "请联系分行信息技术部处理故障";
  72. break;
  73. case "disabled":
  74. SuspensionTxt = "市场业务主管限制交易";
  75. PromptTxt = "请网点市场业务主管发起恢复正常交易的申请";
  76. break;
  77. case "jobuncomplete":
  78. SuspensionTxt = "未按时登记,交易受限";
  79. PromptTxt = "请插入电子钥匙进行“作业完成”后启用;如需急用请提“临时启用”申请,有效期7天";
  80. break;
  81. case "TerminalManagerOff":
  82. PromptTxt= "设备禁用锁定,请联系分行信息技术部 ";
  83. break;
  84. case "TerminalManagerKickOut":
  85. PromptTxt = "设备罚出锁定,请联系分行信息技术部 ";
  86. break;
  87. case "CardStoreIsBusy":
  88. $("#CardStoreIsBusy").css({display:'block'})
  89. $('#AuthFailBg').attr('src', './images/CardStoreIsBusy.png');
  90. $('#imgDiv').css({height:'550px',position:'relative',top:'-60px'})
  91. $('#AuthFailBg').css({height:'100%'})
  92. $('#SuspensionTxt').css({fontSize:'52px',fontWeight: 'bolder',position:'relative',top:'-60px'})
  93. let localDate = showFullDateTime();
  94. let myDate = new Date();
  95. let hours = myDate.getHours();
  96. let timeValue = ((hours >= 12) ? "下午好" : "上午好 " );
  97. document.getElementById("localDate").innerHTML = localDate
  98. document.getElementById("localTime").innerHTML = timeValue
  99. document.getElementById("SuspensionTxt").innerHTML = "卡库正在读卡中,请稍候"
  100. break;
  101. case "MachineTypeError":
  102. PromptTxt = "双屏版只检测到单屏";
  103. break;
  104. case "CameraConfig":
  105. PromptTxt = "系统配置中,请稍候";
  106. break;
  107. case "WEB_OPEN_FAIL":
  108. var errmsg = Request['errmsg'];
  109. var errcode =Request['errcode'];
  110. SuspensionTxt = errmsg;
  111. PromptTxt = errcode;
  112. break;
  113. default:
  114. var errmsg = Request['errmsg'];
  115. var errcode =Request['errcode'];
  116. SuspensionTxt = errmsg;
  117. PromptTxt = errcode;
  118. break;
  119. }
  120. if(SuspensionTxt){
  121. document.getElementById("SuspensionTxt").innerHTML = SuspensionTxt
  122. }
  123. if(PromptTxt){
  124. document.getElementById("PromptTxt").innerHTML = PromptTxt
  125. }
  126. }
  127. function GetRequest() {
  128. var url = location.search;
  129. var theRequest = new Object();
  130. if (url.indexOf("?") != -1) {
  131. var str = url.substr(1);
  132. var strs = str.split("&");
  133. for (var i = 0; i < strs.length; i++) {
  134. theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
  135. }
  136. }
  137. return theRequest;
  138. }
  139. let iframeSrc = '' // iframe src地址
  140. // 获取终端硬件信息
  141. function getHardwareInfo(){
  142. let req = new Request()
  143. let timeoutFn= setTimeout(function(){
  144. $('#loadContent').fadeOut('slow');
  145. let tips = '请求超时'
  146. showToast(tips);
  147. },5000)
  148. HealthManagerService.QueryHardwareInfo(req, function(res) {
  149. logEvent("QueryHardwareInfo ret: "+JSON.stringify(res));
  150. if(res){
  151. clearTimeout(timeoutFn);
  152. $('#loadContent').fadeOut('slow')
  153. document.getElementById("terminalNo").innerHTML= res.terminalNo;
  154. document.getElementById("termVersion").innerHTML= 'V'+res.termVersion;
  155. env = res.reserved1;
  156. let clientId = ''
  157. switch(res.reserved1){
  158. case 0: clientId = '6898ec10629f499187d7b31fbe9823a4'; break; //DEV
  159. case 1: clientId = '6898ec10629f499187d7b31fbe9823a4'; break; //ST
  160. case 2: clientId = '6898ec10629f499187d7b31fbe9823a4'; break; //UAT
  161. case 3: clientId = '9e7e54105fce408cae37322dbbd64046'; break; //PRD
  162. default: clientId = '9e7e54105fce408cae37322dbbd64046'; break; //PRD
  163. }
  164. iframeSrc = 'https://one-account-gateway.paasuat.cmbchina.cn/auth-plugin/v2/identity-authentication?clientId='+clientId+'&ui=eyJhdXRoVHlwZXMiOlsicXJDb2RlIl0sImhlYWRlciI6dHJ1ZX0%253D'
  165. document.getElementById('iframeSrc').src = iframeSrc
  166. }
  167. })
  168. }
  169. //重置密钥
  170. function resetRSA(){
  171. // document.getElementById("urlAccessAddr").innerHTML=""; todo
  172. $('.boxRSA').fadeIn();
  173. $('.iframe-box').fadeIn();
  174. $('.tipsing').html('')
  175. // $('#loadContent').fadeIn('slow')
  176. document.getElementById('iframeSrc').src = iframeSrc
  177. setTimeout(function(){
  178. getAccessUrl();
  179. },500)
  180. }
  181. function clickDownload(){
  182. $('.boxDownload').fadeIn();
  183. }
  184. let btnType
  185. //重启shell
  186. function RebootShell(){
  187. logEvent("RebootShell");
  188. btnType = 'RebootShell'
  189. ModalStyleErr('确认重启应用?')
  190. }
  191. //重启
  192. function RebootComputer(){
  193. logEvent("RebootComputer");
  194. ModalStyleErr('确认重启计算机?')
  195. btnType = 'RebootComputer'
  196. }
  197. //关机
  198. function PowerOff(){
  199. logEvent("PowerOff");
  200. btnType = 'PowerOff'
  201. ModalStyleErr('确认关闭计算机?')
  202. }
  203. // modal显示设置
  204. function ModalStyleErr(tips){
  205. $('#modalBoxErr').fadeIn('slow')
  206. $('#errTipsErr').html(tips);
  207. }
  208. // modal 确定事件
  209. function clickSure(){
  210. if(!btnType)return false;
  211. exitTipsColck()
  212. switch(btnType)
  213. {
  214. case 'RebootShell': DeviceService.RebootShell(); break;
  215. case 'RebootComputer': DeviceService.RebootComputer();break
  216. case 'PowerOff': DeviceService.PowerOff(); break;
  217. }
  218. $('#modalBoxErr').fadeOut('slow')
  219. }
  220. function exitTipsColck(){
  221. $('.exitTips').css({'display':'block'})
  222. let clock = 20
  223. $("#exitColck").html(clock);
  224. let timer = setInterval(function(){
  225. clock--
  226. // $("#exitColck").html(clock);
  227. if(clock==0){
  228. let req = {};
  229. req.messageType = 0;
  230. req.command = 'ChromiumClose';
  231. sendRequest(req);
  232. clearInterval(timer)
  233. $('.exitTips').css({'display':'none'})
  234. }
  235. },1000)
  236. }
  237. // 最小化
  238. function Minimize(){
  239. let req = {};
  240. req.messageType = 0;
  241. req.command = 'ChromiumTomin';
  242. sendRequest(req);
  243. }
  244. function closeModalErr(){
  245. $('#modalBoxErr').fadeOut('slow')
  246. }