1<!DOCTYPE html><html > 2<head> 3 <title>Login - åé³çå·¥å¦é¢</title> 4 <meta charset="UTF-8"/><meta name="renderer" content="webkit"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><link rel="icon" href="/cas/file/ico/webFavicon.ico" type="image/x-icon"/>
4<script type="text/javascript" > 5 // var hmSiteId = "d605d8df6bf5ca8a54fe078683196518"; 6 var hmSiteId = "d605d8df6bf5ca8a54fe078683196518"; 7 if (hmSiteId) { 8 var _hmt = _hmt || []; 9 (function() { 10 var hm = document.createElement("script"); 11 hm.src = "https://hm.baidu.com/hm.js?"+hmSiteId; 12 var s = document.getElementsByTagName("script")[0]; 13 s.parentNode.insertBefore(hm, s); 14 })(); 15 } 16 </script>
16 17 18
18<script type="text/javascript" src="/cas/webjars/jquery/3.6.0/jquery.min.js"></script>
18 19 20
20<script src="/cas/deps/js/babel.min.js"></script>
20 21
21<script src="/cas/deps/js/babel.polyfill.js"></script>
21 22
22<script src="/cas/deps/js/vue/dist/vue.min.js"></script>
22 23 24
24<script src="/cas/deps/js/vant/vant.min.js"></script>
24 25 26
26<script src="/cas/deps/js/sw-ui/lib/index.js"></script>
26 27 28 <link rel="stylesheet" type="text/css" href="/cas/deps/js/sw-ui/lib/theme-chalk/index.css"><link rel="stylesheet" type="text/css" href="/cas/schemes/409EFF/index.css">
28<script src='/cas/deps/js/jsencrypt/3.0.0-rc.1/jsencrypt.min.js' type="text/javascript"></script>
28 29
30<script type="text/javascript"> 31 var encryptEnabled = true; 32 33 var encrypt = new JSEncrypt(); 34 35 var url = "\/cas\/jwt\/publicKey"; 36 $.get(url, function(publicKey){ 37 // console.log(publicKey); 38 encrypt.setPublicKey(publicKey); 39 }); 40 console.log("\/cas\/login" + window.location.search); 41 </script>
41 42 43<link rel="stylesheet" type="text/css" href="/cas/themes/classic/css/style.css"></head> 44 45<body> 46 47 48<main role="main"> 49 <div id="content"> 50 51<div id="vue_main" style="display:none;"> 52 <div style="display:none;"> 53 <el-button id="showErrorMessageUsername" :plain="true" @click="showErrorMessageUsername">æå¼æ¶æ¯æç¤º</el-button> 54 <el-button id="showErrorMessagePassword" :plain="true" @click="showErrorMessagePassword">æå¼æ¶æ¯æç¤º</el-button> 55 56 <el-button id="showErrorMessageCaptcha" :plain="true" @click="showErrorMessageCaptcha">æå¼æ¶æ¯æç¤º</el-button> 57 58 <el-button id="showErrorMessageMobile" :plain="true" @click="showErrorMessageMobile">æå¼æ¶æ¯æç¤º</el-button> 59 <el-button id="showErrorMessageDynamicCode" :plain="true" @click="showErrorMessageDynamicCode">æå¼æ¶æ¯æç¤º</el-button> 60 61 <el-button id="showSuccessMessageSendCode" :plain="true" @click="showSuccessMessageSendCode">æå¼æ¶æ¯æç¤º</el-button> 62 <el-button id="showFailureMessageSendCode" :plain="true" @click="showFailureMessageSendCode">æå¼æ¶æ¯æç¤º</el-button> 63 64 <el-button id="showGuardDialog" :plain="true" @click="showGuardDialog">æå¼æ¶æ¯æç¤º</el-button> 65 </div> 66 67 <div> 68 69 <sw-dialog 70 title="å ¬å" 71 width="500px" 72 :visible.sync="dialogVisible" 73 :before-close="handleClose"></sw-dialog> 74 75 <div class="sw-login" 76 style="display: flex; align-items: center; justify-content: center; height: 100vh; width: 100%; min-width: 1024px; min-height: 660px; position: relative; background:url(/cas/themes/classic/images/bg.pic) repeat;"> 77 <el-container style="max-width: 1920px;max-height: 1080px; min-width: 1024px; min-height: 660px; position: relative; height: 100vh;width: 100%; margin: 0px;"> 78 79 <el-carousel @change="changeCarousel" :interval="5000" indicator-position="none" arrow="never" style="position: absolute; width: 100%; height: 100vh; max-height: 1080px;min-height: 660px;" height="100vh"> 80 <el-carousel-item v-for="item in bg" :key="item"> 81 <div :style="'background:url('+item+') no-repeat right;background-size:cover;'" style="max-height: 1080px;min-height: 660px; height: 100vh;"></div> 82 </el-carousel-item> 83 </el-carousel> 84 85 <div style="position: absolute;width: 100%;height: 100vh;max-height: 1080px;min-height: 660px; z-index:5; left: 0;"> 86 <div class="sw-login-logo-container" style="display: flex;align-items: center;width: auto;"> 87 <img style="margin-left: 27px; width: auto;height: 60px;" src="/cas/file/png/logo.png"><div style="border-left: 1px solid #000;margin: 0 20px;height: 36px;"></div> 88 <div 89 style="font-size: 22px; color: #409EFF;">OAç³»ç»</div> 90 </div> 91 92 <div 93 style=" 94 position: absolute; 95 bottom: 0px; 96 left: 0px; 97 width: 100%; 98 height: 90px; 99 background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,0.01) 0%,rgba(0,0,0,0) 31%,rgba(0,0,0,0.6) 100%); 100 " 101 > 102 103 <div 104 style=" 105 position: absolute; 106 bottom: 15px; 107 left: 50px; 108 font-size: 12px; 109 color:#fff; 110 display: flex; 111 align-items: center; 112 " 113 ></div> 114 115 </div> 116 117 <div class="sw-login-main" style="max-height: 1080px;min-height: 660px;"> 118 119 <div style="position: absolute;bottom: 15px; padding: 0 50px; align-items: center;color:#333333;font-size: 12px;z-index: 999;"> 120 121 <div style="display: flex; width: 100%; height: 40px; line-height: 40px;"> 122 123 <div style="display: flex;" v-for="(customEntryLink, index) in customEntryLinks" :key="index"> 124 <span v-if="index>0" style="margin: 0 10px;color:#B4B4B4">|</span> 125 <a :href="customEntryLink.url" :title="customEntryLink.name" target="_blank" style="white-space: nowrap; width: 95px; overflow: hidden; text-decoration-line: none; display: inline-block;color:#333333;font-size: 12px;"><span><i class="su-icon-bulb"></i> <span>{{customEntryLink.name}}</span></span></a> 126 </div> 127 128 </div> 129 130 <div style="display: flex; width: 100%;"> 131
132 <span style="display: flex;align-items: center;"> 133 <span style="margin-right: 10px;">æµè§å¨æ¯æ:</span> 134 <img style="cursor: pointer;width: 14px;height: 14px;margin-right: 10px;" src="/cas/icon/chrome-icon.png" /><img style="cursor: pointer;width: 14px;height: 14px;margin-right: 10px;" src="/cas/icon/firefox-icon.png" /><img style="cursor: pointer;width: 14px;height: 14px;margin-right: 10px;" src="/cas/icon/ie-icon.png" /><img style="cursor: pointer;width: 14px;height: 14px;margin-right: 10px;" src="/cas/icon/360-icon.png" /><img style="cursor: pointer;width: 14px;height: 14px;margin-right: 10px;" src="/cas/icon/sogou-icon.png" /></span> 135 </div> 136 </div> 137 138 <div class="sw-login-main-blur" style="max-height: 1080px;min-height: 660px;" :style="'background-image:url('+bg[currentImage]+');'"></div> 139 <div class="sw-login-main-content" style="max-height: 1080px;min-height: 660px;"> 140 141 <div class="qrcode-button" style="z-index: 999;" @click="openOrCloseQrCode" 142 @mouseover="qrcodeHover=true" 143 @mouseleave="qrcodeHover=false" 144 :style="'border-image:url('+ (isQrcode?qrcodeImage.normal:qrcodeImage.qrcode) +')'"> 145 <div class="qrcode-button-cover" v-if="qrcodeHover"></div> 146 </div> 147 148 <div v-show="!isQrcode"> 149 <div class="card"> 150 151 <el-menu @select="changeMenu" :default-active="currentMenu" class="sw-login-menu" 152 background-color="#ffffff00" text-color="#666" active-text-color="#409EFF" 153 mode="horizontal"> 154 <el-menu-item index="1" style="margin: 0 20px 0 80px;">Username</el-menu-item> 155 <el-menu-item index="2" style="margin: 0 0 0 20px;">Dynamic Code</el-menu-item> 156 </el-menu> 157 158 <div v-show="currentMenu==1"> 159 160 <el-form style="margin: 30px 80px" method="post" id="fm1Input" action="login"> 161 162 <div class="el-form-item el-form-item--small"> 163 <div class="el-form-item__content"> 164 <div class="sw-input el-input el-input--medium el-input--prefix el-input--suffix sw-input--circular"> 165 166 <div> 167 168 <div> 169 <input class="form-control required el-input__inner" 170 placeholder="请è¾å ¥å¦å·¥å·-è´¦å·/è¯ä»¶å·ç /å®å ¨ææº" title="请è¾å ¥å¦å·¥å·-è´¦å·/è¯ä»¶å·ç /å®å ¨ææº" id="username" 171 size="25" 172 tabindex="1" 173 type="text" 174 accesskey="u" 175 autocomplete="off" name="username" value=""/></div> 176 177 </div> 178 179 <span class="el-input__prefix"><i class="su-input-icon black su-input-icon-prefix el-input__icon su-icon-people"></i></span> 180 </div> 181 </div> 182 </div> 183 184 <div class="el-form-item el-form-item--small"> 185 <div class="el-form-item__content"> 186 <div class="sw-input el-input el-input--medium el-input--prefix el-input--suffix sw-input--circular"> 187 188 <div> 189 <input class="form-control required el-input__inner" 190 placeholder="Enter your Password" title="Enter your Password" type="password" 191 id="password" 192 size="25" 193 tabindex="2" 194 accesskey="p" 195 autocomplete="off" name="password" value=""/></div> 196 197 <span class="el-input__prefix"><i class="su-input-icon black su-input-icon-prefix el-input__icon su-icon-lock"></i></span>
198 <span class="el-input__suffix"><span class="el-input__suffix-inner" style="display: inline-block;"><i class="el-input__icon su-icon-hide el-input__clear" style="line-height: 32px;" onclick="javascript: togglePassword(this);"></i></span></span> 199 </div> 200 </div> 201 </div> 202 203 <div class="captcha-input-container el-form-item el-form-item--small"> 204 <div class="el-form-item__content"> 205 <div class="sw-input el-input el-input--medium el-input--prefix el-input--suffix sw-input--circular"> 206 207 <div> 208 <input class="form-control required el-input__inner" 209 placeholder="Enter the Captcha" title="Enter the Captcha" type="text" 210 id="captcha" 211 name="captcha" 212 tabindex="3" 213 style="width: 75%; display: inline-block;" 214 accesskey="c" 215 autocomplete="new-captcha"/><img src="/cas/captcha.jpg" 216 id="captcha_img" 217 style="width: 20%; height: 38px; display: inline-block; float: right;" 218 onclick="javascript:refreshCaptcha(this);" 219 title="Refresh Captcha!"/></div> 220 221 <span class="el-input__prefix"><i class="su-input-icon black su-input-icon-prefix el-input__icon su-icon-dyncode"></i></span> 222 </div> 223 </div> 224 </div> 225 226 <el-form-item style="padding:0 30px"> 227 <el-checkbox style="float: right;" name="rememberMe" id="rememberMe" label="true">Remember Me</el-checkbox> 228 </el-form-item> 229 230 <el-form-item> 231 <input class="el-button el-button--primary el-button--medium is-round" 232 name="button" 233 accesskey="l" 234 tabindex="6" 235 type="button" 236 value="LOGIN" 237 238 style="width: 100%" 239 /></el-form-item> 240 241 <el-form-item style="text-align: center"> 242 243 <div style="display: flex;justify-content: space-between;align-items: center;"> 244 <a href="/cas/personal/forgotYourPassword?service=http://oa.nyist.edu.cn/sso_login/t_sso.php" target="_blank"> 245 <el-button type="text" style="font-size: 14px; font-weight: 400;">Forgot your password?</el-button> 246 </a> 247 <a href="/cas/personal/activeYourAccount?service=http://oa.nyist.edu.cn/sso_login/t_sso.php" target="_blank"> 248 <el-button type="text" style="font-size: 14px; font-weight: 400;">Active your account</el-button> 249 </a> 250 </div> 251 252 </el-form-item> 253 254 <el-form-item> 255 <div id="loginError1"> 256 </div> 257 </el-form-item> 258 259
259<script type="text/javascript"> 260 $( document ).ready(function() { 261 var currentMenu = null; 262 if (currentMenu == "1") { 263 var containerFormInput = $("#fm1Input"); 264 var containerForm = $("#fm1"); 265 var originalUsername = null; 266 if (originalUsername == null) { 267 originalUsername = null; 268 } 269 var hasErrors = false; 270 var errors = []; 271 272 console.log("trigger processLoginError"); 273 processLoginError(containerFormInput, containerForm, originalUsername, hasErrors, errors); 274 } 275 }); 276 </script>
276 277 278 </el-form> 279 280 <el-form style="width:0; height:0; border:0; margin: 0; padding: 0;" method="post" id="fm1" action="login"> 281 <input type="hidden" name="username" value="" autocomplete="new-username"/><input type="hidden" name="password" value="" autocomplete="new-password"/><input type="hidden" name="captcha" value="" autocomplete="new-captcha"/><input type="hidden" name="mfaState" value=""/><input type="hidden" name="currentMenu" value="1"/><input type="hidden" name="failN" value="-1"/><input type="hidden" name="execution" value="1e565a26-f623-498b-8bb3-57e7dd94ec43_ZXlKaGJHY2lPaUpJVXpVeE1pSjkucDBJRkdOWTBVQTNsMDZYNitpOTlFZkJGdTVDaStvcVJuK25nZWhHVzh5QmRKdld2RGRSSjZsdUxVaUorTmU3eE9IcDlXVTlPSUJwLy9CNmlWTzJhV1NGMTFhN1RTZ0lPZmoyd25RRGFYR2dTejlKSjI0WTdIb0tNZVo5UTdOOWl2NjFYNHcxRENMRittTmpSVGJaczRqbXpjUm5zandNNVFENjVOWVM4OUM5S3ZwNmhaQkJTUkRrVjU4ZXZHMEFmeFZCdGQyR3VURVpZeC9GVzU4MTk5cDhwZlIrb09Kb1B2MTRBRHozN3JPS2o4MUZkaXJtekFndFB0MGxzYWNGa3ZNNEJ0ckZPczNKdHlvWXh4alQvOEhtMk9zVVNVT3R1UVRVRk41TVBhbU53YVR0V3p3NlZYR3FIL05zUHB4RTJxb0owdG9SWW5jV3MyclNqSnIrb2JVMG5hdzVBZUQrNkRMdi94R21iWlMvOTRNYUM0NHZJajZ0WldHYnY0V0s1ZnAwRksyZDZLMm9ySmR0bGpIa3dzM2tBeVZXcEdHR1dCdlRpTVhHaVZKdGFtS2FYbjliak1SWnVPR0podFhRaWJ0VStjdWN2TXExL1ZKZWNEL2Jtdm9RbVQxZ2NhZmlya3h1NlhzUjRqQ0tCeFJvdElkRDB4SklWdjU0QTRCenBCQlhPTmsyczZTZDQ4ZGVZaUxDclVBQXVuLzRrTkZKUGVndU9MYXpoeXE3Qm4vWWZ2MmRnYk9yWTlhR3lPQWZlLzZiRFlGUFVsZ09KbGtKRGh5bDJkRVAvRkpMelhGdFEvVXQrSHFKRFZJM1FnMjY0VE1oSUMySzQyM2t6OCtoSjRtVFRMTGswL0F1M3J2S0dvb3NISDE5ZnZCSzVRUzNNT0YwdmdqTGp0V3kvNUR3K0lWSjBDUE5zTFhadGFGeUg1QzEwdFY5TFpzQ0t5ZGRVVFowMkNxTXhTck9mMjhnMWQ2WFU0a0pzdFhlTUZjdlNQWU5yL0RpSkVJK2ZxWThWK28vK1hydVo5c2tITmVtbFhTZ09NMkF6ZEJRWDNUSFMvcUxEa01QTTN6WCt5ZExDZHdIaFpVMGl0bTMwRGZ5WDFmcVdZbVY0T1FYdmhoUENIRFNXOHdtZ2greUhIanNoSURHSEJHaUZpN0RXcEJLOU8xd3Z2bWN0T0pVQ2JGRHBuUm9sL0MzMVFuOGw1ZVBmM3AzM1hDekZkcU1DR21UbWtocjkxbXRqNi80V0ZJeStSTitBbE9JY3ZWSXJjdEJTUEQzZ1UwelAvTjFvQ3haZFF6S3pJdU5tc3VXVjRQZnJHQ1FXK3BZSEI1a25PVUJpOW9pa1lnaEhLR0VxdTdwbVVRVUdYeldTRERsY0hDUVN2d21od3JQK2JkODBDbnRXcWFTZGkvZGdQbzVFL2drb2Qrclo5T0NoVDlKMnhKckFsdVNzcU1zVk1vNTY2TDJqdUlYaW9LS0VPSSs4eHZMV0phTlJuV3d1SU83Q0ZjaXhoTG9xazhPdmw2OGhJZ1hGNEpnMWFBNEJ1WjNUR2xzUEM3Um96aGI5RVozYm43aElTbzd1R3ZOR2JDZ3pMdW5oS0RJQUZVdm9UcXY1clFjdjhHRHJoV2NiK3ZMb1BZNEVWUTRZcStPU1h2N0lDZk4wRCtXMmV1TTl4M0tBVEZHVGZ3eTlTeGtRc1BLcmQ5YzdVOEtzNDZOYkJQbVArUTRtUDh5UzQxSy9Qakw0VmRiLzYzWG5aaHE3ekVjKzJKRHR3N2F4NnJFWHlPMys0blB1M3RXZkNGRDBlK3JEcUhiVmpWclhiMkVXOWdaZlk1K0lSb3dqRWlHOXlhWG03U25LOEM0WUJOVnpHUUpnbHowbzB0a0dDc3BFSjFML0JLNVhxT0FncGp5L0ltbnFaK1lPQTl2UXBWcjBHNGtTWEI5anpZa0h5M2c0QjhQK2RSbFJjb0RjQTJ5VTEvWHUzNWZ3bW5McmFLZVFTZSsrRWt6V2gyZExvZ0FaVEhTTlF6ZmJMTVVPTWVJNmdRQnJmb0FIUkN1d1lFV3lvSWEyZ1J2V0l1NnN1amIzS2djazZxUnB3WGhOK0tpMUpPU0c1VTMwb2ZoTzVkWG1HbTVwa2doT1ltVE41OFlCQ1l1U055bG1la2JpSEcvRTJMNEVZSENZMzVJWlphcnlyQTJhYW94VG5yTEJJRHoyZlJEeTRWQkdZUFNsKzNpTjE3ai9SUHAwSUR4YTNxUHFrOUEzNjBXNnJod1FGVVI5R0E1aEFsSDZyTEE2czlzR0lyOUR2Z1FhQTI2dExuMGNDZjZYNmNVVzI2L1RKV1FhK1pOa0lvbTR4anovSzBDRkZxQ3NtOXU1N2FGUkJhMVdTZFpmcmZEKzVmQVB6RjlTZ2FXR2xwdTRsTXlTQVF5endjWm03bExVenFhOGg5WHJpdEJYeS9GcHN3OHJRMENKQkRVWGE3WWNGcDRmZ21TeDd2SkZRRUZOZkFGODlkazFqZC9PNzJ6d2R0aU9tS0RyY3RLSXcwZ0h2dEFNTDA1QkhBajFtbnhwSm00dlJycW5Hc2htcGFUUWhlN3lUaklBL05oTTZMeXZ2SXEwSG5OeXlLVlArZU14VVZXYVBDRVUrTnl0T1NONUozQkhIVGgvbE9ldEo3b0phSHJGL2RhUWlaVDk0VmpJS0VFRWY3a1lkcTM3YW5OWWt2NWJUY3cycWdNLzRvNzVHUy9kdFhUUVdBb2pQVWhIT1pEcTRSRmxEWnNubytuSXUrTFNqRE85ME5oN1JmQ0N3cDFEa1hNOStjM0hLdEdoYldzRVZ6a25SbU84VWZDTTJBSU1mN0V3Q3hybTRSYjNWN1Rjc3ZMdyt3YWQxTklHeWFqd2VnZW1xN0RjR3BZcWZUYjVPbWN1SGZ6d0tJNTZxT2JRMThmeHRoamhVWFdnQ2c3L0NXZ2h4aFFrZnhxWjhhdElxWllWU0V3bis5TjFMQTdFYlhsczN1VlFZOG11d1ZUNW5CVWxQU2FFQUxvLzJjRW04dnBxSXMzdEJMeVdQd2ZYSWkwTG9oWWMvL1VrV1FpVWpEVFZ6VFppZU9BaFo1clNZQlNuQjNiWXMxMDgrM0hRSnFibVJheGY0bnBJZnZNaEM1YUJHZWRtTzZQVStBMi9uWXN0MXVtcHk2QnR3ZDhvRkpHRmRHdDFUMXlVdjRRSVpUUHZKVlJPQ3VhT2JRRWlLWFRhS2ZxSG11eEdZa1c5MkdsNzhySEMrK0U0a2VNSU5tNTNVRXNzVWFrTGw4cGhsbmNaaVFON25waHdXYjFvNjV1M0VOUGRlakhwR3BHcG9iRHBNMWhBR052OFc5Y1JzU0V6NXBiL3dwWU43cTRGQjNwODVQTG91bkVNTngya2J2NU1XUE1ua05SSFl4Q2ZpcWZSa0g1Ukl2ZWZPcytOekxmZXNYV0Zmc3VCWjVtVU1md1pBeTg1UWthR0MwYnU0ZGJnU2lENklsQ2p2aGtvbExSV2xTNkhKUldHdzA3VGNPbnl1UUhvclRHUHNPNk5wcndoc2cyOGNHZEZMMFFUT2FvZWpoOTkvUXZ6NVQ5dDkrRFdnb0V2SnRwd3N2dzREV1VOZmtBWmNOVWpiUTJQSklXbnZneG91YWV1dmhPUUVFUVQ1Rm0vQmZ2QmNWR3VLQzEyRjRHMFVjT0RPb0w5MzRERVB6OTg3b1RxenFTUlZNajVJQUFMaVozeGdqOHZpdE8rQUdxZm9UREdIcDdtdUJrVXBseXBNRXJTcGNuWHlFV0hOMzIyaDJHK2ZxVjB6bXpnU2JWWHZLa01Bc1lqZWhTOUpUWWxQR0xTRHFKQnE0VnBSLy9mU1ZBNGRZc05ObnNyUGdHR0krdXJMOGFPVzN6V1JHeWJzcjRkOTNIMy9QU0hMdDNLdDEzUXFkN08yN0J2NGVmM0k2UDRIczVROVZHRHB0WTAwRzV6TUMyV0l2RXBid0FCSS9sN2lNOFRIeEk0R0lFSE4xVDlSdWZNeUVKL3labzQwSlVzZ2J1eTlRWmVreUtsWjFHYk42azk2eG9vSlFDUjM5N0lxcGFURGF5aE9yeXVPZ2ptUVhMUXNzSEg0eVdvWWlrV1RJcUJDb3hSZzV0djZFaHVjZnIveTRVSjVweGx3U25DS3BKZjZHbjRsaE1NZ2dteDVJdEdsZ3hDaVA3elhma1QycjJVcmdzOEtkanNxS0VHK2VXU2dKY1JHT2xtZ056WVRUSnpvZkNMQXlSejBxR1NLcVlXd0NDM3NncE1laUlNbVBPWFVxT0tOK0taWm1EVGtuSWt3OVhhcEdUTzBiNnc3bjN4bE1MeTZPNUtRcTBVQ0UySjU5UjIvdGpheXI1aDl3VGFvUUhtWlZxTzQrQmVNNTRNei9Uay9lbExmdTlUUWt2L3NuWmE2a1pxcmVGRHVoa2xCQlJiblRvT2lqdUJaaTRuZ0MzMVRlTnJmcW1FMU14M0I1SWcvdFh5ZmIwZzBTcGlpQk1Kc2JKNjA1aWlZbUt0NHVtNm1aRWZESlFXQ0I4ODJzak9VMERJNWhpa3dzb1N2ZjlKWTl4QWpBVlErRWE2djVkWDcxVGNKTy9ReVJMV1FQZDJRSmtKRWsvR3N4aFNhSEpFNFY3dEpFWTkwdmNnbHQxQ1N4akVVblBzSlBPTlEvRnJIT2U3dk0welNOcnpGeEs3Z3o0djQxV3R2a056dXlBKzl6MDExczlFWGhrbTNORUpaamVodisyWnNJZk13THlsQnNLMER0N2d6NFRURnJrSnUzU2o4VzllZTBMYWswaG1qZ2tpaVFqRERGVWd2dWpyMlhOd292SVlmeTMwQTFUWE9NNHoweUdibHRFUXl2MDA5NnB1TFd5L1JwWFYvZVhGTDM4ZnBseUFwSjhpNnRBZU10Rnl1Z2Z4dEdsRXJoc3o4Q25tYTZFbUg3QjErendJWmJ5OU9tdWVvMldPL1BNVk5ncGIwa3dzUnkvVXp5ai95dTJNblNaZThhcGFEbTNkWDBFSXpGRWZ3b3BIWVpsUjBHNzZkNHl2MmVJN0VXdXlBbDBHR0IzSEFaclBhbE8wYmNIaVE3ZlRiUUdFUEp5WnlCRkdob3ZRZ1ZWdk0zNWdGbU55U2t2MTltY0RYcU52QW0rSmxKYm1XN3d2QWVxUmRYQzdKbTJuSTQzMGxFbWFqd25kZjRVZldhZUlKOHB0cU5sUDg4VXdZdzVDK1M2dDdXblNFOG10SkNRVHEvOERrTTBFamR0V01pbnNNaDgwQllSY293RSt0Q2V3VkNLd2Rhc2w5Mjh1RHhUQkx2c3FoQjIvV0Fxc0RzL0NlY3FvNExFalpLdFZDYzJVakZZMXFMTDdwLzNsZnhzNjkxdC9sTklnbG5RMDlrOXVlT3VSSU5ML3VmeTh2aFFaMU9SMCt2Nlo3MjlkemxtMTloWWlocHVabnB5ay9kR2p4eEJVVzhselZPL1FSMWVvNWZLeHpCQXpSZXBhNnB5OTk0UmpDRlpuNld1a1FRcERJK1BrbTlNU2QvSkN0L013TXpyR2c4SXFD
281amJnQkMvMjdpSEdJdUxLOUxNeXBSYnNKdHlrYk9rbmFyY0liYkdqMldFcEQ2WW0zM29jRjBFSVc2WlN3cGVCaUliRjJoVFBnTEtqUnI4Vkw5bEN4Y1Z5YVByellQM3h2bTM0VnAzb2FkZlVJb05DdkhKclZHdmJVdTB1dG9HMGMwQ2VVU2FsWDAyM0NBQTdlTklHRXNIaW1UUWl2L0pLbFREUHhTcHo1aVJVcERENFpIT05Yc3FGcC9aRUxqeFFRODVVVG45eTlrcWt2OGlaRERCN05jLzYxTTYvK09mazdkYWpxaFIwQzVEUlhZWlM2TkYrQUlqTHNSTGxCME01R0dLRU9YdW8zUlR4N2trS3dmN09YWWlmTitDYjJmTXYxNm9mNWRqK3IrZlYyVnJnY093QXNuSjJpQmVvbUd3a1N3aTJBbFRZdU1wKzFNVVRPVWNPU3R1MWZ6akZxUkp3TFRSdml5VWxEdGRrRitPZ1pzTGpTMy96QTczRGd2MlZNbk5kQWp1RWJYdlhDS29XaGZnMUVEVkpKd1ltZktNbGROWWpjTnFvZ1JZVm5jZlVrZW1rNERsbE44cDZkcXdKUU5zNmE2RHdZVnJoRk5wN2VLbkYxL0o2aEhvdFY0Tk03QnYyT0xwVFkzL2hDUDdvTnlsc1UzbDd6cjdUTGRzRlJGenZrYVI2dTZheDNZUElYc0c2bzQ5Ynd2REJmbllLQW42Mms1OWsyQ2FvMjlOL2RjRWI1Y0FHbGo5TE1ISXFLU3c4NlMwTVNEQUVyWUdMR1p1WTk0SUk4YXBCRXFBWlI4VkRiZUU5SlJJZ3p6T3BTWVB2c0wwNlhkamNtcDErVE5vZG9UZkM3dnpqN0Z1K2pGZTNta01rdnpJK2xpZmtKWHh4NEhDMjV5dXAyNGxoRHBrUDRxVUJrRFdJNjVhN0RiRnV4Tm5FcHVpVFdpYnZ4ZkF6VDBDSTdHcWtMbXRPRXRXb0IreDQ5V1FXeGZlNWpNeDh4OERvNExGWVU2NEdWN3lwVTkzN1pjWHRJa2pVZEhXZ0VBT2dlbXdVWklDalVoU2EraXEwV2RjWUlLWjJGendCMzVWRWVsSXNqYUFpaUQ1cUEvN3JZelhFZ3FPNTJUMXNPNUZsUVJxS1lEdkdBZVJjb0gvUkJPOHpRc2FNamgyUElNYzJyZkNCeUwvbjdxN1IwdjJKZGZTaGliVTZialpQK3pPQyswS1hmRHh3SUtkNFNDNlc0bi9nSEhpY3g1VUdLRXlkMkNEZHZONWFYNGpTWFJIajczUktBcGhYeStWcitOclVGN0ZJTFIwdGpGYXRuNDJQaUM1UVA3czlXb2xZMXFvUm9MNDZyb29TQmxJSk1DWGtwaEVMRmovSTFaUmZ0Zks1dmtwcDREeGhBKzY1VDVmOUpLU00wZmJ5VjU4UFdXUXhBakdxS2xubFFWeldPcUNESE5oVzRwTTFQS0lVOUx4SVlROEpjR3lvYWV4N1RBNHkrV1dLcUNlbTlqNWpMcHplaHUzTTdxR3RvMjlFUjlPZ3NVc1JmMWdNeTJzRGRCV1Q5QnZJYTRRVVJDVnFxMmg1QWQ4bWRsTEFBYmlvc0Z5NWUxY1FTTS9nb0VEdUF6MHVWbURZRUxVWC9aWFRPSnZSTFlKUnZSY1hFSEFFN2xxZ3g4Q0pqSzNXRFlRc2R4OFEwalNJOTJ5TFV4OUhoREtWQ3VHby9WNWNoU1hmbzM0MGZqOGhhQU1PRjVONTRaMjEwb253K2NqaTZQaWxlYzJyekxVOUtGcEJVOXlxTVVpZ2JnPT0ud1ZkLUw4T3pTblRyZmd3RzNDOUFiNmtYcFp3b01MVWxtMnBvY21xamF0cDBUREpVYmFyUjFCN1JKcW1IdmpPSVhrbG9oU0liajdpejVjTWpGRlZuclE="/><input type="hidden" name="_eventId" value="submit"/><input type="hidden" name="geolocation"/><input type="hidden" name="fpVisitorId"/><input 282 name="submit" 283 type="submit" 284 value="Login1" 285 style="display:none; width: 100%" 286 /></el-form> 287 288 </div> 289 290 <div v-show="currentMenu==2"> 291 292 <el-form style="margin: 30px 80px" method="post" id="fm2Input" action="login"> 293 294 <div class="el-form-item el-form-item--small"> 295 <div class="el-form-item__content"> 296 <div class="sw-input el-input el-input--medium el-input--prefix el-input--suffix sw-input--circular"> 297 298 <div> 299 <input class="form-control required el-input__inner" 300 placeholder="Enter your Mobile" title="Enter your Mobile" id="mobile" 301 size="25" 302 tabindex="1" 303 type="text" 304 accesskey="m" 305 autocomplete="new-username"/></div> 306 307 <span class="el-input__prefix"><i class="su-input-icon black su-input-icon-prefix el-input__icon su-icon-people"></i></span> 308 </div> 309 </div> 310 </div> 311 312 <div class="el-form-item el-form-item--small"> 313 <div class="el-form-item__content"> 314 <div class="sw-input su-input-text-button el-input el-input--medium el-input-group el-input-group--append el-input--prefix sw-input--circular"> 315 316 <input class="form-control required el-input__inner" 317 placeholder="Enter the Dynamic Code" title="Enter the Dynamic Code" type="text" 318 id="dynamiccode" 319 size="25" 320 tabindex="2" 321 accesskey="d" 322 autocomplete="new-password"/>
322<span class="el-input__prefix"><i class="su-input-icon black su-input-icon-prefix el-input__icon su-icon-dyncode"></i></span> 323 <!-- <span class="el-input__suffix" style="right: 100px;"><span class="el-input__suffix-inner" style="display: inline-block;"><i class="el-input__icon su-icon-hide el-input__clear" style="line-height: 32px;" onclick="javascript: togglePassword(this);"></i></span></span> --><div class="el-input-group__append"> 324 <button type="button" class="el-button el-button--default el-button--small" onclick="javascript:sendToken(this);"><span>Send</span></button> 325 </div> 326 327 </div> 328 </div> 329 </div> 330 331<!-- /* 332 <div class="el-form-item el-form-item--small" th:if="${casServerCaptchaEnabled}"> 333 <div class="el-form-item__content"> 334 <div class="sw-input el-input el-input--medium el-input--prefix el-input--suffix sw-input--circular"> 335 336 <div> 337 <input class="form-control required el-input__inner" 338 placeholder="请è¾å ¥å¾çéªè¯ç " th:placeholder="#{screen.welcome.label.captcha.placeholder}" 339 title="请è¾å ¥å¾çéªè¯ç " th:title="#{screen.welcome.label.captcha.placeholder}" 340 type="text" 341 id="captcha" 342 name="captcha" 343 tabindex="3" 344 style="width: 75%; display: inline-block;" 345 th:accesskey="#{screen.welcome.label.captcha.accesskey}" 346 autocomplete="new-captcha"/> 347 <img th:src="@{/captcha.jpg}" 348 id="captcha_img" 349 style="width: 20%; height: 38px; display: inline-block; float: right;" 350 onclick="javascript:refreshCaptcha(this);" 351 title="ç䏿¸ ï¼æ¢ä¸å¼ ï¼" th:title="#{screen.welcome.label.captcha.refresh}"/> 352 </div> 353 354 <span class="el-input__prefix"><i class="su-input-icon black su-input-icon-prefix el-input__icon su-icon-dyncode"></i></span> 355 </div> 356 </div> 357 </div> 358*/ --><el-form-item> 359 <input class="el-button el-button--primary el-button--medium is-round" 360 name="button" 361 accesskey="l" 362 tabindex="6" 363 type="button" 364 value="LOGIN" 365 366 style="width: 100%" 367 /></el-form-item> 368 369 <el-form-item style="text-align: center"> 370 371 <div style="display: flex;justify-content: space-between;align-items: center;"> 372 <a href="/cas/personal/forgotYourPassword?service=http://oa.nyist.edu.cn/sso_login/t_sso.php" target="_blank"> 373 <el-button type="text" style="font-size: 14px; font-weight: 400;">Forgot your password?</el-button> 374 </a> 375 <a href="/cas/personal/activeYourAccount?service=http://oa.nyist.edu.cn/sso_login/t_sso.php" target="_blank"> 376 <el-button type="text" style="font-size: 14px; font-weight: 400;">Active your account</el-button> 377 </a> 378 </div> 379 380 </el-form-item> 381 382 <el-form-item> 383 <div id="loginError2"> 384 </div> 385 </el-form-item> 386 387
387<script type="text/javascript"> 388 $( document ).ready(function() { 389 var currentMenu = null; 390 if (currentMenu == "2") { 391 var containerFormInput = $("#fm2Input"); 392 var containerForm = $("#fm2"); 393 var originalUsername = null; 394 if (originalUsername == null) { 395 originalUsername = null; 396 } 397 var hasErrors = false; 398 var errors = []; 399 400 console.log("trigger processLoginError"); 401 processLoginError(containerFormInput, containerForm, originalUsername, hasErrors, errors); 402 } 403 }); 404 </script>
404 405 406 </el-form> 407 408 <el-form style="width:0; height:0; border:0; margin: 0; padding: 0;" method="post" id="fm2" action="login"> 409 <input type="hidden" name="username" value="" autocomplete="new-username"/><input type="hidden" name="password" value="" autocomplete="new-password"/><input type="hidden" name="currentMenu" value="2"/><input type="hidden" name="failN" value="-1"/><input type="hidden" name="execution" value="1e565a26-f623-498b-8bb3-57e7dd94ec43_ZXlKaGJHY2lPaUpJVXpVeE1pSjkucDBJRkdOWTBVQTNsMDZYNitpOTlFZkJGdTVDaStvcVJuK25nZWhHVzh5QmRKdld2RGRSSjZsdUxVaUorTmU3eE9IcDlXVTlPSUJwLy9CNmlWTzJhV1NGMTFhN1RTZ0lPZmoyd25RRGFYR2dTejlKSjI0WTdIb0tNZVo5UTdOOWl2NjFYNHcxRENMRittTmpSVGJaczRqbXpjUm5zandNNVFENjVOWVM4OUM5S3ZwNmhaQkJTUkRrVjU4ZXZHMEFmeFZCdGQyR3VURVpZeC9GVzU4MTk5cDhwZlIrb09Kb1B2MTRBRHozN3JPS2o4MUZkaXJtekFndFB0MGxzYWNGa3ZNNEJ0ckZPczNKdHlvWXh4alQvOEhtMk9zVVNVT3R1UVRVRk41TVBhbU53YVR0V3p3NlZYR3FIL05zUHB4RTJxb0owdG9SWW5jV3MyclNqSnIrb2JVMG5hdzVBZUQrNkRMdi94R21iWlMvOTRNYUM0NHZJajZ0WldHYnY0V0s1ZnAwRksyZDZLMm9ySmR0bGpIa3dzM2tBeVZXcEdHR1dCdlRpTVhHaVZKdGFtS2FYbjliak1SWnVPR0podFhRaWJ0VStjdWN2TXExL1ZKZWNEL2Jtdm9RbVQxZ2NhZmlya3h1NlhzUjRqQ0tCeFJvdElkRDB4SklWdjU0QTRCenBCQlhPTmsyczZTZDQ4ZGVZaUxDclVBQXVuLzRrTkZKUGVndU9MYXpoeXE3Qm4vWWZ2MmRnYk9yWTlhR3lPQWZlLzZiRFlGUFVsZ09KbGtKRGh5bDJkRVAvRkpMelhGdFEvVXQrSHFKRFZJM1FnMjY0VE1oSUMySzQyM2t6OCtoSjRtVFRMTGswL0F1M3J2S0dvb3NISDE5ZnZCSzVRUzNNT0YwdmdqTGp0V3kvNUR3K0lWSjBDUE5zTFhadGFGeUg1QzEwdFY5TFpzQ0t5ZGRVVFowMkNxTXhTck9mMjhnMWQ2WFU0a0pzdFhlTUZjdlNQWU5yL0RpSkVJK2ZxWThWK28vK1hydVo5c2tITmVtbFhTZ09NMkF6ZEJRWDNUSFMvcUxEa01QTTN6WCt5ZExDZHdIaFpVMGl0bTMwRGZ5WDFmcVdZbVY0T1FYdmhoUENIRFNXOHdtZ2greUhIanNoSURHSEJHaUZpN0RXcEJLOU8xd3Z2bWN0T0pVQ2JGRHBuUm9sL0MzMVFuOGw1ZVBmM3AzM1hDekZkcU1DR21UbWtocjkxbXRqNi80V0ZJeStSTitBbE9JY3ZWSXJjdEJTUEQzZ1UwelAvTjFvQ3haZFF6S3pJdU5tc3VXVjRQZnJHQ1FXK3BZSEI1a25PVUJpOW9pa1lnaEhLR0VxdTdwbVVRVUdYeldTRERsY0hDUVN2d21od3JQK2JkODBDbnRXcWFTZGkvZGdQbzVFL2drb2Qrclo5T0NoVDlKMnhKckFsdVNzcU1zVk1vNTY2TDJqdUlYaW9LS0VPSSs4eHZMV0phTlJuV3d1SU83Q0ZjaXhoTG9xazhPdmw2OGhJZ1hGNEpnMWFBNEJ1WjNUR2xzUEM3Um96aGI5RVozYm43aElTbzd1R3ZOR2JDZ3pMdW5oS0RJQUZVdm9UcXY1clFjdjhHRHJoV2NiK3ZMb1BZNEVWUTRZcStPU1h2N0lDZk4wRCtXMmV1TTl4M0tBVEZHVGZ3eTlTeGtRc1BLcmQ5YzdVOEtzNDZOYkJQbVArUTRtUDh5UzQxSy9Qakw0VmRiLzYzWG5aaHE3ekVjKzJKRHR3N2F4NnJFWHlPMys0blB1M3RXZkNGRDBlK3JEcUhiVmpWclhiMkVXOWdaZlk1K0lSb3dqRWlHOXlhWG03U25LOEM0WUJOVnpHUUpnbHowbzB0a0dDc3BFSjFML0JLNVhxT0FncGp5L0ltbnFaK1lPQTl2UXBWcjBHNGtTWEI5anpZa0h5M2c0QjhQK2RSbFJjb0RjQTJ5VTEvWHUzNWZ3bW5McmFLZVFTZSsrRWt6V2gyZExvZ0FaVEhTTlF6ZmJMTVVPTWVJNmdRQnJmb0FIUkN1d1lFV3lvSWEyZ1J2V0l1NnN1amIzS2djazZxUnB3WGhOK0tpMUpPU0c1VTMwb2ZoTzVkWG1HbTVwa2doT1ltVE41OFlCQ1l1U055bG1la2JpSEcvRTJMNEVZSENZMzVJWlphcnlyQTJhYW94VG5yTEJJRHoyZlJEeTRWQkdZUFNsKzNpTjE3ai9SUHAwSUR4YTNxUHFrOUEzNjBXNnJod1FGVVI5R0E1aEFsSDZyTEE2czlzR0lyOUR2Z1FhQTI2dExuMGNDZjZYNmNVVzI2L1RKV1FhK1pOa0lvbTR4anovSzBDRkZxQ3NtOXU1N2FGUkJhMVdTZFpmcmZEKzVmQVB6RjlTZ2FXR2xwdTRsTXlTQVF5endjWm03bExVenFhOGg5WHJpdEJYeS9GcHN3OHJRMENKQkRVWGE3WWNGcDRmZ21TeDd2SkZRRUZOZkFGODlkazFqZC9PNzJ6d2R0aU9tS0RyY3RLSXcwZ0h2dEFNTDA1QkhBajFtbnhwSm00dlJycW5Hc2htcGFUUWhlN3lUaklBL05oTTZMeXZ2SXEwSG5OeXlLVlArZU14VVZXYVBDRVUrTnl0T1NONUozQkhIVGgvbE9ldEo3b0phSHJGL2RhUWlaVDk0VmpJS0VFRWY3a1lkcTM3YW5OWWt2NWJUY3cycWdNLzRvNzVHUy9kdFhUUVdBb2pQVWhIT1pEcTRSRmxEWnNubytuSXUrTFNqRE85ME5oN1JmQ0N3cDFEa1hNOStjM0hLdEdoYldzRVZ6a25SbU84VWZDTTJBSU1mN0V3Q3hybTRSYjNWN1Rjc3ZMdyt3YWQxTklHeWFqd2VnZW1xN0RjR3BZcWZUYjVPbWN1SGZ6d0tJNTZxT2JRMThmeHRoamhVWFdnQ2c3L0NXZ2h4aFFrZnhxWjhhdElxWllWU0V3bis5TjFMQTdFYlhsczN1VlFZOG11d1ZUNW5CVWxQU2FFQUxvLzJjRW04dnBxSXMzdEJMeVdQd2ZYSWkwTG9oWWMvL1VrV1FpVWpEVFZ6VFppZU9BaFo1clNZQlNuQjNiWXMxMDgrM0hRSnFibVJheGY0bnBJZnZNaEM1YUJHZWRtTzZQVStBMi9uWXN0MXVtcHk2QnR3ZDhvRkpHRmRHdDFUMXlVdjRRSVpUUHZKVlJPQ3VhT2JRRWlLWFRhS2ZxSG11eEdZa1c5MkdsNzhySEMrK0U0a2VNSU5tNTNVRXNzVWFrTGw4cGhsbmNaaVFON25waHdXYjFvNjV1M0VOUGRlakhwR3BHcG9iRHBNMWhBR052OFc5Y1JzU0V6NXBiL3dwWU43cTRGQjNwODVQTG91bkVNTngya2J2NU1XUE1ua05SSFl4Q2ZpcWZSa0g1Ukl2ZWZPcytOekxmZXNYV0Zmc3VCWjVtVU1md1pBeTg1UWthR0MwYnU0ZGJnU2lENklsQ2p2aGtvbExSV2xTNkhKUldHdzA3VGNPbnl1UUhvclRHUHNPNk5wcndoc2cyOGNHZEZMMFFUT2FvZWpoOTkvUXZ6NVQ5dDkrRFdnb0V2SnRwd3N2dzREV1VOZmtBWmNOVWpiUTJQSklXbnZneG91YWV1dmhPUUVFUVQ1Rm0vQmZ2QmNWR3VLQzEyRjRHMFVjT0RPb0w5MzRERVB6OTg3b1RxenFTUlZNajVJQUFMaVozeGdqOHZpdE8rQUdxZm9UREdIcDdtdUJrVXBseXBNRXJTcGNuWHlFV0hOMzIyaDJHK2ZxVjB6bXpnU2JWWHZLa01Bc1lqZWhTOUpUWWxQR0xTRHFKQnE0VnBSLy9mU1ZBNGRZc05ObnNyUGdHR0krdXJMOGFPVzN6V1JHeWJzcjRkOTNIMy9QU0hMdDNLdDEzUXFkN08yN0J2NGVmM0k2UDRIczVROVZHRHB0WTAwRzV6TUMyV0l2RXBid0FCSS9sN2lNOFRIeEk0R0lFSE4xVDlSdWZNeUVKL3labzQwSlVzZ2J1eTlRWmVreUtsWjFHYk42azk2eG9vSlFDUjM5N0lxcGFURGF5aE9yeXVPZ2ptUVhMUXNzSEg0eVdvWWlrV1RJcUJDb3hSZzV0djZFaHVjZnIveTRVSjVweGx3U25DS3BKZjZHbjRsaE1NZ2dteDVJdEdsZ3hDaVA3elhma1QycjJVcmdzOEtkanNxS0VHK2VXU2dKY1JHT2xtZ056WVRUSnpvZkNMQXlSejBxR1NLcVlXd0NDM3NncE1laUlNbVBPWFVxT0tOK0taWm1EVGtuSWt3OVhhcEdUTzBiNnc3bjN4bE1MeTZPNUtRcTBVQ0UySjU5UjIvdGpheXI1aDl3VGFvUUhtWlZxTzQrQmVNNTRNei9Uay9lbExmdTlUUWt2L3NuWmE2a1pxcmVGRHVoa2xCQlJiblRvT2lqdUJaaTRuZ0MzMVRlTnJmcW1FMU14M0I1SWcvdFh5ZmIwZzBTcGlpQk1Kc2JKNjA1aWlZbUt0NHVtNm1aRWZESlFXQ0I4ODJzak9VMERJNWhpa3dzb1N2ZjlKWTl4QWpBVlErRWE2djVkWDcxVGNKTy9ReVJMV1FQZDJRSmtKRWsvR3N4aFNhSEpFNFY3dEpFWTkwdmNnbHQxQ1N4akVVblBzSlBPTlEvRnJIT2U3dk0welNOcnpGeEs3Z3o0djQxV3R2a056dXlBKzl6MDExczlFWGhrbTNORUpaamVodisyWnNJZk13THlsQnNLMER0N2d6NFRURnJrSnUzU2o4VzllZTBMYWswaG1qZ2tpaVFqRERGVWd2dWpyMlhOd292SVlmeTMwQTFUWE9NNHoweUdibHRFUXl2MDA5NnB1TFd5L1JwWFYvZVhGTDM4ZnBseUFwSjhpNnRBZU10Rnl1Z2Z4dEdsRXJoc3o4Q25tYTZFbUg3QjErendJWmJ5OU9tdWVvMldPL1BNVk5ncGIwa3dzUnkvVXp5ai95dTJNblNaZThhcGFEbTNkWDBFSXpGRWZ3b3BIWVpsUjBHNzZkNHl2MmVJN0VXdXlBbDBHR0IzSEFaclBhbE8wYmNIaVE3ZlRiUUdFUEp5WnlCRkdob3ZRZ1ZWdk0zNWdGbU55U2t2MTltY0RYcU52QW0rSmxKYm1XN3d2QWVxUmRYQzdKbTJuSTQzMGxFbWFqd25kZjRVZldhZUlKOHB0cU5sUDg4VXdZdzVDK1M2dDdXblNFOG10SkNRVHEvOERrTTBFamR0V01pbnNNaDgwQllSY293RSt0Q2V3VkNLd2Rhc2w5Mjh1RHhUQkx2c3FoQjIvV0Fxc0RzL0NlY3FvNExFalpLdFZDYzJVakZZMXFMTDdwLzNsZnhzNjkxdC9sTklnbG5RMDlrOXVlT3VSSU5ML3VmeTh2aFFaMU9SMCt2Nlo3MjlkemxtMTloWWlocHVabnB5ay9kR2p4eEJVVzhselZPL1FSMWVvNWZLeHpCQXpSZXBhNnB5OTk0UmpDRlpuNld1a1FRcERJK1BrbTlNU2QvSkN0L013TXpyR2c4SXFD
409amJnQkMvMjdpSEdJdUxLOUxNeXBSYnNKdHlrYk9rbmFyY0liYkdqMldFcEQ2WW0zM29jRjBFSVc2WlN3cGVCaUliRjJoVFBnTEtqUnI4Vkw5bEN4Y1Z5YVByellQM3h2bTM0VnAzb2FkZlVJb05DdkhKclZHdmJVdTB1dG9HMGMwQ2VVU2FsWDAyM0NBQTdlTklHRXNIaW1UUWl2L0pLbFREUHhTcHo1aVJVcERENFpIT05Yc3FGcC9aRUxqeFFRODVVVG45eTlrcWt2OGlaRERCN05jLzYxTTYvK09mazdkYWpxaFIwQzVEUlhZWlM2TkYrQUlqTHNSTGxCME01R0dLRU9YdW8zUlR4N2trS3dmN09YWWlmTitDYjJmTXYxNm9mNWRqK3IrZlYyVnJnY093QXNuSjJpQmVvbUd3a1N3aTJBbFRZdU1wKzFNVVRPVWNPU3R1MWZ6akZxUkp3TFRSdml5VWxEdGRrRitPZ1pzTGpTMy96QTczRGd2MlZNbk5kQWp1RWJYdlhDS29XaGZnMUVEVkpKd1ltZktNbGROWWpjTnFvZ1JZVm5jZlVrZW1rNERsbE44cDZkcXdKUU5zNmE2RHdZVnJoRk5wN2VLbkYxL0o2aEhvdFY0Tk03QnYyT0xwVFkzL2hDUDdvTnlsc1UzbDd6cjdUTGRzRlJGenZrYVI2dTZheDNZUElYc0c2bzQ5Ynd2REJmbllLQW42Mms1OWsyQ2FvMjlOL2RjRWI1Y0FHbGo5TE1ISXFLU3c4NlMwTVNEQUVyWUdMR1p1WTk0SUk4YXBCRXFBWlI4VkRiZUU5SlJJZ3p6T3BTWVB2c0wwNlhkamNtcDErVE5vZG9UZkM3dnpqN0Z1K2pGZTNta01rdnpJK2xpZmtKWHh4NEhDMjV5dXAyNGxoRHBrUDRxVUJrRFdJNjVhN0RiRnV4Tm5FcHVpVFdpYnZ4ZkF6VDBDSTdHcWtMbXRPRXRXb0IreDQ5V1FXeGZlNWpNeDh4OERvNExGWVU2NEdWN3lwVTkzN1pjWHRJa2pVZEhXZ0VBT2dlbXdVWklDalVoU2EraXEwV2RjWUlLWjJGendCMzVWRWVsSXNqYUFpaUQ1cUEvN3JZelhFZ3FPNTJUMXNPNUZsUVJxS1lEdkdBZVJjb0gvUkJPOHpRc2FNamgyUElNYzJyZkNCeUwvbjdxN1IwdjJKZGZTaGliVTZialpQK3pPQyswS1hmRHh3SUtkNFNDNlc0bi9nSEhpY3g1VUdLRXlkMkNEZHZONWFYNGpTWFJIajczUktBcGhYeStWcitOclVGN0ZJTFIwdGpGYXRuNDJQaUM1UVA3czlXb2xZMXFvUm9MNDZyb29TQmxJSk1DWGtwaEVMRmovSTFaUmZ0Zks1dmtwcDREeGhBKzY1VDVmOUpLU00wZmJ5VjU4UFdXUXhBakdxS2xubFFWeldPcUNESE5oVzRwTTFQS0lVOUx4SVlROEpjR3lvYWV4N1RBNHkrV1dLcUNlbTlqNWpMcHplaHUzTTdxR3RvMjlFUjlPZ3NVc1JmMWdNeTJzRGRCV1Q5QnZJYTRRVVJDVnFxMmg1QWQ4bWRsTEFBYmlvc0Z5NWUxY1FTTS9nb0VEdUF6MHVWbURZRUxVWC9aWFRPSnZSTFlKUnZSY1hFSEFFN2xxZ3g4Q0pqSzNXRFlRc2R4OFEwalNJOTJ5TFV4OUhoREtWQ3VHby9WNWNoU1hmbzM0MGZqOGhhQU1PRjVONTRaMjEwb253K2NqaTZQaWxlYzJyekxVOUtGcEJVOXlxTVVpZ2JnPT0ud1ZkLUw4T3pTblRyZmd3RzNDOUFiNmtYcFp3b01MVWxtMnBvY21xamF0cDBUREpVYmFyUjFCN1JKcW1IdmpPSVhrbG9oU0liajdpejVjTWpGRlZuclE="/><input type="hidden" name="_eventId" value="submitPasswordlessToken"/><input type="hidden" name="geolocation"/><input type="hidden" name="fpVisitorId"/><input 410 name="submit" 411 type="submit" 412 value="Login2" 413 style="display:none; width: 100%" 414 /></el-form> 415 416 </div> 417 418 </div> 419 <div style="margin: 20px 80px; text-align: center;"> 420 421 <div style="display: flex;align-items: center;"> 422 <div style="width: 37%;border-top: 1px solid #D2DAE0;"></div> 423 <span style="margin:0 10px;font-size: 14px;color: rgba(2,21,37,0.35);line-height: 22px;">Or login with:</span> 424 <div style="width: 37%;border-top: 1px solid #D2DAE0;"></div> 425 </div> 426 427 <div style="display: inline-flex ;justify-content:space-between;margin-top: 20px;padding: 0;"> 428 <a class="btn btn-block btn-social btn-sm" style="width: 50px; display: inline-block; margin: 0 10px;" 429 href="/cas/federatedRedirect?service=http://oa.nyist.edu.cn/sso_login/t_sso.php&federatedName=openweixin" 430 title="WeChat"> 431 432 <div @mouseout="jointActive=-1" @mouseover="jointActive=2" style="margin:0 5px;font-size:36px;display: inline-block;width: 36px;height: 30px;border-radius: 36px;color:#0EBB07;cursor: pointer"> 433 <i :class="jointActive==2?'su-icon-wechat':'su-icon-weixinbian'"></i> 434 </div> 435 <!-- /* 436 <sw-button th:case="qq" :custom-button-size="50" icon="su-icon-tencent" active-color="#1196DB" circle icon-button ></sw-button> 437 <sw-button th:case="openweixin" :custom-button-size="50" icon="su-icon-wechat" active-color="#0EBB07" circle icon-button ></sw-button> 438 <sw-button th:case="workweixin" :custom-button-size="50" icon="su-icon-wechat-company" active-color="#0082EF" circle icon-button ></sw-button> 439 <sw-button th:case="alipay" :custom-button-size="50" icon="su-icon-alipay" active-color="#08ABE4" circle icon-button ></sw-button> 440*/ --></a> 441 </div> 442 </div> 443 444 </div> 445 446 <div v-show="isQrcode"> 447 <div> 448 449 <div style="text-align: center;padding-top:120px"> 450 <h2 style="color:#383C41;padding-bottom: 30px">æ«ç ç»å½</h2> 451 452 <form method="post" id="fm3" action="login" style="display: none;"> 453 <input type="hidden" name="qrCodeKey" v-model="stateKey"/><input type="hidden" name="currentMenu" value="3"/><!-- <input type="hidden" name="execution" th:value="${flowExecutionKey}"/> 454 <input type="hidden" name="_eventId" value="submit"/> --><input type="hidden" name="geolocation"/><input type="hidden" name="fpVisitorId"/><input class="btn btn-submit" name="_eventId_success" type="submit" value="Submit"/></form> 455 456 <div style="display: inline-block; position: relative; width: 300px;height: 300px;margin: auto;"> 457 <div v-if="isQrcodeAlert" id="qrcode_img_alert_layout" @click="refreshQrCode" 458 style="display: inline-block; position: absolute; z-index:999; width: 300px; height: 300px; background-color: rgba(255, 255, 255, 0.7); line-height: 300px;" 459 >{{qrcodeAlertMessage}}</div> 460 <img id="qrcode_img" :src="''+qrcodeImgUrl" width="300" height="300"></div> 461 <p>æå¼ <span></span> æ«ä¸æ« 462 <!-- /* æå¼ 463 <a href="#" th:href="${superappDownloadUrl}" target="_blank" title="ç¹å»è¿å ¥ä¸è½½é¡µé¢ / Go To Download Page" style="text-decoration-line: none;"> 464 <button type="button" class="sw-button sw-button--text sw-button--small" style="font-size: 16px;"><span>è¶ çº§APP</span></button> 465 </a> 466 è¿è¡æ«ç */ --> 467 </p> 468 </div> 469 470 </div> 471 </div> 472 473 </div> 474 475 </div> 476 </div> 477 </el-container> 478 </div> 479 480 <div class="card"> 481 482 <el-dialog v-if="mfaEnabled" 483 class="dialog-wrap" 484 title="å®å ¨éªè¯" 485 :visible.sync="guardDialogVisible" 486 width="506px" 487 height="420px" 488 :before-close="hideGuardDialog"> 489 490 <div class="check-tips"><img src="/cas/themes/nwpu/images/tip.svg"></img>å½åç»å½ç¯å¢å¼å¸¸ï¼ééè¿å®å ¨éªè¯ç¡®è®¤æ¯æ¬äººæä½åæå¯ç»§ç»ç»å½ãè¯·éæ©å®å ¨éªè¯æ¹å¼ï¼</div> 491 492 <div class="type-wrap"> 493 <el-row type="flex" align="center" justify="space-between"> 494 <el-col :span="12" class="safe-flex"> 495 <img class="safe-title-icon" :src="typeInfo[typeIndex].icon" :alt="typeInfo[typeIndex].title" :title="typeInfo[typeIndex].title"><span class="type-title">{{typeInfo[typeIndex].info}}</span> 496 </el-col> 497 <el-col :span="12" class="safe-flex safe-flex2">
498 <span class="other-title">å ¶ä»æ¹å¼</span> 499 <span v-for="(type,index) in typeInfo" :key="index"> 500 <img :class='index==typeIndex?"safe-icon":"safe-title-icon"' style="cursor: pointer; margin-right: 6px;" v-if="typeInfo[index].enabled" :src="index==typeIndex?type.icon2:type.icon" :disabled="index==typeIndex" :alt="type.title" :title="type.title" @click="changeGuard(index)" ></span> 501 </el-col> 502 </el-row> 503 </div> 504 505 <div v-if="typeIndex==0" class="app-style" style="height: 102px;"> 506 <div>ç¹å»åééªè¯è¯·æ±åï¼è¯·å¨ <span></span> ä¸è¿è¡ç¡®è®¤ï¼å®æå®å ¨éªè¯</div> 507 <div class="code-wrap"> 508 <div v-show="appPushCallbackCode" style="position: relative; text-align: center; font-size: 19px; margin-top: 15px;">确认ç ï¼{{appPushCallbackCode}}</div> 509 <div class="error-text" v-show="appPushStatusShowAlert" style="position: relative; text-align: center; font-size: 12px;">{{appPushStatusAlertMessage}}</div> 510 </div> 511 </div> 512 513 <div v-if="typeIndex==1" class="phone-style-wrap" style="height: 160px; padding-bottom: 3px;"> 514 <div class="phone-style" v-show="securePhone"><span>+86</span> {{securePhone}}</div> 515 <div class="code-wrap"> 516 <el-input class="input-style" v-show="securePhone" v-model="securePhoneCode"></el-input> 517 <el-button type='text' class="code-text" v-show="securePhone" @click="securePhoneSend" :disabled="securePhoneSendDisabled">{{securePhoneSendText}}</el-button> 518 <div class="error-text" v-show="securePhoneValidShowAlert" style="position: relative; text-align: center; font-size: 12px;">{{securePhoneValidAlertMessage}}</div> 519 <div class="error-text" v-show="!securePhone" style="position: relative; text-align: center; font-size: 12px;">å®å ¨ææºæªç»å®ï¼æ æ³ä½¿ç¨å®å ¨ææºéªè¯</div> 520 </div> 521 </div> 522 523 <div v-if="typeIndex==2" class="phone-style-wrap" style="height: 160px; padding-bottom: 3px;"> 524 <div class="phone-style" v-show="secureEmail">{{secureEmail}}</div> 525 <div class="code-wrap"> 526 <el-input class="input-style" v-show="secureEmail" v-model="secureEmailCode"></el-input> 527 <el-button type='text' class="code-text" v-show="secureEmail" @click="secureEmailSend" :disabled="secureEmailSendDisabled">{{secureEmailSendText}}</el-button> 528 <div class="error-text" v-show="secureEmailValidShowAlert" style="position: relative; text-align: center; font-size: 12px;">{{secureEmailValidAlertMessage}}</div> 529 <div class="error-text" v-show="!secureEmail" style="position: relative; text-align: center; font-size: 12px;">å®å ¨é®ç®±æªç»å®ï¼æ æ³ä½¿ç¨å®å ¨é®ç®±éªè¯</div> 530 </div> 531 </div> 532 533 <div v-if="typeIndex==3" class="face-style-wrap" style="height: 152px; padding-bottom: 3px;"> 534 535 <div class="qrcode" v-if='!qrCodeScanSuccess'> 536 <img v-if="qrCodeScanQrcode" :src="qrCodeScanQrcode"><div class="qrcode-reset-opacity" v-if='qrCodeStatusShowAlert'></div> 537 <div class="qrcode-reset-wrap" v-if='qrCodeStatusShowAlert' @click="qrCodeRefresh"> 538 <i class="el-icon-refresh-right"></i> 539 <div>ç¹å»å·æ°äºç»´ç </div> 540 </div> 541 </div> 542 <div v-if='!qrCodeScanSuccess'>æ¯æ {{qrCodeScanTypeNames}} çæ«ä¸æ«åè½ï¼å®æå®å ¨éªè¯</div> 543 544 <div class="face-sucess" v-if='qrCodeScanSuccess && qrCodeStatusShowAlert'> 545 <img src="/cas/themes/classic/images/safe/dui.png"><div>{{qrCodeStatusAlertMessage}}</div> 546 </div> 547 <div v-if='qrCodeScanSuccess && qrCodeStatusShowAlert' v-show="qrCodeCallbackCode" style="position: relative; text-align: center; font-size: 19px; margin-bottom: 15px;">确认ç ï¼{{qrCodeCallbackCode}}</div> 548 <div v-if='qrCodeScanSuccess && qrCodeStatusShowAlert'>è¯·å¨ææºä¸ç¹å»åæä»¥å®æå®å ¨éªè¯</div> 549 </div> 550 551 <div v-if="typeIndex==4" class="face-style-wrap" style="height: 152px; padding-bottom: 3px;"> 552 <div class="qrcode" v-if='!faceVerifyScanSuccess'> 553 <img v-if="faceVerifyScanFaceverify" :src="faceVerifyScanFaceverify"><div class="qrcode-reset-opacity" v-if='faceVerifyStatusShowAlert'></div> 554 <div class="qrcode-reset-wrap" v-if='faceVerifyStatusShowAlert' @click="faceVerifyRefresh"> 555 <i class="el-icon-refresh-right"></i> 556 <div>
556ç¹å»å·æ°äºç»´ç </div> 557 </div> 558 </div> 559 <div v-if="!faceVerifyScanSuccess">æå¼ <span></span> æ«ä¸æ«åè½ï¼æ«æäºç»´ç è¿è¡äººè¸è¯å«ï¼å®æå®å ¨éªè¯</div> 560 561 <div class="face-sucess" v-if='faceVerifyScanSuccess && faceVerifyStatusShowAlert'> 562 <img src="/cas/themes/classic/images/safe/dui.png"><div>{{faceVerifyStatusAlertMessage}}</div> 563 </div> 564 </div> 565 566 <span slot="footer" class="dialog-footer" style="height: 50px; display: block;"> 567 <el-button type="primary" v-if="typeIndex==0" @click="appPushSend" :disabled="appPushSendDisabled">{{appPushSendText}}</el-button> 568 569 <el-button type="primary" v-if="typeIndex==1" v-show="securePhone" @click='securePhoneValid' :disabled="!securePhoneCode">ç¡® å®</el-button> 570 <el-button type="primary" v-if="typeIndex==2" v-show="secureEmail" @click='secureEmailValid' :disabled="!secureEmailCode">ç¡® å®</el-button> 571 572 </span> 573 574 </el-dialog> 575 576 </div> 577 578 </div> 579 580 </div> 581
582<script type="text/javascript"> 583 584function getQueryString(paramName) { 585 var reg = new RegExp("(^|&)" + paramName + "=([^&]*)(&|$)"); 586 var r = window.location.search.substr(1).match(reg); 587 if (r != null) return unescape(r[2]); 588 return ""; 589} 590 591var isDebug = getQueryString("debug") != null && getQueryString("debug") != ""; 592 593var isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i) != null; 594 595var superappName = ""; 596 597var defaultMenu = "1"; 598 599var qrCodeEnabled = true; 600var loginType = getQueryString("loginType"); 601var currentMenu = null; 602var isQrcode = false; 603 604if (currentMenu) {} else { 605 if (loginType === "") { 606 currentMenu = defaultMenu; 607 } else { 608 currentMenu = loginType; 609 } 610} 611 612if (currentMenu == 3) { 613 if (qrCodeEnabled == true || qrCodeEnabled == 'true') { 614 currentMenu = defaultMenu; 615 isQrcode = true; 616 } else { 617 currentMenu = defaultMenu; 618 isQrcode = false; 619 } 620} 621 622var icon = "\/cas\/file\/png\/icon.png"; 623var logo = "\/cas\/file\/png\/logo.png"; 624var bg = "\/cas\/file\/png\/bg.png"; 625 626var ppts = []; 627var backgrounds = []; 628 629if (ppts != null) { 630 for (var i = 0; i < ppts.length; i++) { 631 backgrounds[i] = ppts[i].fileurl; 632 } 633} 634 635if (backgrounds == null || backgrounds.length == 0) { 636 backgrounds = [ bg ]; 637} 638 639 640var customEntryLinks = []; 641 642var customEntryLink1Name = ""; 643var customEntryLink1Url = ""; 644var customEntryLink2Name = ""; 645var customEntryLink2Url = ""; 646var customEntryLink3Name = ""; 647var customEntryLink3Url = ""; 648var customEntryLink4Name = ""; 649var customEntryLink4Url = ""; 650 651if ( (customEntryLink1Name!=null && customEntryLink1Name!='') && (customEntryLink1Url!=null && customEntryLink1Url!='') ) { 652 customEntryLinks.push({"name":customEntryLink1Name, "url":customEntryLink1Url}); 653} 654if ( (customEntryLink2Name!=null && customEntryLink2Name!='') && (customEntryLink2Url!=null && customEntryLink2Url!='') ) { 655 customEntryLinks.push({"name":customEntryLink2Name, "url":customEntryLink2Url}); 656} 657if ( (customEntryLink3Name!=null && customEntryLink3Name!='') && (customEntryLink3Url!=null && customEntryLink3Url!='') ) { 658 customEntryLinks.push({"name":customEntryLink3Name, "url":customEntryLink3Url}); 659} 660if ( (customEntryLink4Name!=null && customEntryLink4Name!='') && (customEntryLink4Url!=null && customEntryLink4Url!='') ) { 661 customEntryLinks.push({"name":customEntryLink4Name, "url":customEntryLink4Url}); 662} 663 664var showLink = customEntryLinks.length>0; 665var showLessLink = customEntryLinks.length<4; 666 667 668var mfaEnabled = "false" == "true"; 669 670var mfaTypeAppPush = "false" == "true"; 671var mfaTypeSecurePhone = "true" == "true"; 672var mfaTypeSecureEmail = "true" == "true"; 673var mfaTypeQrCode = "false" == "true"; 674var mfaTypeFaceVerify = "false" == "true"; 675 676if (isMobile) { 677 mfaTypeQrCode = false; 678 mfaTypeFaceVerify = false; 679} 680 681var defaultTypeIndex = 0; 682if (mfaTypeAppPush) { 683 defaultTypeIndex = 0; 684} else if (mfaTypeSecurePhone) { 685 defaultTypeIndex = 1; 686} else if (mfaTypeSecureEmail) { 687 defaultTypeIndex = 2; 688} else if (mfaTypeQrCode) { 689 defaultTypeIndex = 3; 690} else if (mfaTypeFaceVerify) { 691 defaultTypeIndex = 4; 692} 693 694var dialogVisible = false; 695 696var SwUI = SWUI; 697Vue.use(SwUI) 698 699var vm = new Vue({ 700 el: '#vue_main', 701 data: function data() { 702 return { 703 isMobile: isMobile, 704 705 customEntryLinks: customEntryLinks, 706 showLink: showLink, 707 showLessLink: showLessLink, 708 709 dialogVisible: dialogVisible, 710 711 active:0, 712 713 icon: icon, 714 logo: logo, 715 background: bg, 716 bg: backgrounds, 717 currentMenu: currentMenu, 718 currentImage: 0, 719 jointActive: -1, 720 loading: false, 721 722 qrcodeImage: { 723 qrcode: "\/cas\/themes\/classic\/images\/qrcode.png", 724 normal: "\/cas\/themes\/classic\/images\/pc-login.png" 725 }, 726 qrcodeHover: false, 727 isQrcode: isQrcode, 728 qrcodeImgUrl: "", 729 qrcodeTimeout: 0, 730 isQrcodeAlert: false, 731 qrcodeAlertMessage: "", 732 stateKey: "", 733 734 mfaEnabled: mfaEnabled, 735 guardDialogVisible: false, 736 737 typeList:['使ç¨Appæ¨é认è¯','使ç¨å®å ¨ææºè®¤è¯','使ç¨å®å ¨é®ç®±è®¤è¯','使ç¨å®¢æ·ç«¯æ«ç ','使ç¨äººè¸è¯å«è®¤è¯'], 738 iconIndex:0, //å®å ¨éªè¯æ¹å¼ 0ï¼app æ¨éï¼1ï¼å®å ¨ææºï¼ 2ï¼å®å ¨é®ç®± 3ï¼äººè¸è¯å« 739 safeIcon2:[ 740 "\/cas\/themes\/classic\/images\/safe\/app2.png", 741 "\/cas\/themes\/classic\/images\/safe\/phone2.png", 742 "\/cas\/themes\/classic\/images\/safe\/email2.png", 743 "\/cas\/themes\/classic\/images\/safe\/qrcode2.png", 744 "\/cas\/themes\/classic\/images\/safe\/face2.png" 745 ], 746 safeIcon:[ 747 "\/cas\/themes\/classic\/images\/safe\/app.png", 748 "\/cas\/themes\/classic\/images\/safe\/phone.png", 749 "\/cas\/themes\/classic\/images\/safe\/email.png", 750 "\/cas\/themes\/classic\/images\/safe\/qrcode.png", 751 "\/cas\/themes\/classic\/images\/safe\/face.png" 752 ], 753 754 showError:false, //æ¯å¦æ¾ç¤ºéªè¯ç é误 755 typeInfo: [ 756 {'type':'apppush', 'enabled': mfaTypeAppPush, 'title':'APPæ¨é', 'info':'使ç¨APPæ¨ééªè¯', 'icon':"\/cas\/themes\/classic\/images\/safe\/app.png", 'icon2':"\/cas\/themes\/classic\/images\/safe\/app2.png"}, 757 {'type':'securephone', 'enabled': mfaTypeSecurePhone, 'title':'å®å ¨ææº', 'info':'使ç¨å®å ¨ææºéªè¯', 'icon':"\/cas\/themes\/classic\/images\/safe\/phone.png", 'icon2':"\/cas\/themes\/classic\/images\/safe\/phone2.png"}, 758 {'type':'secureemail', 'enabled': mfaTypeSecureEmail, 'title':'å®å ¨é®ç®±', 'info':'使ç¨å®å ¨é®ç®±éªè¯', 'icon':"\/cas\/themes\/classic\/images\/safe\/email.png", 'icon2':"\/cas\/themes\/classic\/images\/safe\/email2.png"}, 759 {'type':'qrcode', 'enabled': mfaTypeQrCode, 'title':'客æ·ç«¯æ«ç ', 'info':'使ç¨å®¢æ·ç«¯æ«ç ', 'icon':"\/cas\/themes\/classic\/images\/safe\/qrcode.png", 'icon2':"\/cas\/themes\/classic\/images\/safe\/qrcode2.png"}, 760 {'type':'faceverify', 'enabled': mfaTypeFaceVerify, 'title':'人è¸è¯å«', 'info':'使ç¨äººè¸è¯å«éªè¯', 'icon':"\/cas\/themes\/classic\/images\/safe\/face.png", 'icon2':"\/cas\/themes\/classic\/images\/safe\/face2.png"}, 761 ], 762 typeIndex: defaultTypeIndex, //å®å ¨éªè¯æ¹å¼ 0ï¼app æ¨éï¼1ï¼å®å ¨ææºï¼ 2ï¼å®å ¨é®ç®± 3ï¼å®¢æ·ç«¯æ«ç 4ï¼äººè¸è¯å« 763 faceType:1, // 人è¸è¯å«è®¤è¯ç¶æ 1 æ«æäºç»´ç 2 å·æ°äºç
763»´ç 3 æ«ææå 764 765 766 attestServerUrl: null, 767 gid: null, 768 769 appPushSendTimeout: 0, 770 appPushSendDisabled: false, 771 appPushSendText: "ç¹å»åééªè¯è¯·æ±", 772 appPushSendSeconds: 30, 773 appPushStatusTimeout: 0, 774 appPushStatusShowAlert: false, 775 appPushStatusAlertMessage: null, 776 appPushCallbackCode: null, 777 778 securePhone:'', 779 securePhoneSendTimeout: 0, 780 securePhoneSendDisabled: false, 781 securePhoneSendText: "è·åéªè¯ç ", 782 securePhoneSendSeconds: 60, 783 securePhoneCode:'', 784 securePhoneValidShowAlert: false, 785 securePhoneValidAlertMessage: null, 786 787 secureEmail:'', 788 secureEmailSendTimeout: 0, 789 secureEmailSendDisabled: false, 790 secureEmailSendText: "è·åéªè¯ç ", 791 secureEmailSendSeconds: 60, 792 secureEmailCode:'', 793 secureEmailValidShowAlert: false, 794 secureEmailValidAlertMessage: null, 795 796 qrCode:null, 797 qrCodeScanTypeNames: "", 798 qrCodeScanQrcode: null, 799 qrCodeScanSuccess: false, 800 qrCodeStatusTimeout: 0, 801 qrCodeStatusShowAlert: false, 802 qrCodeStatusAlertMessage: null, 803 qrCodeCallbackCode: null, 804 805 806 faceVerify:null, 807 faceVerifyScanFaceverify: null, 808 faceVerifyScanSuccess: false, 809 faceVerifyStatusTimeout: 0, 810 faceVerifyStatusShowAlert: false, 811 faceVerifyStatusAlertMessage: null, 812 faceVerifyCallbackCode: null, 813 814 815 }; 816 }, 817 mounted: function mounted() { 818 if (this.isQrcode) { 819 // æ¾ç¤ºäºç»´ç 820 var self = this; 821 self.isQrcodeAlert = false; 822 self.qrcodeAlertMessage = ""; 823 self.stateKey = ""; 824 this.qrcodeImgUrl = "\/cas\/qr\/qrcode"+"?r=" +(new Date()).getTime()+ Math.floor(Math.random()*24) + (isDebug?"&debug=debug":""); 825 this.startQrComet(); 826 } 827 }, 828 methods: { 829 changeMenu: function changeMenu(index) { 830 this.currentMenu = index; 831 832 refreshCaptchaInMenu(this.currentMenu) 833 }, 834 changeCarousel: function changeCarousel(index) { 835 this.currentImage = index; 836 }, 837 showErrorMessageUsername: function showErrorMessageUsername() { 838 // var message = "Enter your Username" + "\u8BF7\u8F93\u5165\u5B66\u5DE5\u53F7-\u8D26\u53F7\/\u8BC1\u4EF6\u53F7\u7801\/\u5B89\u5168\u624B\u673A"; 839 var message = "\u8BF7\u8F93\u5165\u5B66\u5DE5\u53F7-\u8D26\u53F7\/\u8BC1\u4EF6\u53F7\u7801\/\u5B89\u5168\u624B\u673A"; 840 this.$message.error(message); 841 }, 842 showErrorMessagePassword: function showErrorMessagePassword() { 843 // var message = "Enter your Password"; 844 var message = "Enter your Password"; 845 this.$message.error(message); 846 }, 847 showErrorMessageCaptcha: function showErrorMessageCaptcha() { 848 var message = "Enter the Captcha"; 849 this.$message.error(message); 850 }, 851 showErrorMessageMobile: function showErrorMessageMobile() { 852 var message = "Enter your Mobile"; 853 this.$message.error(message); 854 }, 855 showErrorMessageDynamicCode: function showErrorMessageDynamicCode() { 856 var message = "Enter the Dynamic Code"; 857 this.$message.error(message); 858 }, 859 showSuccessMessageSendCode: function showSuccessMessageSendCode() { 860 var message = "Send success!"; 861 this.$message.info(message); 862 }, 863 showFailureMessageSendCode: function showFailureMessageSendCode() { 864 var message = "Send fail!"; 865 this.$message.error(message); 866 }, 867 handleClose: function handleClose() { 868 this.dialogVisible = false; 869 }, 870 openOrCloseQrCode: function openOrCloseQrCode() { 871 var self = this; 872 self.isQrcodeAlert = false; 873 self.qrcodeAlertMessage = ""; 874 self.stateKey = ""; 875 this.isQrcode = !this.isQrcode; 876 877 if (this.isQrcode) { 878 this.qrcodeImgUrl = "\/cas\/qr\/qrcode"+"?r=" +(new Date()).getTime()+ Math.floor(Math.random()*24) + (isDebug?"&debug=debug":""); 879 this.startQrComet(); 880 } else { 881 window.clearTimeout(self.qrcodeTimeout); 882 } 883 }, 884 startQrComet: function startQrComet() { 885 var self = this; 886 window.clearTimeout(self.qrcodeTimeout); // å¼å¯å®æ¶ 887 888 function qrComet() { 889 var url = "\/cas\/qr\/comet"; 890 $.ajax({ 891 url: url, 892 type: "POST", 893 dataType: "json", 894 timeout: 1000, 895 success: function success(r) { 896 // console.log(r); 897 if (r && r.code == 0) { 898 self.isQrcodeExpired = false;
899 var stateKey = r.data.stateKey; 900 var qrCode = r.data.qrCode; 901 902 if (qrCode.status == "1") { 903 // 1 åå»ºãæªæ«ç 904 self.isQrcodeAlert = false; 905 self.qrcodeAlertMessage = ""; 906 self.stateKey = ""; 907 } else if (qrCode.status == "2") { 908 // 2 å·²æ«ç 909 self.isQrcodeAlert = true; 910 self.qrcodeAlertMessage = "æ«ç æå"; 911 self.stateKey = ""; 912 } else if (qrCode.status == "3") { 913 // 3 å·²ææ 914 self.isQrcodeAlert = true; 915 self.qrcodeAlertMessage = "确认ç»å½"; 916 self.stateKey = stateKey; 917 window.clearTimeout(self.qrcodeTimeout); 918 window.setTimeout(function () { 919 $("#fm3").submit(); 920 }, 500); 921 } else if (qrCode.status == "4") { 922 // 4 已忶 923 self.isQrcodeAlert = true; 924 self.qrcodeAlertMessage = "åæ¶ç»å½"; 925 self.stateKey = ""; 926 window.clearTimeout(self.qrcodeTimeout); 927 } 928 } else if (r && r.code == 1) { 929 self.isQrcodeAlert = true; 930 self.qrcodeAlertMessage = "äºç»´ç 已失æï¼ç¹å»å·æ°"; 931 self.stateKey = ""; 932 window.clearTimeout(self.qrcodeTimeout); 933 } else { 934 self.isQrcodeAlert = true; 935 self.qrcodeAlertMessage = "åºç°å¼å¸¸ï¼ç¹å»å·æ°"; 936 self.stateKey = ""; 937 window.clearTimeout(self.qrcodeTimeout); 938 } 939 } 940 }); 941 self.qrcodeTimeout = window.setTimeout(qrComet, 2000); 942 } 943 944 self.qrcodeTimeout = window.setTimeout(qrComet, 2000); 945 }, 946 refreshQrCode: function refreshQrCode() { 947 var self = this; 948 self.isQrcodeAlert = false; 949 self.qrcodeAlertMessage = ""; 950 self.stateKey = ""; 951 this.qrcodeImgUrl = "\/cas\/qr\/qrcode"+"?r=" +(new Date()).getTime()+ Math.floor(Math.random()*24) + (isDebug?"&debug=debug":""); 952 this.startQrComet(); 953 }, 954 955 showGuardDialog: function showGuardDialog() { 956 var self = this; 957 this.clearAppPushStatus(); 958 this.clearSecurePhone(); 959 this.clearSecureEmail(); 960 this.clearQrCode(); 961 962 this.typeIndex = defaultTypeIndex; 963 this.guardDialogVisible = true; 964 965 this.changeGuard(defaultTypeIndex); 966 }, 967 hideGuardDialog: function hideGuardDialog() { 968 var self = this; 969 this.clearAppPushStatus(); 970 this.clearSecurePhone(); 971 this.clearSecureEmail(); 972 this.clearQrCode(); 973 974 this.typeIndex = defaultTypeIndex; 975 this.guardDialogVisible = false; 976 977 $("#fm1").find('[name="mfaState"]').val(''); 978 }, 979 980 changeGuard: function changeGuard(index) { 981 var self = this; 982 this.clearAppPushStatus(); 983 this.clearSecurePhone(); 984 this.clearSecureEmail(); 985 this.clearQrCode(); 986 this.clearFaceVerify(); 987 988 this.typeIndex = index; 989 990 this.initGuard(); 991 }, 992 993 initGuard: function initGuard() { 994 var self = this; 995 996 var type = this.typeInfo[this.typeIndex].type; 997 var state = $("#fm1").find('[name="mfaState"]').val(); 998 999 var url = "\/cas\/mfa\/initByType"+"/"+type; 1000 url += "?state=" + state; 1001 $.ajax({ 1002 type: "GET", 1003 url: url, 1004 dataType: "json", 1005 success: function success(r) { 1006 console.log(url, r); 1007 if (r && r.code == 0) { 1008 self.attestServerUrl = r.data.attestServerUrl; 1009 self.gid = r.data.gid; 1010 1011 if (type == "apppush") { 1012 1013 } else if (type == "securephone") { 1014 self.securePhone = r.data.securePhone; 1015 } else if (type == "secureemail") { 1016 self.secureEmail = r.data.secureEmail; 1017 } else if (type == "qrcode") { 1018 self.qrCode = r.data.qrCode; 1019 self.qrCodeInit(); 1020 } else if (type == "faceverify") {
1021 self.faceVerifyInit(); 1022 } 1023 } else { 1024 self.attestServerUrl = null; 1025 self.gid = null; 1026 1027 self.securePhone = null; 1028 self.secureEmail = null; 1029 1030 self.qrCode = null; 1031 } 1032 }, 1033 error: function error(err) { 1034 self.attestServerUrl = null; 1035 self.gid = null; 1036 1037 self.securePhone = null; 1038 self.secureEmail = null; 1039 1040 self.qrCode = null 1041 } 1042 }); 1043 }, 1044 1045 appPushSend: function appPushSend() { 1046 var self = this; 1047 1048 function appPushSendCountDown() { 1049 self.appPushSendSeconds --; 1050 1051 self.appPushSendDisabled = true; 1052 self.appPushSendText = "ç¹å»åééªè¯è¯·æ±" + "("+self.appPushSendSeconds+")"; 1053 1054 self.appPushSendTimeout = window.setTimeout(appPushSendCountDown, 1000); 1055 1056 if (self.appPushSendSeconds <= 0) { 1057 window.clearTimeout(self.appPushSendTimeout); 1058 1059 self.appPushSendDisabled = false; 1060 self.appPushSendText = "ç¹å»åééªè¯è¯·æ±"; 1061 self.appPushSendSeconds = 30; 1062 } 1063 } 1064 1065 self.appPushSendDisabled = true; 1066 1067 var url = self.attestServerUrl + '/api/guard/apppush/send'; 1068 var postdata = { "gid": self.gid }; 1069 1070 $.ajax({ 1071 type: "POST", 1072 url: url, 1073 contentType: 'application/json; charset=UTF-8', 1074 data: JSON.stringify(postdata), 1075 dataType: "json", 1076 success: function success(r) { 1077 console.log(url, r); 1078 1079 self.appPushSendDisabled = false; 1080 1081 if (r && r.code == 0 && r.data.callbackCode) { 1082 self.appPushStatusShowAlert = false; 1083 self.appPushStatusAlertMessage = ""; 1084 1085 self.appPushCallbackCode = r.data.callbackCode; 1086 1087 self.startAppPushStatus(); 1088 1089 appPushSendCountDown(); 1090 } else { 1091 1092 self.startAppPushStatus(); 1093 } 1094 }, 1095 error: function error(err) { 1096 console.log(err); 1097 1098 self.appPushSendDisabled = false; 1099 } 1100 }); 1101 }, 1102 startAppPushStatus: function startAppPushStatus() { 1103 var self = this; 1104 1105 window.clearTimeout(self.appPushStatusTimeout); // 宿¶ 1106 1107 /* 1108 * status 1109 * 0 init æ°å»ºãåå§å, 1110 * 1 sent å·²åéãå·²æ«ç ç, 1111 * 2 valid éªè¯éè¿, 1112 * 3 fail éªè¯å¤±è´¥, 1113 * 5 cancel åæ¶, 1114 * 9 expired å·²è¿æãä¸åå¨ 1115 */ 1116 function appPushStatus() { 1117 var url = self.attestServerUrl + '/api/guard/apppush/status'; 1118 var postdata = { "gid": self.gid }; 1119 1120 $.ajax({ 1121 type: "POST", 1122 url: url, 1123 contentType: 'application/json; charset=UTF-8', 1124 data: JSON.stringify(postdata), 1125 dataType: "json", 1126 timeout: 1000, 1127 success: function success(r) { 1128 // console.log(url, r); 1129 if (r && r.code == 0) { 1130 var status = r.data.status; 1131 1132 if (status == 0) { 1133 1134 self.appPushStatusShowAlert = false; 1135 self.appPushStatusAlertMessage = ""; 1136 } else if (status == 1) { 1137 1138 self.appPushStatusShowAlert = true; 1139 self.appPushStatusAlertMessage = "çå¾ ç¡®è®¤"; 1140 } else if (status == 2) { 1141 1142 self.appPushStatusShowAlert = true; 1143 self.appPushStatusAlertMessage = "已确认"; 1144 1145 window.clearTimeout(self.appPushStatusTimeout); 1146 window.setTimeout(function () { 1147 submitFm1(); 1148 }, 500); 1149 } else if (status == 3) { 1150 1151 self.appPushStatusShowAlert = true; 1152 self.appPushStatusAlertMessage = "确认失败"; 1153 1154 window.clearTimeout(self.appPushStatusTimeout); 1155 } else if (status == 5) { 1156 1157 self.appPushStatusShowAlert = true; 1158 self.appPushStatusAlertMessage = "已忶"; 1159 1160 window.clearTimeout(self.appPushStatusTimeout); 1161 } else if (status == 9) { 1162 1163 self.appPushStatusShowAlert = true; 1164 self.appPushStatusAlertMessage = "已失æï¼è¯·éæ°åé"; 1165 1166 self.appPushCallbackCode = null; 1167 1168 window.clearTimeout(self.appPushStatusTimeout); 1169 1170 window.setTimeout(function () { 1171 self.initGuard(); 1172 }, 500); 1173 1174 } 1175 1176 } else { 1177 window.clearTimeout(self.appPushStatusTimeout); 1178 } 1179 }, 1180 error: function error(err) { 1181 console.log(err); 1182 window.clearTimeout(self.appPushStatusTimeout); 1183 } 1184 }); 1185 1186 self.appPushStatusTimeout = window.setTimeout(appPushStatus, 2000); 1187 } 1188 1189 self.appPushStatusTimeout = window.setTimeout(appPushStatus, 100); 1190 }, 1191
1192 clearAppPushStatus: function clearAppPushStatus() { 1193 var self = this; 1194 1195 window.clearTimeout(self.appPushSendTimeout); 1196 1197 self.appPushSendDisabled = false; 1198 self.appPushSendText = "ç¹å»åééªè¯è¯·æ±"; 1199 self.appPushSendSeconds = 30; 1200 1201 window.clearTimeout(self.appPushStatusTimeout); 1202 self.appPushStatusShowAlert = false; 1203 self.appPushStatusAlertMessage = ""; 1204 1205 self.appPushCallbackCode = null; 1206 }, 1207 1208 1209 securePhoneSend: function securePhoneSend() { 1210 var self = this; 1211 1212 function securePhoneSendCountDown() { 1213 self.securePhoneSendSeconds --; 1214 1215 self.securePhoneSendDisabled = true; 1216 self.securePhoneSendText = "è·åéªè¯ç " + "("+self.securePhoneSendSeconds+")"; 1217 1218 self.securePhoneSendTimeout = window.setTimeout(securePhoneSendCountDown, 1000); 1219 1220 if (self.securePhoneSendSeconds <= 0) { 1221 window.clearTimeout(self.securePhoneSendTimeout); 1222 1223 self.securePhoneSendDisabled = false; 1224 self.securePhoneSendText = "è·åéªè¯ç "; 1225 self.securePhoneSendSeconds = 60; 1226 } 1227 } 1228 1229 self.securePhoneSendDisabled = true; 1230 1231 var url = self.attestServerUrl + '/api/guard/securephone/send'; 1232 var postdata = { "gid": self.gid }; 1233 1234 $.ajax({ 1235 type: "POST", 1236 url: url, 1237 contentType: 'application/json; charset=UTF-8', 1238 data: JSON.stringify(postdata), 1239 dataType: "json", 1240 success: function success(r) { 1241 console.log(url, r); 1242 1243 self.securePhoneSendDisabled = false; 1244 1245 if (r && r.code == 0) { 1246 self.securePhoneValidShowAlert = true; 1247 self.securePhoneValidAlertMessage = "å·²åé"; 1248 1249 securePhoneSendCountDown(); 1250 } else if (r && r.code != 0 && r.data.result == 'expired') { 1251 self.securePhoneValidShowAlert = true; 1252 self.securePhoneValidAlertMessage = "åé失败ï¼å·²è¿æï¼è¯·éæ°è·åéªè¯ç "; 1253 1254 window.setTimeout(function () { 1255 self.initGuard(); 1256 }, 500); 1257 } else { 1258 self.securePhoneValidShowAlert = true; 1259 self.securePhoneValidAlertMessage = "åé失败"; 1260 } 1261 }, 1262 error: function error(err) { 1263 console.log(err); 1264 1265 self.securePhoneSendDisabled = false; 1266 1267 self.securePhoneValidShowAlert = true; 1268 self.securePhoneValidAlertMessage = "åé失败"; 1269 } 1270 }); 1271 }, 1272 securePhoneValid: function securePhoneValid() { 1273 var self = this; 1274 1275 var url = self.attestServerUrl + '/api/guard/securephone/valid'; 1276 var postdata = { "gid": self.gid, "code": self.securePhoneCode }; 1277 1278 $.ajax({ 1279 type: "POST", 1280 url: url, 1281 contentType: 'application/json; charset=UTF-8', 1282 data: JSON.stringify(postdata), 1283 dataType: "json", 1284 success: function success(r) { 1285 console.log(url, r); 1286 1287 if (r && r.code == 0) { 1288 var status = r.data.status; 1289 1290 if (status == 2) { 1291 // self.clearSecurePhone(); 1292 1293 window.setTimeout(function () { 1294 submitFm1(); 1295 }, 500); 1296 } else { 1297 self.securePhoneValidShowAlert = true; 1298 self.securePhoneValidAlertMessage = "éªè¯å¤±è´¥"; 1299 } 1300 } 1301 1302 }, 1303 error: function error(err) { 1304 console.log(err); 1305 } 1306 }); 1307 }, 1308 1309 clearSecurePhone: function clearSecurePhone() { 1310 var self = this; 1311 1312 window.clearTimeout(self.securePhoneSendTimeout); 1313 1314 self.securePhoneSendDisabled = false; 1315 self.securePhoneSendText = "è·åéªè¯ç "; 1316 self.securePhoneSendSeconds = 60; 1317 1318 self.securePhoneCode = ''; 1319 self.securePhoneValidShowAlert = false; 1320 self.securePhoneValidAlertMessage = ""; 1321 }, 1322 1323 1324 secureEmailSend: function secureEmailSend() { 1325 var self = this; 1326 1327 function secureEmailSendCountDown() { 1328 self.secureEmailSendSeconds --; 1329 1330 self.secureEmailSendDisabled = true; 1331 self.secureEmailSendText = "è·åéªè¯ç " + "("+self.secureEmailSendSeconds+")"; 1332 1333 self.secureEmailSendTimeout = window.setTimeout(secureEmailSendCountDown, 1000); 1334 1335 if (self.secureEmailSendSeconds <= 0) { 1336 window.clearTimeout(self.secureEmailSendTimeout); 1337 1338 self.secureEmailSendDisabled = false;
1339 self.secureEmailSendText = "è·åéªè¯ç "; 1340 self.secureEmailSendSeconds = 60; 1341 } 1342 } 1343 1344 self.secureEmailSendDisabled = true; 1345 1346 var url = self.attestServerUrl + '/api/guard/secureemail/send'; 1347 var postdata = { "gid": self.gid }; 1348 1349 $.ajax({ 1350 type: "POST", 1351 url: url, 1352 contentType: 'application/json; charset=UTF-8', 1353 data: JSON.stringify(postdata), 1354 dataType: "json", 1355 success: function success(r) { 1356 console.log(url, r); 1357 1358 self.secureEmailSendDisabled = false; 1359 1360 if (r && r.code == 0) { 1361 self.secureEmailValidShowAlert = true; 1362 self.secureEmailValidAlertMessage = "å·²åé"; 1363 1364 secureEmailSendCountDown(); 1365 } else if (r && r.code != 0 && r.data.result == 'expired') { 1366 self.securePhoneValidShowAlert = true; 1367 self.securePhoneValidAlertMessage = "åé失败ï¼å·²è¿æï¼è¯·éæ°è·åéªè¯ç "; 1368 1369 window.setTimeout(function () { 1370 self.initGuard(); 1371 }, 500); 1372 } else { 1373 self.secureEmailValidShowAlert = true; 1374 self.secureEmailValidAlertMessage = "åé失败"; 1375 } 1376 }, 1377 error: function error(err) { 1378 console.log(err); 1379 1380 self.secureEmailSendDisabled = false; 1381 1382 self.secureEmailValidShowAlert = true; 1383 self.secureEmailValidAlertMessage = "åé失败"; 1384 } 1385 }); 1386 }, 1387 secureEmailValid: function secureEmailValid() { 1388 var self = this; 1389 1390 var url = self.attestServerUrl + '/api/guard/secureemail/valid'; 1391 var postdata = { "gid": self.gid, "code": self.secureEmailCode }; 1392 1393 $.ajax({ 1394 type: "POST", 1395 url: url, 1396 contentType: 'application/json; charset=UTF-8', 1397 data: JSON.stringify(postdata), 1398 dataType: "json", 1399 success: function success(r) { 1400 console.log(url, r); 1401 1402 if (r && r.code == 0) { 1403 var status = r.data.status; 1404 1405 if (status == 2) { 1406 // self.clearSecureEmail(); 1407 1408 window.setTimeout(function () { 1409 submitFm1(); 1410 }, 500); 1411 } else { 1412 self.secureEmailValidShowAlert = true; 1413 self.secureEmailValidAlertMessage = "éªè¯å¤±è´¥"; 1414 } 1415 } 1416 }, 1417 error: function error(err) { 1418 console.log(err); 1419 } 1420 }); 1421 }, 1422 1423 clearSecureEmail: function clearSecureEmail() { 1424 var self = this; 1425 1426 window.clearTimeout(self.secureEmailSendTimeout); 1427 1428 self.secureEmailSendDisabled = false; 1429 self.secureEmailSendText = "è·åéªè¯ç "; 1430 self.secureEmailSendSeconds = 60; 1431 1432 self.secureEmailCode = ''; 1433 self.secureEmailValidShowAlert = false; 1434 self.secureEmailValidAlertMessage = ""; 1435 }, 1436 1437 qrCodeInit: function qrCodeInit() { 1438 var self = this; 1439 1440 if (self.qrCode == null || self.qrCode.scanTypes == null || self.qrCode.scanTypes.length == 0) { 1441 return; 1442 } 1443 1444 var scanTypeNames = ""; 1445 for (var i=0; i<self.qrCode.scanTypes.length; i++) { 1446 var scanType = self.qrCode.scanTypes[i]; 1447 if (scanType == "superapp") { 1448 scanTypeNames += "ã"+superappName; 1449 } else if (scanType == "qq") { 1450 scanTypeNames += "ãQQ"; 1451 } else if (scanType == "weixinmp") { 1452 scanTypeNames += "ã微信"; 1453 } else if (scanType == "workweixinh5") { 1454 scanTypeNames += "ãä¼ä¸å¾®ä¿¡"; 1455 } else if (scanType == "dingtalkh5") { 1456 scanTypeNames += "ãéé"; 1457 } 1458 } 1459 if (scanTypeNames!="") { 1460 scanTypeNames = scanTypeNames.substring(1); 1461 } 1462 1463 self.qrCodeScanTypeNames = scanTypeNames; 1464 1465 self.qrCodeSend(); 1466 }, 1467 1468 qrCodeSend: function qrCodeSend() { 1469 var self = this; 1470 1471 var url = self.attestServerUrl + '/api/guard/qrcode/send'; 1472 var postdata = { "gid": self.gid }; 1473 1474 $.ajax({ 1475 type: "POST", 1476 url: url, 1477 contentType: 'application/json; charset=UTF-8', 1478 data: JSON.stringify(postdata), 1479 dataType: "json", 1480 success: function success(r) { 1481 console.log(url, r); 1482 1483 if (r && r.code == 0 && r.data.scanQrcode) { 1484 self.qrCodeStatusShowAlert = false;
1485 self.qrCodeStatusAlertMessage = ""; 1486 1487 self.qrCodeScanQrcode = r.data.scanQrcode; 1488 self.qrCodeCallbackCode = r.data.callbackCode; 1489 1490 self.startQrCodeStatus(); 1491 } else { 1492 1493 self.startQrCodeStatus(); 1494 } 1495 }, 1496 error: function error(err) { 1497 console.log(err); 1498 } 1499 }); 1500 }, 1501 1502 qrCodeRefresh: function qrCodeRefresh() { 1503 var self = this; 1504 1505 self.clearQrCode(); 1506 self.initGuard(); 1507 }, 1508 1509 startQrCodeStatus: function startQrCodeStatus() { 1510 var self = this; 1511 1512 window.clearTimeout(self.appPushStatusTimeout); // 宿¶ 1513 1514 /* 1515 * status 1516 * 0 init æ°å»ºãåå§å, 1517 * 1 sent å·²åéãå·²æ«ç ç, 1518 * 2 valid éªè¯éè¿, 1519 * 3 fail éªè¯å¤±è´¥, 1520 * 5 cancel åæ¶, 1521 * 8 scaned å·²æ«ç 1522 * 9 expired å·²è¿æãä¸åå¨ 1523 */ 1524 function qrCodeStatus() { 1525 var url = self.attestServerUrl + '/api/guard/qrcode/status'; 1526 var postdata = { "gid": self.gid }; 1527 1528 $.ajax({ 1529 type: "POST", 1530 url: url, 1531 contentType: 'application/json; charset=UTF-8', 1532 data: JSON.stringify(postdata), 1533 dataType: "json", 1534 timeout: 1000, 1535 success: function success(r) { 1536 // console.log(url, r); 1537 if (r && r.code == 0) { 1538 var status = r.data.status; 1539 1540 if (status == 0) { 1541 1542 self.qrCodeScanSuccess = false; 1543 self.qrCodeStatusShowAlert = false; 1544 self.qrCodeStatusAlertMessage = ""; 1545 } else if (status == 1) { 1546 1547 self.qrCodeScanSuccess = false; 1548 self.qrCodeStatusShowAlert = false; 1549 self.qrCodeStatusAlertMessage = ""; 1550 } else if (status == 2) { 1551 1552 self.qrCodeScanSuccess = true; 1553 self.qrCodeStatusShowAlert = true; 1554 self.qrCodeStatusAlertMessage = "已确认"; 1555 1556 window.clearTimeout(self.qrCodeStatusTimeout); 1557 window.setTimeout(function () { 1558 submitFm1(); 1559 }, 500); 1560 } else if (status == 3) { 1561 1562 self.qrCodeScanSuccess = false; 1563 self.qrCodeStatusShowAlert = true; 1564 self.qrCodeStatusAlertMessage = "确认失败"; 1565 1566 window.clearTimeout(self.qrCodeStatusTimeout); 1567 } else if (status == 5) { 1568 1569 self.qrCodeScanSuccess = false; 1570 self.qrCodeStatusShowAlert = true; 1571 self.qrCodeStatusAlertMessage = "å·²æç»"; 1572 1573 window.clearTimeout(self.qrCodeStatusTimeout); 1574 } else if (status == 8) { 1575 1576 self.qrCodeScanSuccess = true; 1577 self.qrCodeStatusShowAlert = true; 1578 self.qrCodeStatusAlertMessage = "å·²æ«ç ï¼çå¾ ç¡®è®¤"; 1579 } else if (status == 9) { 1580 1581 self.qrCodeScanSuccess = false; 1582 self.qrCodeStatusShowAlert = true; 1583 self.qrCodeStatusAlertMessage = "已失æï¼è¯·éæ°åé"; 1584 1585 self.qrCodeCallbackCode = null; 1586 1587 window.clearTimeout(self.qrCodeStatusTimeout); 1588 1589 /* window.setTimeout(function () { 1590 self.initGuard(); 1591 }, 500); */ 1592 1593 } 1594 1595 } else { 1596 window.clearTimeout(self.qrCodeStatusTimeout); 1597 } 1598 }, 1599 error: function error(err) { 1600 console.log(err); 1601 window.clearTimeout(self.qrCodeStatusTimeout); 1602 } 1603 }); 1604 1605 self.qrCodeStatusTimeout = window.setTimeout(qrCodeStatus, 2000); 1606 } 1607 1608 self.qrCodeStatusTimeout = window.setTimeout(qrCodeStatus, 100); 1609 }, 1610 1611 clearQrCode: function clearQrCode() { 1612 var self = this; 1613 1614 window.clearTimeout(self.qrCodeStatusTimeout); 1615 1616 self.qrCodeScanQrcode = null; 1617 self.qrCodeScanSuccess = false;
1618 self.qrCodeStatusShowAlert = false; 1619 self.qrCodeStatusAlertMessage = ""; 1620 1621 self.qrCodeCallbackCode = null; 1622 }, 1623 1624 1625 faceVerifyInit: function faceVerifyInit() { 1626 var self = this; 1627 1628 self.faceVerifySend(); 1629 }, 1630 1631 faceVerifySend: function faceVerifySend() { 1632 var self = this; 1633 1634 var url = self.attestServerUrl + '/api/guard/faceverify/send'; 1635 var postdata = { "gid": self.gid }; 1636 1637 $.ajax({ 1638 type: "POST", 1639 url: url, 1640 contentType: 'application/json; charset=UTF-8', 1641 data: JSON.stringify(postdata), 1642 dataType: "json", 1643 success: function success(r) { 1644 console.log(url, r); 1645 1646 if (r && r.code == 0 && r.data.scanFaceverify) { 1647 self.faceVerifyStatusShowAlert = false; 1648 self.faceVerifyStatusAlertMessage = ""; 1649 1650 self.faceVerifyScanFaceverify = r.data.scanFaceverify; 1651 self.faceVerifyCallbackCode = r.data.callbackCode; 1652 1653 self.startFaceVerifyStatus(); 1654 } else { 1655 1656 self.startFaceVerifyStatus(); 1657 } 1658 }, 1659 error: function error(err) { 1660 console.log(err); 1661 } 1662 }); 1663 }, 1664 1665 faceVerifyRefresh: function faceVerifyRefresh() { 1666 var self = this; 1667 1668 self.clearFaceVerify(); 1669 self.initGuard(); 1670 }, 1671 1672 startFaceVerifyStatus: function startFaceVerifyStatus() { 1673 var self = this; 1674 1675 window.clearTimeout(self.appPushStatusTimeout); // 宿¶ 1676 1677 /* 1678 * status 1679 * 0 init æ°å»ºãåå§å, 1680 * 1 sent å·²åéãå·²æ«ç ç, 1681 * 2 valid éªè¯éè¿, 1682 * 3 fail éªè¯å¤±è´¥, 1683 * 5 cancel åæ¶, 1684 * 8 scaned å·²æ«ç 1685 * 9 expired å·²è¿æãä¸åå¨ 1686 */ 1687 function faceVerifyStatus() { 1688 var url = self.attestServerUrl + '/api/guard/faceverify/status'; 1689 var postdata = { "gid": self.gid }; 1690 1691 $.ajax({ 1692 type: "POST", 1693 url: url, 1694 contentType: 'application/json; charset=UTF-8', 1695 data: JSON.stringify(postdata), 1696 dataType: "json", 1697 timeout: 1000, 1698 success: function success(r) { 1699 // console.log(url, r); 1700 if (r && r.code == 0) { 1701 var status = r.data.status; 1702 1703 if (status == 0) { 1704 1705 self.faceVerifyScanSuccess = false; 1706 self.faceVerifyStatusShowAlert = false; 1707 self.faceVerifyStatusAlertMessage = ""; 1708 } else if (status == 1) { 1709 1710 self.faceVerifyScanSuccess = false; 1711 self.faceVerifyStatusShowAlert = false; 1712 self.faceVerifyStatusAlertMessage = ""; 1713 } else if (status == 2) { 1714 1715 self.faceVerifyScanSuccess = true; 1716 self.faceVerifyStatusShowAlert = true; 1717 self.faceVerifyStatusAlertMessage = "人è¸è¯å«æå"; 1718 1719 window.clearTimeout(self.faceVerifyStatusTimeout); 1720 window.setTimeout(function () { 1721 submitFm1(); 1722 }, 500); 1723 } else if (status == 3) { 1724 1725 self.faceVerifyScanSuccess = false; 1726 self.faceVerifyStatusShowAlert = true; 1727 self.faceVerifyStatusAlertMessage = "人è¸è¯å«å¤±è´¥"; 1728 1729 window.clearTimeout(self.faceVerifyStatusTimeout); 1730 1731 } else if (status == 11) { 1732 1733 self.faceVerifyScanSuccess = true; 1734 self.faceVerifyStatusShowAlert = true; 1735 self.faceVerifyStatusAlertMessage = "人è¸è¯å«ä¸â¦"; 1736 } else if (status == 9) { 1737 1738 self.faceVerifyScanSuccess = false; 1739 self.faceVerifyStatusShowAlert = true; 1740 self.faceVerifyStatusAlertMessage = "已失æï¼è¯·å·æ°äºç»´ç "; 1741 1742 self.faceVerifyCallbackCode = null; 1743 1744 window.clearTimeout(self.faceVerifyStatusTimeout); 1745 1746 /* window.setTimeout(function () { 1747 self.initGuard(); 1748 }, 500); */ 1749 1750 } 1751 1752 } else { 1753 window.clearTimeout(self.faceVerifyStatusTimeout); 1754 } 1755 }, 1756 error: function error(err) { 1757 console.log(err); 1758 window.clearTimeout(self.faceVerifyStatusTimeout); 1759 } 1760 }); 1761 1762 self.faceVerifyStatusTimeout = window.setTimeout(faceVerifyStatus, 2000); 1763 } 1764 1765 self.faceVerifyStatusTimeout = window.setTimeout(faceVerifyStatus, 100); 1766 }, 1767 1768 clearFaceVerify: function clearFaceVerify() { 1769 var self = this; 1770 1771 window.clearTimeout(self.faceVerifyStatusTimeout); 1772 1773 self.faceVerifyScanQrcode = null; 1774 self.faceVerifyScanSuccess = false;
1775 self.faceVerifyStatusShowAlert = false; 1776 self.faceVerifyStatusAlertMessage = ""; 1777 1778 self.faceVerifyCallbackCode = null; 1779 }, 1780 1781 1782 1783 } 1784}); 1785</script>
1785 1786
1787<script type="text/javascript"> 1788 1789function submitFm1() { 1790 // $("#fm1").submit(); 1791 $("#fm1").find(":submit").click(); 1792} 1793function submitFm2() { 1794 // $("#fm2").submit(); 1795 $("#fm2").find(":submit").click(); 1796} 1797 1798</script>
1798 1799
1800<script type="text/javascript"> 1801function mfaDetect() { 1802 var username = $("#fm1Input").find("#username").val(); 1803 var password = $("#fm1Input").find("#password").val(); 1804 1805 if (encryptEnabled && password.indexOf('__RSA__') < 0) { 1806 var encodedPassword = "__RSA__"+encrypt.encrypt(password); 1807 password = encodedPassword; 1808 } 1809 1810 var url = "\/cas\/mfa\/detect"; 1811// url += "?username=" + username; 1812 $.ajax({ 1813 url: url, 1814 type: "POST", 1815 dataType: "json", 1816 data: "username=" + encodeURIComponent(username)+"&password=" + encodeURIComponent(password), 1817 success: function success(r) { 1818 console.log(url, r); 1819 if (r && r.code == 0) { 1820 var state = r.data.state; 1821 $("#fm1").find('[name="mfaState"]').val(state); 1822 1823 var need = r.data.need; 1824 if (need == true) { 1825 $("#showGuardDialog").click(); 1826 } else { 1827 submitFm1(); 1828 } 1829 } else { 1830 console.log(r); 1831 // submitFm1(); 1832 } 1833 }, 1834 error: function error(err) { 1835 console.log(err); 1836 // submitFm1(); 1837 } 1838 }); 1839 1840} 1841</script>
1841 1842 1843
1843<script type="text/javascript"> 1844 var mobilePattern = new RegExp("^1[0-9]{10}$", 'i'); 1845 1846 var i_login = "One moment please..."; 1847 $( document ).ready(function() { 1848 console.log("fm1Input button", $("#fm1Input").find('[name="button"]')); 1849 $("#fm1Input").find('[name="button"]').click(function(){ 1850 console.log("submit button click"); 1851 var username = $("#fm1Input").find("#username").val(); 1852 var password = $("#fm1Input").find("#password").val(); 1853 if (username == null || username == '') { 1854 $("#showErrorMessageUsername").click(); 1855 return false; 1856 } 1857 1858 if (password == null || password == '') { 1859 $("#showErrorMessagePassword").click(); 1860 return false; 1861 } 1862 1863 var captcha = $("#fm1Input").find("#captcha").val(); 1864 if (casServerCaptchaEnabled && casServerCaptchaShow ) { 1865 if (captcha == null || captcha == '') { 1866 $("#showErrorMessageCaptcha").click(); 1867 return false; 1868 } 1869 } 1870 1871 window.setTimeout(function () { 1872 if (mfaEnabled) { 1873 mfaDetect(); 1874 return; 1875 } 1876 1877 submitFm1(); 1878 }, 500); 1879 1880 return false; 1881 }); 1882 console.log("fm1", $("#fm1")); 1883 $("#fm1").submit(function () { 1884 var username = $("#fm1Input").find("#username").val(); 1885 var password = $("#fm1Input").find("#password").val(); 1886 if (username == null || username == '') { 1887 $("#showErrorMessageUsername").click(); 1888 return false; 1889 } 1890 1891 if (password == null || password == '') { 1892 $("#showErrorMessagePassword").click(); 1893 return false; 1894 } 1895 1896 var captcha = $("#fm1Input").find("#captcha").val(); 1897 if (casServerCaptchaEnabled && casServerCaptchaShow ) { 1898 if (captcha == null || captcha == '') { 1899 $("#showErrorMessageCaptcha").click(); 1900 return false; 1901 } 1902 } 1903 1904 if (mfaEnabled) { 1905 var mfaState = $("#fm1").find('[name="mfaState"]').val(); 1906 if (mfaState == null || mfaState == '') { 1907 mfaDetect(); 1908 return false; 1909 } 1910 } 1911 1912 $("#fm1").find('[name="username"]').val(username); 1913 $("#fm1").find('[name="password"]').val(password); 1914 1915 if (casServerCaptchaEnabled && (typeof $("#fm1Input").find("#captcha") != 'undefined') ) { 1916 $("#fm1").find('[name="captcha"]').val(captcha); 1917 } 1918 1919 // å端å¯ç å å¯ 1920 if (encryptEnabled && password.indexOf('__RSA__') < 0) { 1921 var encodedPassword = "__RSA__"+encrypt.encrypt(password); 1922 $("#fm1").find('[name="password"]').val(encodedPassword); 1923 } 1924 1925 //$("#fm1").find(":submit").attr("disabled", true); 1926 //$("#fm1").find(":submit").attr("value", i_login); 1927 //console.log(i_login); 1928 1929 doLogin(); 1930 return true; 1931 }); 1932 console.log("fm2Input button", $("#fm2Input").find('[name="button"]')); 1933 $("#fm2Input").find('[name="button"]').click(function(){ 1934 var mobile = $("#fm2Input").find("#mobile").val(); 1935 var dynamiccode = $("#fm2Input").find("#dynamiccode").val(); 1936 if (mobile == null || mobile == '') { 1937 $("#showErrorMessageMobile").click(); 1938 return false;
1939 } 1940 if (!mobilePattern.test(mobile)) { 1941 $("#showErrorMessageMobile").click(); 1942 return false; 1943 } 1944 1945 if (dynamiccode == null || dynamiccode == '') { 1946 $("#showErrorMessageDynamicCode").click(); 1947 return false; 1948 } 1949 1950 window.setTimeout(function () { 1951 submitFm2(); 1952 }, 500); 1953 1954 return false; 1955 }); 1956 console.log("fm2", $("#fm2")); 1957 $("#fm2").submit(function () { 1958 var mobile = $("#fm2Input").find("#mobile").val(); 1959 var dynamiccode = $("#fm2Input").find("#dynamiccode").val(); 1960 if (mobile == null || mobile == '') { 1961 $("#showErrorMessageMobile").click(); 1962 return false; 1963 } 1964 if (!mobilePattern.test(mobile)) { 1965 $("#showErrorMessageMobile").click(); 1966 return false; 1967 } 1968 1969 if (dynamiccode == null || dynamiccode == '') { 1970 $("#showErrorMessageDynamicCode").click(); 1971 return false; 1972 } 1973 1974 $("#fm2").find('[name="username"]').val(mobile); 1975 $("#fm2").find('[name="password"]').val(dynamiccode); 1976 1977 //$("#fm2").find(":submit").attr("disabled", true); 1978 //$("#fm2").find(":submit").attr("value", i_login); 1979 //console.log(i_login); 1980 1981 doLogin(); 1982 return true; 1983 }); 1984 }); 1985 </script>
1985 1986 1987
1987<script type="text/javascript"> 1988 function refreshCaptchaInMenu(currentMenu) { 1989 refreshCaptcha($("#fm"+currentMenu+"Input").find("#captcha_img")); 1990 } 1991 function refreshCaptcha(obj) { // console.log(obj); 1992 var captcha_img = $(obj); 1993 var captcha_container = captcha_img.parents("div.el-form-item"); 1994 captcha_container.find("#captcha_img").attr("src", "\/cas\/captcha.jpg"+"?r=" + (new Date()).getTime() + Math.floor(Math.random()*24)); 1995 captcha_container.find("#captcha").val(""); 1996 captcha_container.find("#captcha").focus(); 1997 } 1998 function togglePassword(obj) { 1999 var $obj = $(obj); 2000 2001 var $password = $(obj).parents('.sw-input').find("#password"); 2002 2003 if ($password.attr('type') == 'password') { 2004 $password.attr('type', 'text'); 2005 $obj.removeClass('su-icon-hide').addClass('su-icon-display'); 2006 } else { 2007 $password.attr('type', 'password'); 2008 $obj.removeClass('su-icon-display').addClass('su-icon-hide'); 2009 } 2010 } 2011 </script>
2011 2012
2012<script type="text/javascript"> 2013 var i_sendToken = "Send" 2014 var i_sending = "Sending..." 2015 var i_send = "Sended" 2016 var disableSendToken = false; 2017 function sendToken(obj) { 2018 if (disableSendToken) { 2019 return; 2020 } 2021 2022 var mobile = $("#fm2Input").find("#mobile").val(); 2023 if (mobile == null || mobile == '') { 2024 $("#showErrorMessageMobile").click(); 2025 return; 2026 } 2027 if (!mobilePattern.test(mobile)) { 2028 $("#showErrorMessageMobile").click(); 2029 return; 2030 } 2031 2032 var sendButton = $(obj); 2033 2034 disableSendToken = true; 2035 sendButton.attr("disabled", true); 2036 sendButton.find('span').text(i_sending); 2037 2038 var time = 60; 2039 var setSended = function() { 2040 sendButton.find('span').text(i_send + '('+time+')'); 2041 2042 time --; 2043 if (time > 0) { 2044 setTimeout(setSended, 1000); 2045 } else { 2046 disableSendToken = false; 2047 sendButton.attr("disabled", false); 2048 sendButton.find('span').text(i_sendToken); 2049 } 2050 2051 } 2052 2053 $.ajax({ 2054 url: "\/cas\/passwordlessTokenSend", 2055 type: "POST", 2056 data: {"username": mobile}, 2057 dataType: "json", 2058 success: function(r) { 2059 console.log(r); 2060 2061 if (r.data.success) { 2062 // æç¤ºä¿¡æ¯ 2063 //alert(r.data.success); 2064 $("#showSuccessMessageSendCode").click(); 2065 // åè®¡æ¶ 60s 2066 time = 60; 2067 setSended(); 2068 } 2069 2070 if (r.data.error) { 2071 //alert(r.data.error); 2072 $("#showFailureMessageSendCode").click(); 2073 time = 0; 2074 setSended(); 2075 } 2076 } 2077 }); 2078 2079 } 2080 </script>
2080 2081 2082
2082<script type="text/javascript"> 2083 function forgotYourPassword() { 2084 window.location.href="\/cas\/personal\/forgotYourPassword"; 2085 } 2086 </script>
2086 2087 2088
2088<script type="text/javascript"> 2089 function activeYourAccount() { 2090 window.location.href="\/cas\/personal\/activeYourAccount"; 2091 } 2092 </script>
2092 2093 2094
2094<script type="text/javascript"> 2095 function processLoginError(containerFormInput, containerForm, originalUsername, hasErrors, errors) { 2096 console.log(containerForm); 2097 console.log(originalUsername); 2098 console.log(hasErrors); 2099 console.log(errors); 2100 2101 doLoginFailN(containerFormInput, containerForm, originalUsername, hasErrors, errors); 2102 } 2103 2104 var casServerCaptchaEnabled = true; 2105 var casServerCaptchaSkipN = true; 2106 var captchaSkipN = "-1"; 2107 2108 var casServerCaptchaShow = false; 2109 2110 function doLogin() { 2111 var loginN = (localStorage.loginN || "0"); 2112 if (loginN == null) { 2113 loginN = "0"; 2114 } 2115 2116 loginN = parseInt(loginN) +1; 2117 localStorage.loginN = loginN; 2118 2119 var nowTimestamp = new Date().getTime(); 2120 localStorage.loginNTimestamp = nowTimestamp; 2121 } 2122 2123 function doLoginFailN(containerFormInput, containerForm, originalUsername, hasErrors, errors) { 2124 2125 var failN = (localStorage.failN || "0"); 2126 if (failN == null) { 2127 failN = "0"; 2128 } 2129 2130 if (hasErrors) { 2131 failN = parseInt(failN) +1; 2132 localStorage.failN = failN; 2133 2134 var nowTimestamp = new Date().getTime(); 2135 localStorage.failNTimestamp = nowTimestamp; 2136 } 2137 2138 doCaptchaShow(containerFormInput, containerForm, failN); 2139 } 2140 2141 function doCaptchaShow(containerFormInput, containerForm, failN) { 2142 console.log('show captcha, failN='+failN+", captchaSkipN="+captchaSkipN); 2143 2144 var fialNInput = containerForm.find('[name="failN"]'); 2145 fialNInput.val(failN); 2146 2147 var captchaInput = containerFormInput.find('[name="captcha"]'); // console.log(captchaInput.parents("div.el-form-item")); 2148 if (captchaInput.length <= 0) { 2149 return; 2150 } 2151 2152 captchaInput.parents("div.captcha-input-container").hide(); 2153 casServerCaptchaShow = false; 2154 2155 if (failN < 0) { 2156 captchaInput.parents("div.captcha-input-container").show(); 2157 casServerCaptchaShow = true; 2158 } else if (failN >= captchaSkipN) { 2159 captchaInput.parents("div.captcha-input-container").show(); 2160 casServerCaptchaShow = true; 2161 } 2162 } 2163 2164 function initCaptchaShow(containerFormInput, containerForm) { 2165 if (casServerCaptchaEnabled) { 2166 if (casServerCaptchaSkipN) { 2167 var loginN = (localStorage.loginN || "0"); 2168 if (loginN == null) { 2169 loginN = "0"; 2170 } 2171 loginN = parseInt(loginN); 2172 2173 var failN = (localStorage.failN || "0"); 2174 if (failN == null) { 2175 failN = "0"; 2176 } 2177 failN = parseInt(failN); 2178 2179 var failNTimestamp = (localStorage.failNTimestamp || "0"); 2180 if (failNTimestamp == null) { 2181 failNTimestamp = "0"; 2182 } 2183 2184 var nowTimestamp = new Date().getTime(); 2185 console.log('init captcha, failNTimestamp='+failNTimestamp+", nowTimestamp="+nowTimestamp); 2186 if (failNTimestamp < (nowTimestamp - (1000 * 60 * 60 * 1))) { // FIXME: 妿 1å°æ¶åï¼åç»å½ï¼åæ¸ ç©º failN 2187 loginN = 0; 2188 localStorage.loginN = loginN; 2189 failN = 0; 2190 localStorage.failN = failN; 2191 } 2192 2193 if (failN < loginN) { 2194 loginN = 0; 2195 localStorage.loginN = loginN; 2196 failN = 0; 2197 localStorage.failN = failN; 2198 } 2199 2200 doCaptchaShow(containerFormInput, containerForm, failN); // æ¾ç¤º 2201 } else { 2202 doCaptchaShow(containerFormInput, containerForm, -1); // å§ç»æ¾ç¤º 2203 } 2204 } 2205 } 2206 $( document ).ready(function() { 2207 console.log("trigger initCaptchaShow"); 2208 initCaptchaShow($("#fm1Input"), $("#fm1")); 2209 }); 2210 </script>
2210 2211 2212 2213
2213<script type="text/javascript"> 2214 $( document ).ready(function() { 2215 var location = self.document.location; 2216 var hash = decodeURIComponent(location.hash); 2217 2218 if (hash != undefined && hash != '' && hash.indexOf('#') === -1) { 2219 hash = '#' + hash; 2220 } 2221 2222 var action = location.href; 2223 2224 /* var action = $('#fm1').attr('action'); 2225 if (action == undefined) { 2226 action = location.href; 2227 } else { 2228 var qidx = location.href.indexOf('?'); 2229 if (qidx != -1) { 2230 var queryParams = location.href.substring(qidx); 2231 action += queryParams; 2232 } 2233 } */ 2234 action += hash; 2235 2236 $('#fm1').attr('action', action); 2237 $('#fm2').attr('action', action); 2238 $('#fm3').attr('action', action); 2239 2240 }); 2241 </script>
2241 2242 2243
2243<script type="text/javascript"> 2244 function submitByEnter(event, fmId) { 2245 if(event.which === 13 || event.keyCode === 13) { 2246 $(fmId).find('[name="button"]').click(); 2247 } 2248 } 2249 $( document ).ready(function() { 2250 $("#fm1Input").find("#username").keyup(function(event){ 2251 submitByEnter(event, "#fm1Input"); 2252 }); 2253 $("#fm1Input").find("#password").keyup(function(event){ 2254 submitByEnter(event, "#fm1Input"); 2255 }); 2256 $("#fm1Input").find("#captcha").keyup(function(event){ 2257 submitByEnter(event, "#fm1Input"); 2258 }); 2259 $("#fm2Input").find("#mobile").keyup(function(event){ 2260 submitByEnter(event, "#fm2Input"); 2261 }); 2262 $("#fm2Input").find("#dynamiccode").keyup(function(event){ 2263 submitByEnter(event, "#fm2Input"); 2264 }); 2265 }); 2266 </script>
2266 2267 2268
2268<script type="text/javascript"> 2269 $( document ).ready(function() { 2270 $(".el-carousel__container").css({"max-height":"1080px", "min-height":"660px"}); 2271 $("#vue_main").show(); 2272 }); 2273 </script>
2273 2274 2275 </div> 2276</main> 2277 2278 2279 2280 2281
2282<script src="/cas/deps/js/fingerprintjs/v3/iife.min.js"></script>
vendor: 1 bytes, line 2282
2282
2283<script> 2284$( document ).ready(function() { 2285 var fpPromise = FingerprintJS.load(); 2286 fpPromise 2287 .then(function (fp) { return fp.get() }) 2288 .then(function (result) { 2289 // Handle the result 2290 //console.log(result) 2291 $('[name="fpVisitorId"]').val(result.visitorId); 2292 }); 2293}); 2294</script>
2294 2295 2296</body> 2297</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.