PageSourceSearch

https://www.ksuclubfigureskating.com/content/common/base/js/power.…4cKIGgf1ZdZ_v54i35kdzainAojJm1rP2p_XhlKU.js

js ksuclubfigureskating.com collected 2026-10-08 11:58:46 UTC 25,812 bytes, 633 lines download raw bytes

1$(function () {
2    //选择登录方式
3    var defaultUserLoginType = $("#defaultUserLoginType");
4    if (defaultUserLoginType.val() == "Phone") {
5        showPhoneRegistered();
6    }
7    else if (defaultUserLoginType.val() == "Weixin") {
8        showWeixinRegistered();
9    }
10    else if (defaultUserLoginType.val() == "WorkWxLogin") {
11        showWorkWeixinRegistered();
12    }
13    else if (defaultUserLoginType.val() == "DingTalkLogin") {
14        showDingTalkRegistered();
15    }
16    else {
17        showPwdRegistered();
18    }
19
20    $("#login-select").on("click",
21        "li",
22        function () {
23            var registered = $(this)[0].id;
24            switch (registered) {
25                case "phone_registered":
26                    showPhoneRegistered();
27                    break;
28                case "pwd_registered":
29                    showPwdRegistered();
30                    break;
31                case "phonepwd_registered":
32                    showPhonepwdRegistered();
33                    break;
34                case "weixin_registered":
35                    showWeixinRegistered();
36                    break;
37                case "idcard_registered":
38                    showIdCardRegistered();
39                    break;
40                case "workweixin-registered":
41                    showWorkWeixinRegistered();
42                    break;
43                case "dingtalk-registered":
44                    showDingTalkRegistered();
45                    break;
46            }
47        });
48
49    function removeError() {
50        for (var i = 0; i < $(".field-validation-error").length; i++) {
51            $(".field-validation-error").eq(i).children().remove();
52        }
53    }
54
55    function showValidcodedl() {
56        if ($(".enabledvalidcode input[name=ValidateCode]").attr("disabled") != "disabled") {
57            $(".enabledvalidcode").css("display", "block");
58        } else {
59            $(".enabledvalidcode").css("display", "none");
60        }
61    }
62
63    function showPhoneRegistered() {
64        $('.container .form-horizontal').attr('action', $("input[name=userloginurl]").data().phonelogin);
65        $(".hiddenfield").hide().attr("disabled", "disabled");
66        $(".phone-field").show().removeAttr("disabled");
67        $(".phone-field input[name=PhoneMessageValidateCode]").removeAttr("disabled");
68        $(".loginBtn").show();
69        $(".weixinlogin").hide();
70        $(".workweixinlogin").hide();
71        $(".dingtalklogin").hide();
72        $(".errormessage").text("");
73        $("input[name=LoginWayType]").val("PhoneLogin");
74        $("#login-btn button[type=submit]").show();
75        $(".login-select li").hide();
76        $(".login-select li.password-registered").show();
77        $(".login-select li.weixin-registered").show();
78        $(".login-select li.workweixin-registered").show();
79        $(".login-select li.dingtalk-registered").show();
80        removeError();
81        showValidcodedl();
82    }
83
84    function showPwdRegistered() {
85        $('.container .form-horizontal').attr('action', $("input[name=userloginurl]").data().login);
86        $(".hiddenfield").hide().attr("disabled", "disabled");
87        $(".password-field").show().removeAttr("disabled");
88        $(".phone-field input[name=PhoneMessageValidateCode]").attr("disabled", "disabled");
89        $(".loginBtn").show();
90        $(".weixinlogin").hide();
91        $(".workweixinlogin").hide();
92        $(".dingtalklogin").hide();
93        $(".errormessage").text("");
94        $("input[name=LoginWayType]").val("PasswordLogin");
95        $("#login-btn button[type=submit]").show();
96        $(".login-select li").hide();
97        $(".login-select li.phone-registered").show();
98        $(".login-select li.weixin-registered").show();
99        $(".login-select li.workweixin-registered").show();
100        $(".login-select li.dingtalk-registered").show();
101        removeError();
102        showValidcodedl();
103    }
104
105    function showPhonepwdRegistered() {
106        $('.container .form-horizontal').attr('action', $("input[name=userloginurl]").data().login);
107        $(".hiddenfield").hide().attr("disabled", "disabled");
108        $(".phonepassword-field").show().removeAttr("disabled");
109        $(".phone-field input[name=PhoneMessageValidateCode]").attr("disabled", "disabled");
110        $(".loginBtn").show();
111        $(".weixinlogin").hide();
112        $(".workweixinlogin").hide();
113        $(".dingtalklogin").hide();
114        $(".errormessage").text("");
115        $("input[name=LoginWayType]").val("PhonePasswordLogin");
116        $("#login-btn button[type=submit]").show();
117        removeError();
118        showValidcodedl();
119    }
120    function showIdCardRegistered() {
121        $('.container .form-horizontal').attr('action', $("input[name=userloginurl]").data().login);
122        $(".hiddenfield").hide().attr("disabled", "disabled");
123        $(".idcardpassword-field").show().removeAttr("disabled");
124        $(".phone-field input[name=PhoneMessageValidateCode]").attr("disabled", "disabled");
125        $(".loginBtn").show();
126        $(".weixinlogin").hide();
127        $(".workweixinlogin").hide();
128        $(".dingtalklogin").hide();
129        $(".errormessage").text("");
130        $("input[name=LoginWayType]").val("IdCardLogin");
131        $("#login-btn button[type=submit]").show();
132        removeError();
133        showValidcodedl();
134    }
135
136    function showWeixinRegistered() {
137        $.ajax({
138            url: '/Ajax/AjaxPartial',
139            type: 'post',
140            data: { partialViewName: "微信二维码", parameters: "{siteId:" + $("#logincurrentsiteId").val() + "}" },
141            success: function (response) {
142                $(".weixinlogin").html(response.html);
143                // 如果是服务号,根据授权登录url生成二维码
144                if ($("#weixinapptype").val() === '1') {
145                    $("#login_container").html('<div style="width: 300px;height: 400px; margin:0 auto;"><div style="text-align: center;font-size: 20px;">微信登录</div><div class="wrp_code" style="width: 280px;margin: 15px 0 0 10px;"></div><div style="text-align: center;font-size: 13px;margin-top: 7px;"><p>使用微信扫一扫登录</p></div></div>');
146                    new QRCode($("#login_container .wrp_code").get(0),
147                        {
148                            text: $('#weixinloginurl').val(),
149                            width: 280,
150                            height: 280
151                        });
152                }
153                // 如果是网站应用,使用js微信登录内嵌二维码
154                else {
155                    var obj = new WxLogin({
156                        self_redirect: false,
157                        id: "login_container",
158                        appid: $("#weixinappid").val(),
159                        scope: "snsapi_login",
160                        redirect_uri: $("#weixinredirecturi").val(),
161                        state: $("#weixinstate").val(),
162                        style: "black",
163                        href: ""
164                    });
165                }
166            },
167            error: function (response) { alert("请求微信二维码失败!"); }
168        });
169
170        $(".hiddenfield").hide();
171        $(".workweixinlogin").hide();
172        $(".dingtalklogin").hide();
173        $(".weixinlogin").show();
174        $(".loginBtn").hide();
175        $(".errormessage").text("");
176        $("#login-btn button[type=submit]").hide();
177        $(".login-select li").hide();
178        $(".login-select li.phone-registered").show();
179        $(".login-select li.password-registered").show();
180        $(".login-select li.workweixin-registered").show();
181        $(".login-select li.weixin-registered").hide();
182        $(".login-select li.dingtalk-registered").show();
183    }
184    function showWorkWeixinRegistered() {
185        $.ajax({
186            url: '/Ajax/AjaxPartial',
187            type: 'post',
188            data: { partialViewName: "企业微信二维码", parameters: "{siteId:" + $("#logincurrentsiteId").val() + "}" },
189            success: function (response) {
190                $(".workweixinlogin").html(response.html);
191                var appid = $("#workweixinappid").val(),
192                    agentid = $("#workweixinagentid").val(),
193                    encodeUrl = urlEncode($("#workweixinredirecturi").val()),
194                    state =  $("#workweixinstate").val();
195                window.WwLogin({
196                    id: 'workweixin_container',
197                    appid: appid,
198                    agentid: agentid,
199                    redirect_uri: encodeUrl,
200                    state: state,
201                    href: ""
202                });
203            },
204            error: function (response) { alert("请求企业微信二维码失败!"); }
205        });
206
207        $(".hiddenfield").hide();
208        $(".weixinlogin").hide();
209        $(".workweixinlogin").show();
210        $(".dingtalklogin").hide();
211        $(".loginBtn").hide();
212        $(".errormessage").text("");
213        $("#login-btn button[type=submit]").hide();
214        $(".login-select li").hide();
215        $(".login-select li.phone-registered").show();
216        $(".login-select li.password-registered").show();
217        $(".login-select li.weixin-registered").show();
218        $(".login-select li.workweixin-registered").hide();
219        $(".login-select li.dingtalk-registered").show();
220    }
221
222    function showDingTalkRegistered() {
223        $.ajax({
224            url: '/Ajax/AjaxPartial',
225            type: 'post',
226            data: { partialViewName: "钉钉二维码", parameters: "{siteId:" + $("#logincurrentsiteId").val() + "}" },
227            success: function (response) {
228                $(".dingtalklogin").html(response.html);
229                var clientid = $("#dingtalkclientid").val(),
230                    encodeUrl = urlEncode($("#dingtalkredirecturi").val()),
231                    state = $("#dingtalkstate").val();
232                window.DTFrameLogin(
233                    {
234                        id: 'dingtalk_container',
235                        width: 388,
236                        height: 250,
237                    },
238                    {
239                        redirect_uri: encodeUrl,
240                        client_id: clientid,
241                        scope: 'openid',
242                        response_type: 'code',
243                        state: state,
244                        prompt: 'consent',
245                    },
246                    (loginResult) => {
247                        const { redirectUrl, authCode, state } = loginResult;
248                        // 这里可以直接进行重定向,也可以在不跳转页面的情况下,使用code进行授权
249                        window.top.location.href = redirectUrl;
250                    },
251                    (errorMsg) => {
252                        // 这里一般需要展示登录失败的具体原因,可以使用toast等轻提示
253                        console.error(`errorMsg of errorCbk: ${errorMsg}`);
254                    },
255                )
256            },
257            error: function (response) { alert("请求企业微信二维码失败!"); }
258        });
259
260        $(".hiddenfield").hide();
261        $(".weixinlogin").hide();
262        $(".workweixinlogin").hide();
263        $(".dingtalklogin").show();
264        $(".loginBtn").hide();
265        $(".errormessage").text("");
266        $("#login-btn button[type=submit]").hide();
267        $(".login-select li").hide();
268        $(".login-select li.phone-registered").show();
269        $(".login-select li.password-registered").show();
270        $(".login-select li.weixin-registered").show();
271        $(".login-select li.workweixin-registered").show();
272        $(".login-select li.dingtalk-registered").hide();
273    }
274
275    function urlEncode(str) {
276        str = (str + '').toString();
277
278        return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28')
279            .replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
280    }
281    var mainsetInterval;
282    function refreshloginstate() {
283        if ($('.userlogininfo').length > 0) {
284            var siteurl = $("#currentsiteinfo").data("siteajaxrequestprefix");
285            $.ajax({
286                url: siteurl + 'Ajax/AjaxPartial',
287                type: 'post',
288                data: {
289                    partialViewName: "用户登录页-用户信息",
290                    parameters: "{}",
291                },
292                success: function (response) {
293                    $(".userlogininfo").html(response.html);
294                    showValidateCode(false, false);
295                    if ($('.notlogged').length > 0) {
296                        clearInterval(mainsetInterval);
297
298                        $('.userOtherInfo').hide();
299                    }
300                    else {
301                        mainsetInterval = setInterval(function () {
302                            ShowSigninArticleNum();
303                            HasUnreadMessage();
304                        },
305                            60000);
306
307                        $('.userOtherInfo').show();
308                    }
309                }
310            });
311        }
312    }
313
314    function postRefreshLoginStateMessage() {
315        var data = {
316            event: 'power.usermanage.refreshloginstate'
317        };
318
319        window.postMessage(JSON.stringify(data));
320    }
321
322    function validcodeSucessed(e) {
323        var validcode = $(e).parent().prev().find(".enabledvalidcode");
324        if (validcode) {
325            var val = validcode.css('display');
326            if (val == 'block') {
327                var tVal = $(e).parent().prev().find("#js-ticket-login").first().val();
328                if (!tVal) {
329                    return false;
330                }
331            }
332        }
333
334        return true;
335    };
336
337    var userlogin = $(".userlogincomment");
338    if (userlogin.length > 0) {
339        refreshloginstate();
340    }
341
342    $("#UserName,#Password").on('click',
343        function (event) {
344            if ($(".errormessage").text().indexOf("密码不正确") != -1) {
345                $(".errormessage").text("");
346            }
347        });
348    //关闭登录窗口
349    $(".closecomment").on("click",
350        function () {
351            $("[data-userlogin=userLoginDialog]").css("display", "none");
352            $("[data-userlogindialog=userLoginDialog]").css("display", "none");
353        });
354
355    //登录
356    $("[data-userlogindialog=userLoginDialog] .login").click(function () {
357        var userInfo = {};
358        var getSessionUrl = $(".getSession").val();
359        // 获取编码后的用户名密码和验证码。
360        $.ajaxPreventCSRF({
361            type: 'post',
362            url: getSessionUrl,
363            async: false,
364            success: function (data) {
365                userInfo.username = data.username;
366                userInfo.password = data.password;
367                //userInfo.validatecode = data.validatecode;
368                userInfo.phonemessagevalidatecode = data.phonemessagevalidatecode;
369                userInfo.phonenumber = data.phonenumber;
370                userInfo.ticket = data.captchaticket;
371                userInfo.ticketid = data.captchaticketid;
372                userInfo.identitynumber = data.identitynumber;
373                $.refreshCsrf();
374            }
375        });
376
377        //var code = $(".userloginmodal input[name='ValidateCode']");
378        //if ($(".enabledvalidcode").css("display") == "none") {
379        //    code.attr("disabled", "disabled");
380        //} else {
381        //    code.removeAttr("disabled");
382        //}
383        $(".errormessage").text("");
384        if (!$("#validateForm").valid()) {
385            if (!validcodeSucessed(this)) {
386                // $(".errormessage").text("请点击验证!");
387            }
388        }
389        else {
390            if (!validcodeSucessed(this)) {
391                // $(".errormessage").text("请点击验证!");
392            }
393        }
394
395        $(".loginBtn").text("登录中…").attr("disabled", "disabled").addClass("disabled");
396        var validateCode = $(this).parent().prev().find("input[name=ValidateCode]").first().val();
397        var userName = $(this).parent().prev().find("input[name=UserName]").first().val();
398        var password = $(this).parent().prev().find("input[name=Password]").first().val();
399        var cookieValidity = $(this).parent().nextAll('.loginCookie').find('select[name="cookie-validity"]').first().val();
400        var phonemessagevalidatecode =
401            $(this).parent().prev().find("input[name=PhoneMessageValidateCode]").first().val();
402        var phonenumber = $(this).parent().prev().find("input[name=PhoneNumber]").first().val();
403        var identitynumber = $(this).parent().prev().find("input[name=IdentityNumber]").first().val();
404        var loginWayType = $(this).parent().prev().find("input[name=LoginWayType]").first().val();
405        var loginUrl = $("#loginUrl").val();
406        if (loginWayType == "PhoneLogin") {
407            loginUrl = $("#loginPhoneUrl").val();
408        }
409
410        var ticket = $(this).parent().prev().find("#js-ticket-login").first().val();
411        var ticketId = $(this).parent().prev().find("#js-ticketId-login").first().val();
412        if ($(".enabledvalidcode").css("display") == "block") {
413            if (!ticket || !ticketId) {
414                $('#captchaticketvalid-login')[0].className = "field-validation-error";
415                $(".loginBtn").text("登录").removeAttr("disabled").removeClass("disabled");
416                
417                if ((userName && password) || (loginWayType == "PhoneLogin")) {
418                    SimCaptcha.SetSuccessCallBack('js-btn-verify-login', function () {
419                        $('.loginBtn').click();
420                    });
421                    $('#js-btn-verify-login').attr('captcha-after', 'js-btn-verify-login')
422                    $('#js-btn-verify-login').click();
423                }
424                return false;
425            }
426            else {
427                $('#captchaticketvalid-login')[0].className = "field-validation-valid";
428            }
429        }
430
431        if (!GetRsaEncrypt()) {
432            alert("提交信息不完整,请刷新页面后重新提交。");
433            return false;
434        }
435        userName = rsaEncrypt(userName);
436        password = rsaEncrypt(password);
437        phonemessagevalidatecode = rsaEncrypt(phonemessagevalidatecode);
438        identitynumber = rsaEncrypt(identitynumber);
439        validateCode = rsaEncrypt(validateCode);
440        phonenumber = rsaEncrypt(phonenumber);
441        var data = {};
442        data[userInfo.username] = userName;
443        data[userInfo.password] = password;
444        data[userInfo.validatecode] = validateCode;
445        data[userInfo.phonenumber] = phonenumber;
446        data[userInfo.identitynumber] = identitynumber;
447        data[userInfo.phonemessagevalidatecode] = phonemessagevalidatecode;
448        data["LoginWayType"] = loginWayType;
449        data["CookieValidity"] = cookieValidity;
450        data[userInfo.ticket] = rsaEncrypt(ticket);
451        data[userInfo.ticketid] = rsaEncrypt(ticketId);
452        var siteUrl = $("input[name=siteUrl]").val();
453        $.ajaxPreventCSRF({
454            type: 'post',
455            url: loginUrl,
456            data: data,
457            async: false,
458            success: function (value) {
459                $(".loginBtn").text("登录").removeAttr("disabled").removeClass("disabled");
460                if (value.status === 0) {
461                    $("[data-userlogin=userLoginDialog]").css("display", "none");
462                    $("[data-userlogindialog=userLoginDialog]").css("display", "none");
463                    Cookies.remove("Power::Article::SigninArticleTime");//清除前一个用户的签收数
464                    Cookies.remove("Power:: Article:: SigninArticle");//清除前一个用户的签收数
465                    refreshloginstate();
466                    postRefreshLoginStateMessage();
467                    if (!value.isstrongpassword) {
468                        if (siteUrl && siteUrl.length > 1 && siteUrl[siteUrl.length - 1] != '/') {
469                            siteUrl += '/';
470                        }
471
472                        window.location.href = siteUrl + "user";
473                        return false;
474                    }
475                }
476
477                if (loginWayType == "PhoneLogin") {
478                    $("#PhoneMessageValidateCode-error").remove();
479                    window.clearInterval(window.timerObj); // 停止计时器
480                    $("#PhoneMessageValidateCode_btn").removeAttr('disabled').val('获取验证码'); // 启用按钮
481                }
482
483                if (value.status != 0) {
484                    if (value.status == -10) {
485                        SimCaptcha.SetSuccessCallBack('js-btn-verify-login', function () {
486                            $('.loginBtn').click();
487                        });
488                        $('#js-btn-verify-login').attr('captcha-after', 'js-btn-verify-login')
489                        $('#js-btn-verify-login').click();
490                    } else {
491                        $(".errormessage").text(value.message);
492                    }
493                } else {
494                    var refreshPage = $("input[name=RefreshPage]");
495                    if (refreshPage.length > 0) {
496                        location.reload();
497                    }
498                }
499                $.refreshCsrf();
500                showValidateCode(value.valcodevisible, true);
501            }
502        });
503    });
504
505    //退出
506    $(".userlogininfo").on('click', '.exitlogin', function () {
507        var url = $(".logurls").val();
508        $.postPreventCSRF(url,
509            {},
510            function (data) {
511                refreshloginstate();
512                postRefreshLoginStateMessage();
513                $.refreshCsrf();
514            });
515    });
516
517    function showValidateCode(valcodevisible, isRefresh) {
518        if (!valcodevisible) {
519            $(".enabledvalidcode").css("display", "none");
520            $(".enabledvalidcode input[name='ValidateCode']").attr("disabled", "disabled");
521        } else {
522            $(".enabledvalidcode").css("display", "block");
523            $(".enabledvalidcode input[name='ValidateCode']").removeAttr("disabled");
524            if (isRefresh) {
525                refreshValidateCode();
526            }
527        }
528    }
529
530    var mathRandom = "";
531
532    //刷新验证码
533    function refreshValidateCode() {
534        panelCaptchaCallback();
535    }
536
537    function ShowSigninArticleNum() {
538        if (document.hidden || window.hidden) {
539            return;
540        }
541
542        var signUrl = $('#signinArticleNumUrl').length;
543        if (signUrl > 0) {
544            var url = $('#signinArticleNumUrl').val();
545            $.get(url,
546                function (data) {
547                    if (parseInt(data) > 0) {
548                        var enableSignin = $("#enableSignin").val();
549                        if (enableSignin == "True") {
550                            var value = '您有' + data + '篇文章待签收';
551                            $(".signinSum").attr("title", value);
552                            $(".signinSum").addClass("hasMsg");
553                        }
554                    } else {
555                        if (parseInt(data) == -1) {
556                            refreshloginstate();
557                        }
558                        $(".signinSum").attr("title", "我的签收信息");
559                        $(".signinSum").removeClass("hasMsg");
560                    }
561                });
562        }
563    }
564    panelCaptchaCallback();
565});
566
567function HasUnreadMessage() {
568    if (document.hidden || window.hidden) {
569        return;
570    }
571
572    var unReadMessageUrl = $('#getUnReadMessageUrl').length;
573    if (unReadMessageUrl > 0) {
574        var url = $("#getUnReadMessageUrl").val();
575        $.get(url, function (data) {
576            if (data.HasUnreadMessage) {
577                var value = '您有未读消息';
578                $(".myMsg").attr("title", value);
579                $(".myMsg").addClass("hasMsg");
580            } else {
581                $(".myMsg").attr("title", "我的短消息");
582                $(".myMsg").removeClass("hasMsg");
583            }
584        })
585    }
586}
587
588// 密码输完回车直接触发提交事件。
589$('#Password')
590    .bind('input propertychange keyup',
591        function (event) {
592            if (event.keyCode == 13) {
593                $(".loginBtn").click();
594                return;
595            }
596        });
597// 验证码弹出框。
598function panelCaptchaCallback() {
599    if (document.getElementById("js-btn-verify-login") == null) { return; }
600    $("#js-btn-verify-login").val("点击验证");
601    $("#js-ticket-login").val(null);
602    $("#js-ticketId-login").val(null);
603    if ($("#js-btn-verify-login")[0]) {
604        $("#js-btn-verify-login")[0].className = "btn btn-default";
605    }
606
607    // 点击验证
608    window.loginSimCaptcha = new SimCaptcha({
609        element: document.getElementById("js-btn-verify-login"),
610        appId: "00000000",
611        callback: function (res) {
612            // 点触验证码
613            if (res.code === 0) {
614                $("#js-btn-verify-login").val("验证通过");
615                $("#js-btn-verify-login")[0].className = "btn btn-success";
616                $("#js-btn-verify-login").prop("onclick", null);
617                $("#js-ticket-login").val(res.ticket);
618                $("#js-ticketId-login").val(res.ticketId);
619                if ($('#captchaticketvalid-login')[0]) {
620                    $('#captchaticketvalid-login')[0].className = "field-validation-valid";
621                    var childNodes = $('#captchaticketvalid-login')[0].childNodes;
622                    for (var index = 0; index < childNodes.length; index++) {
623                        childNodes[index].remove();
624                    }
625                }
626
627                $(".errormessage").text("")
628            }
629        },
630        baseUrl: "/"
631    });
632}
633

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.