1<!DOCTYPE html><html xmlns:wb="http://open.weibo.com/wb" lang='en' class='m-user m-user-login'> 2 <head profile="http://www.w3.org/2005/10/profile"> 3 <meta charset="utf-8"> 4 <meta name="renderer" content="webkit"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta http-equiv="Cache-Control" content="no-transform"> 7 <meta name="Generator" content="Zsite9.7 www.zsite.net'"> 8 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 9 <link rel="canonical" href="https://www.sanplex.com/user-login"> 10 <title>Login</title> 11 <meta name="keywords" content=""> 12 <meta name="description" content=""> 13 <meta name="p:domain_verify" content="bbde560d5f3d2d85546546e9e9647a9e"/> 14 <meta name="google-site-verification" content="F8rhZdqOzYla0zRzFMZZBaacYIXDaPMYqKaDZN6xUTs" /> 15 <link rel="preconnect" href="https://scripts.clarity.ms"> 16 <link rel="preconnect" href="https://www.googletagmanager.com"> 17 <link rel="preconnect" href="https://www.google-analytics.com"><!-- Google tag (gtag.js) -->
vendor: 62 bytes, lines 17-18
17 18 <script src="https://www.googletagmanager.com/gtag/js?id=
18G-BS3LWK5F4J
vendor: 20 bytes, lines 18-19
18" defer></script> 19
19<script> 20
vendor: 136 bytes, lines 20-24
20window.dataLayer = window.dataLayer || []; 21 function gtag(){dataLayer.push(arguments);} 22 gtag('js', new Date()); 23 24 gtag('config', '
24G-BS3LWK5F4J
vendor: 7 bytes, lines 24-25
24'); 25
26</script>
26 27<link rel="preload" as="font" href="/data/source/sanplex/default/wide/Inter-Variable-Latin.woff2" type="font/woff2" crossorigin> 28<link rel="preload" as="font" href="/data/source/sanplex/default/wide/PlusJakartaSans-Regular.ttf" type="font/ttf" crossorigin> 29<link rel="preload" as="font" href="/data/source/sanplex/default/wide/Poppins-Regular.ttf" type="font/ttf" crossorigin> 30<meta property="og:title" content="Login" /> 31<meta property="og:description" content="" /> 32<meta property="og:type" content="website" /> 33<meta property="og:url" content="https://www.sanplex.com/user-login" />
33<script type="application/ld+json"> 34 35 { 36 "@context": "https://schema.org", 37 "@type": "SoftwareApplication", 38 "name": "Sanplex", 39 "description": "Sanplex is a project and R&D lifecycle management software. Positioned as an alternative to Jira, it offers a higher cost-performance ratio, full lifecycle management capabilities, robust integration abilities (reducing dependence on plugins), supports on-premises deployment, and facilitates quick migration from Jira, making it highly suitable for complex projects and R&D management scenarios.", 40 "url": "https://www.sanplex.com", 41 "logo": "https://www.sanplex.com/logo.svg", 42 "applicationCategory": "BusinessApplication", 43 "applicationSubCategory": "Project Management, Software Development", 44 "operatingSystem": "All modern web browsers (Cloud), Linux, Windows Server, (On-premises)", 45 "softwareVersion": "3.0", 46 "downloadUrl": "https://www.sanplex.com/on-premises.html", 47 "screenshot": "https://www.sanplex.com/screen-1.png", 48 "author": { 49 "@type": "Organization", 50 "name": "EasySoft INC.", 51 "url": "https://www.sanplex.com" 52 }, 53 "aggregateRating": { 54 "@type": "AggregateRating", 55 "ratingValue": "5.0", 56 "ratingCount": 1, 57 "bestRating": "5", 58 "worstRating": "1", 59 "url": "https://www.producthunt.com/products/sanplex" 60 }, 61 "offers": [ 62 { 63 "@type": "Offer", 64 "name": "Free Plan", 65 "description": "Unlimited users and unlimited time", 66 "price": "0", 67 "priceCurrency": "USD", 68 "availability": "https://schema.org/InStock" 69 }, 70 { 71 "@type": "Offer", 72 "name": "Standard Monthly Subscription", 73 "description": "$4.99 per user per month", 74 "price": "4.99", 75 "priceCurrency": "USD", 76 "availability": "https://schema.org/InStock" 77 }, 78 { 79 "@type": "Offer", 80 "name": "Standard Annual Subscription", 81 "description": "$49.90 per user per year", 82 "price": "49.90", 83 "priceCurrency": "USD", 84 "availability": "https://schema.org/InStock" 85 }, 86 { 87 "@type": "Offer", 88 "name": "Standard Lifetime Access", 89 "description": "$199.90 per user, one-time payment", 90 "price": "199.90", 91 "priceCurrency": "USD", 92 "availability": "https://schema.org/InStock" 93 }, 94 { 95 "@type": "Offer", 96 "name": "Premium Monthly Subscription", 97 "description": "$6.99 per user per month", 98 "price": "6.99", 99 "priceCurrency": "USD", 100 "availability": "https://schema.org/InStock" 101 }, 102 { 103 "@type": "Offer", 104 "name": "Premium Annual Subscription", 105 "description": "$69.90 per user per year", 106 "price": "69.90", 107 "priceCurrency": "USD", 108 "availability": "https://schema.org/InStock" 109 }, 110 { 111 "@type": "Offer", 112 "name": "Premium Lifetime Access", 113 "description": "$299.90 per user, one-time payment", 114 "price": "299.90", 115 "priceCurrency": "USD", 116 "availability": "https://schema.org/InStock" 117 } 118 ] 119 } 120 121</script>
121
122<script> 123 var config={"webRoot":"\/","cookieLife":30,"cookiePath":"\/","requestType":"PATH_INFO","requestFix":"-","moduleVar":"m","methodVar":"f","viewVar":"t","defaultView":"html","themeRoot":"\/theme\/","currentModule":"user","currentMethod":"login","clientLang":"en","requiredFields":"","save":"Save","router":"\/index.php","runMode":"front","langCode":""} 124 125</script>
125
126<script> 127 if(typeof(v) != "object") v = {};v.theme = {"template":"default","theme":"wide","device":"desktop"}; 128</script>
128 129<link rel='stylesheet' href='/theme/default/default/chanzhi.all.css?v=9.7' type='text/css' media='screen'/> 130<link rel='stylesheet' href='https://www.sanplex.com/data/css/zentaopm/default_wide_en.css?v=1647304879' type='text/css' media='screen' id='themeStyle'/> <style> 131 .user-control-nav{margin-bottom: 20px;} 132 .break-all {word-wrap: break-word; word-break: break-all;} 133 .pager {margin:0px;} 134 @media (max-width: 480px) { .hidden-xxs {display: none} .page {font-size: 12px}} 135 @media (max-width: 400px) { .hidden-xxxs {display: none}} 136 137 @media (max-width: 767px) {#reset {margin: 10px auto;} #reset .panel {margin: 20px auto; width: 100%;} #reset .panel-heading {padding: 0 0 10px 0;} #reset .panel-body {padding: 10px 0; min-height: inherit;} .panel-body > form {padding-right: 0;}} 138 139 #bindForm{height: 280;} 140 .nav-primary.nav-stacked > li.nav-heading{background-image:none;} 141 142 .captcha {border: 0; padding: 0; background: transparent; position: relative;} 143 .captcha img {position: absolute; right: 1px; top: 1px;} 144 145 .agreement-form label{height:30px;} 146 .text-error {--tw-text-opacity: 1; color: rgb(241 38 104 / var(--tw-text-opacity));} 147 .form-control-error {--tw-text-opacity: 1; color: rgb(241 38 104 / var(--tw-text-opacity)); background-color: rgb(241 38 104 / 0.1);} 148 .email-rule-tips .rule, .password-rule-tips .rule, .repeatPw-rule-tips .rule {transition: color 0.2s;} 149 .page-container .page-wrapper{min-height: calc(100vh - 380px);} 150 .form-group .form-control {border-color: #dcdcdc; border-radius: 3px;} 151 .m-user.m-user-edit .row .col-md-10 .panel .panel-body {padding-top: 16px;} 152 .captcha-box {gap: 8px;} 153 .modal .modal-header {padding: 12px 24px;} 154 .modal .modal-body {padding: 24px;} 155 156 .m-user-checkreset svg {width: 75px;} 157 .m-user-checkreset .body-wrap #submit {margin-top: 32px;} 158 .m-user-login .body-wrap#login .content-wrapper {width: 428px;} 159 #ajaxForm{margin-bottom: -10px;} 160 #login-pure {border:1px solid #ddd; padding:15px 0px; width: 500px; background-color:#FFFFFF; box-shadow: 0px 0px 5px #ddd;} 161 162 .regAndReset{margin: 0; line-height: 30px;} 163 .btn-wrapper {margin-top: 36px;} 164 #reset-pass {white-space: nowrap; font-size: 12px;} 165 166 #login-region {width: 445px; margin: 0 auto;} 167 #login-region > .panel-body {padding-top:0px;} 168 #login > .row {margin:0px; background-color:#F7F7F7;} 169 .m-user-login .body-wrap#login #submit {margin: 0;} 170 171 #adminLogin{max-width: 500px; margin: 8% auto; padding: 0; background-color: #FFF; border: 1px solid #DDD; box-shadow: 0px 2px 20px rgba(0, 0, 0, 0.2);border-radius: 6px;} 172 #responser{line-height: 30px; font-size: 12px } 173 #logo{margin-bottom: 10px; } 174 #adminLogin #siteName {padding: 15px 20px 15px; background: #EDF3FE; border-bottom: 1px solid #e5e5e5; border-radius: 6px 6px 0 0} 175 #adminLogin #ajaxForm {padding: 20px 20px;} 176 #adminLogin #submit {min-width: 100px;} 177 178 @media (max-width: 700px){ #adminLogin{border: none;margin: 0 auto;box-shadow: none;padding: 20px 15px;background-color: #f6f5f5; margin-top: -50px;}} 179 @media (max-width: 767px) {#login .panel {margin: 20px auto; width: 100%;} #login .panel-heading {padding: 0 0 10px 0;} #login .panel-body {padding: 10px 0; min-height: inherit;} .btn-oauth {padding-left: 80px;} .btn-oauth .icon {left: 20px;}} 180 181 hr{margin-top:8px;} 182 #login-region {width: 100%;} 183 .regAndReset {margin-top: 46px;} 184 .regAndReset a, #reset-pass {color: #007AFF; margin-right: 0;} 185 body *{word-wrap:break-word;word-break:break-word;}@font-face{font-family:'PlusJakarta';font-display:optional;src:url('/data/source/sanplex/default/wide/PlusJakartaSans-Regular.ttf') format('truetype');}@font-face{font-family:'Inter';font-display:swap;src:url('/data/source/sanplex/default/wide/Inter-Variable-Latin.woff2') format('woff2');}@font-face{font-family:'Popins';font-display:swap;src:url('/data/source/sanplex/default/wide/Poppins-Regular.ttf');}@font-face{font-family:'PoppinsBold';font-display:swap;src:url('/data/source/sanplex/default/wide/Poppins-Bold.ttf') format('truetype');}:root{--title-color:#0c2243;--text-color:#39485d;--theme-color:#007aff;}.col{min-height:0;}
185.flex{display:flex;}.justify-between{justify-content:space-between;}.justify-center{justify-content:center;}.items-center{align-items:center;}.width-wrapper{max-width:1240px;margin:0 auto;}.index-icon{background-image:url(https://www.sanplex.com/data/source/sanplex/default/wide/index-icon-1.webp);background-repeat:no-repeat;display:block;}.icon-big-gantt{background-position:-474px -48px;width:48px;height:48px;}.icon-confluence{background-position:-474px -96px;width:48px;height:48px;}.icon-dell{background-position:-328px -211px;width:136px;height:35px;}.icon-easybi{background-position:-474px -144px;width:48px;height:48px;}.icon-flexible-extensibility{background-position:0px -249px;width:84px;height:84px;}.icon-hitachi{background-position:-84px -378px;width:170px;height:30px;}.icon-import-step1{background-position:-328px 0px;width:146px;height:86px;}.icon-import-step2{background-position:0px -164px;width:152px;height:85px;}.icon-import-step3{background-position:-152px -164px;width:146px;height:84px;}.icon-import-step4{background-position:-328px -86px;width:146px;height:85px;}.icon-jira-align{background-position:-474px 0px;width:49px;height:48px;}.icon-jira-product-discovery{background-position:-474px -192px;width:48px;height:48px;}.icon-jira-service-management{background-position:-474px -240px;width:48px;height:48px;}.icon-jira{background-position:-474px -288px;width:48px;height:48px;}.icon-kddi{background-position:0px -417px;width:97px;height:31px;}.icon-lenovo{background-position:-328px -171px;width:135px;height:40px;}.icon-multi-product-management{background-position:-84px -249px;width:84px;height:84px;}.icon-multi-team-collaboration{background-position:-168px -249px;width:84px;height:84px;}.icon-multiple-theories-supported{background-position:-252px -249px;width:84px;height:84px;}.icon-rovo{background-position:-420px -249px;width:48px;height:54px;}.icon-sanplex-cloud{background-position:0px 0px;width:164px;height:164px;}.icon-sanplex-on-premises{background-position:-164px 0px;width:164px;height:164px;}.icon-skechers{background-position:-237px -333px;width:153px;height:35px;}.icon-structure-by-tempo{background-position:-474px -336px;width:48px;height:48px;}.icon-team-scalability{background-position:-336px -249px;width:83px;height:84px;}.icon-trello{background-position:-474px -384px;width:48px;height:48px;}.icon-walmart{background-position:-84px -333px;width:153px;height:45px;}.icon-wide-industry-coverage{background-position:0px -333px;width:83px;height:84px;}.icon-xporter{background-position:-48px -448px;width:41px;height:48px;}.icon-zephyr{background-position:0px -448px;width:48px;height:48px;}body{font-family:'Inter';background:#0a48d1;color:var(--title-color);font-size:16px;line-height:24px;}h1,h2,h3,h4,h5,h6{font-family:'Inter';}input,button,textarea,select{font-family:'Inter' !important;box-shadow:none !important;text-shadow:none !important;}input:focus,button:focus{outline:none !important;}a:hover,a:focus{text-decoration:none;outline:none;}table{word-break:break-all;}.icon,[class*=" icon-"],[class^=icon-]{font-family:'ZenIcon' !important;}.icon-linux:before{content:'\e73d';}.page-container{margin-top:72px;}#chatra.chatra--side-bottom{bottom:100px !important;}#footer .protocal{font-size:12px;}#footer .protocal a{margin-left:8px;}#footer .protocal a:hover{color:#fff !important;}#header{width:100%;border:none;box-shadow:0 2px 4px rgba(0,0,0,0.1);position:fixed;top:0;left:0;z-index:99;}#header .row{max-width:1250px;}#headNav{display:none !important;}#siteLogo>
185a{min-height:unset;}.is-mc-nav #siteTitle,#siteLogo img{width:150px;}#headTitle{display:flex;height:72px;position:relative;}#navbarWrapper{flex:1;}#navbarWrapper #navbar{float:none;margin-left:40px;background:transparent;z-index:1;font-size:16px;}#headTitle .trial{background:var(--theme-color);border-radius:6px;margin-left:6px;color:#fff;padding:6.5px 8px;}#navbar .nav > li > a{min-width:0;margin:0;padding:0 12px;color:#0c2243;height:36px;display:flex;align-items:center;}#navbar .nav > li > a:hover,#navbar .nav > li > a:focus{background:none;color:#1183fb;}#navbar .nav > li.open > a,#navbar .nav > li.open > a:hover{color:#1183fb !important;}#navbar .nav > li > a:hover .caret,#navbar .nav > li > a:focus .caret,#navbar .nav > li.open .caret,#navbar .nav > li.active > a > .caret,#navbar .nav > li.active > a:hover > .caret{border-top-color:#1183fb !important;border-bottom-color:#1183fb !important;}#headTitle .dropdown-menu{border:none;margin:0;font-size:14px;min-width:150px;}#navbar li.nav-item-searchbar{margin-left:0px;}#navbar .nav > li:last-child > .search-but{cursor:pointer;color:#0c2243;}#navbar .nav > li:last-child > .search-but:hover{color:#0a48d1;}#navbar .nav > li:last-child > .search-but i{font-size:16px;}#searchbar{position:relative;}#searchbar .icon-search{cursor:pointer;font-size:18px;color:#52525b;}#searchbar .form-control{height:36px;border-radius:18px;padding-left:34px;}#searchbar form{position:absolute;right:0;top:-5px;width:0;overflow:hidden;max-width:unset;transition:all 0.3s ease-in-out;}#searchbar form .btn{top:-2px;left:0;}#searchbar form.active{width:240px;}#searchbar form .icon-close{position:absolute;right:8px;padding:0 4px;height:36px;color:#52525b;z-index:2;line-height:34px;cursor:pointer;font-size:18px;font-weight:100;opacity:0.5;}#headTitle .siteNav{float:left !important;margin-left:12px;display:flex !important;}#headTitle .siteNav .signin{display:inline-block;border-radius:3px;border:1px solid #007aff;color:#007aff;background:transparent;margin-left:8px;width:max-content;line-height:20px;padding:6px 8px;}#headTitle .siteNav .signin:hover{opacity:0.9;}#headTitle .siteNav .username{max-width:130px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;margin-left:12px;}#headTitle .siteNav .dropdown-menu > li > a:hover,#headTitle .siteNav .dropdown-menu > li > a:focus{background:#f4f4f5;color:#0c2243;}#go2top{left:auto !important;right:23px;bottom:50px;border:none;width:42px;color:#666;background:#fff;border-radius:4px;box-shadow:0px 1px 6px rgba(0,0,0,0.2);}#go2top:hover{color:#1183fb;box-shadow:0px 1px 6px rgba(0,0,0,0.4);}#rightDocker{border:none;overflow:hidden;border-radius:4px 0 0 4px;box-shadow:0px 0px 6px rgba(0,0,0,0.2);}#rightDocker:hover{box-shadow:0px 0px 6px rgba(0,0,0,0.4);}#rightDocker #rightDockerBtn{padding:5px 10px;background:#fff;border:none;}#footer{background:#0a48d1;border-top:solid 1px rgba(255,255,255,0.2);}#footer *{color:rgba(255,255,255,0.6) !important;}#footer .wrapper{padding:20px 0;}#footer #footNav,#footer #powerby{top:20px;}.m-index-index .focus-top{margin-bottom:0;}.breadcrumb{margin:20px 0;}.m-index-index .all-bottom{width:100%;}.carousel{margin-bottom:0 !important;}.form-control{-webkit-appearance:none;}.popover{padding:0;border:solid 1px #ddd;margin-left:-15px !important;}.popover .arrow{border-left-color:#e5e5e5 !important;}.popover .arrow:after{border-left:none;}.pager>li>a:focus,.pager>li>a:hover,.pager>li>span:focus,.pager>li>span:hover{background:#eaeef3;}.title{text-align:center;padding:65px 0;}.title h3{margin:0;font-size:30px;color:#253858;}.title p{margin:20px auto 0;font-size:16px;}.btn{border:none;border-radius:4px;text-shadow:none;}.banner-wrap{width:100%;height:66px;background:url(https://www.sanplex.com/data/source/default/wide/zen-Band.png);background-size:cover;color:#fff;}.banner-wrap .banner{max-width:1160px;margin:auto;}.banner-wrap h3{margin:0;line-height:66px;font-size:24px;}.banner-wrap span{font-size:30px;margin:0;line-height:66px;font-weight:bold;}.row{margin-left:-10px;margin-right:-10px;}.row>[class*='col-'],.row>.col{padding-left:10px;padding-right:10px;}.all-bottom.row>
185[class*='col-'],.all-bottom.row>.col{padding-left:0;padding-right:0;}.icon-chanzhi-pro:before{content:'\e903';}.m-license-buy .page-wrapper{padding-top:0;background:#eaeef3;}.m-license-buy #product{margin-top:24px;margin-bottom:24px;border:none;box-shadow:0 1px 1px rgba(0,0,0,0.05);padding:24px;}.m-license-buy #product h1{margin-top:0;margin-bottom:24px;padding:0;}.m-license-buy #product .form-control{height:40px;border-radius:4px;border-color:#dcdcdc;}.m-license-buy #product textarea.form-control{height:auto;}.m-license-buy #product .text-error{color:#f00;font-size:14px;}.m-license-buy #product label{font-weight:normal;}.m-license-buy #product .control-label.required:after{top:6px;right:-15px;}.m-license-buy #product .btn{border:none;border-radius:50px;padding:5px 20px;width:180px;height:40px;margin:5px !important;background:var(--theme-color);}.m-license-buy #product .btn:hover{opacity:0.9;}.m-blog-view #commentBox .panel{border:1px solid #ddd;}.m-user-resetpassword .panel.panel-body{border:none;box-shadow:none;}.m-user-resetpassword .panel.panel-body .panel-heading{border:none;}.m-user .link-text,.m-order .link-text,.m-license .link-text,.m-saas .link-text,.m-paas .link-text{color:var(--theme-color);white-space:nowrap;}.m-user .user-menu,.m-order .user-menu,.m-license .user-menu,.m-saas .user-menu,.m-paas .user-menu{width:164px;padding:8px;box-shadow:0 2px 24px 3px rgba(31,35,41,0.08);margin-right:24px;border-radius:4px;}.m-user h1,.m-order h1,.m-license h1,.m-saas h1,.m-paas h1{margin:0;padding:16px 16px 0;}.m-user .panel,.m-order .panel,.m-license .panel,.m-saas .panel,.m-paas .panel{border:1px solid #e6ecf8;box-shadow:unset;border-radius:4px;margin-bottom:0;}.m-user .panel .panel-heading,.m-order .panel .panel-heading,.m-license .panel .panel-heading,.m-saas .panel .panel-heading,.m-paas .panel .panel-heading{background:#f8fafd;padding:10px 15px;border-bottom:0;}.m-user .panel .panel-body,.m-order .panel .panel-body,.m-license .panel .panel-body,.m-saas .panel .panel-body,.m-paas .panel .panel-body{padding:30px 15px;}.m-user table,.m-order table,.m-license table,.m-saas table,.m-paas table{border:1px solid #e6ecf8;}.m-user table td,.m-order table td,.m-license table td,.m-saas table td,.m-paas table td{border-color:#e6ecf8;}.m-user table thead,.m-order table thead,.m-license table thead,.m-saas table thead,.m-paas table thead{background:#f8fafd;}.m-user table thead td,.m-user table th,.m-order table thead td,.m-order table th,.m-license table thead td,.m-license table th,.m-saas table thead td,.m-saas table th,.m-paas table thead td,.m-paas table th{font-weight:normal;color:#5a6d88;}.m-user .btn-outline,.m-order .btn-outline,.m-license .btn-outline,.m-saas .btn-outline,.m-paas .btn-outline{border:1px solid var(--theme-color);background:#fff;color:var(--theme-color);}.m-user .link-text,.m-order .link-text,.m-license .link-text,.m-saas .link-text,.m-paas .link-text{color:var(--theme-color);}.m-user-login body,.m-user-register body,.m-user-resetpassword body,.m-user-checkreset body,.m-user-checkemail body,.m-paas-open body,.m-paas-loginopenresult body,.m-form-view:has(.wait-workspace) body{background:linear-gradient(135deg,#fff 0,#bbecfe 25%,#c4ddff 50%,#d0d9ff 75%,#fff 100%);min-height:100vh;display:flex;justify-content:center;align-items:center;}.m-user-login .body-wrap,.m-user-register .body-wrap,.m-user-resetpassword .body-wrap,.m-user-checkreset .body-wrap,.m-user-checkemail .body-wrap,.m-paas-open .body-wrap,.m-paas-loginopenresult .body-wrap,.m-form-view:has(.wait-workspace) .body-wrap{padding:24px;}.m-user-login .body-wrap .form-label,.m-user-register .body-wrap .form-label,.m-user-resetpassword .body-wrap .form-label,.m-user-checkreset .body-wrap .form-label,.m-user-checkemail .body-wrap .form-label,.m-paas-open .body-wrap .form-label,.m-paas-loginopenresult .body-wrap .form-label,.m-form-view:has(.wait-workspace) .body-wrap .form-label{font-size:16px;line-height:28px;color:var(--title-color);}.m-user-login .body-wrap .btn-skip,.m-user-register .body-wrap .btn-skip,.m-user-resetpassword .body-wrap .btn-skip,.m-user-checkreset .body-wrap .btn-skip,.m-user-checkemail .body-wrap .btn-skip,.m-paas-open .body-wrap .btn-skip,.m-paas-loginopenresult .body-wrap .btn-skip,.m-form-view:has(.wait-workspace) .body-wrap .btn-skip{width:130px;height:48px;background:#fff;border-radius:12px;}.m-user-login svg,.m-user-register svg,.m-user-resetpassword svg,.m-user-checkreset svg,.m-user-checkemail svg,.m-paas-open svg,.m-paas-loginopenresult svg,.m-form-view:has(.wait-workspace) svg{display:block;margin:0 auto;width:60px;height:40px;}.m-user-login h1,.m-user-register h1,.m-user-resetpassword h1,.m-user-checkreset h1,.m-user-checkemail h1,.m-paas-open h1,.m-paas-loginopenresult h1,.m-form-view:has(.wait-workspace) h1{margin-top:24px;margin-bottom:36px;font-size:36px;line-height:1;text-align:center;}.m-user-login .justify-end,.m-user-register .justify-end,.m-user-resetpassword .justify-end,.m-user-checkreset .
185justify-end,.m-user-checkemail .justify-end,.m-paas-open .justify-end,.m-paas-loginopenresult .justify-end,.m-form-view:has(.wait-workspace) .justify-end{justify-content:flex-end;}.m-user-login .panel-tips,.m-user-register .panel-tips,.m-user-resetpassword .panel-tips,.m-user-checkreset .panel-tips,.m-user-checkemail .panel-tips,.m-paas-open .panel-tips,.m-paas-loginopenresult .panel-tips,.m-form-view:has(.wait-workspace) .panel-tips{font-size:14px;margin-top:16px;}.m-user-login .panel-tips a,.m-user-register .panel-tips a,.m-user-resetpassword .panel-tips a,.m-user-checkreset .panel-tips a,.m-user-checkemail .panel-tips a,.m-paas-open .panel-tips a,.m-paas-loginopenresult .panel-tips a,.m-form-view:has(.wait-workspace) .panel-tips a{text-decoration:underline;}.m-user-login .span-oauth a,.m-user-register .span-oauth a,.m-user-resetpassword .span-oauth a,.m-user-checkreset .span-oauth a,.m-user-checkemail .span-oauth a,.m-paas-open .span-oauth a,.m-paas-loginopenresult .span-oauth a,.m-form-view:has(.wait-workspace) .span-oauth a{font-size:16px;}.m-user-login .divider-wrapper,.m-user-register .divider-wrapper,.m-user-resetpassword .divider-wrapper,.m-user-checkreset .divider-wrapper,.m-user-checkemail .divider-wrapper,.m-paas-open .divider-wrapper,.m-paas-loginopenresult .divider-wrapper,.m-form-view:has(.wait-workspace) .divider-wrapper{margin:24px 0;font-size:12px;color:#9fa5b6;font-weight:bold;}.m-user-login .divider-wrapper .divider,.m-user-register .divider-wrapper .divider,.m-user-resetpassword .divider-wrapper .divider,.m-user-checkreset .divider-wrapper .divider,.m-user-checkemail .divider-wrapper .divider,.m-paas-open .divider-wrapper .divider,.m-paas-loginopenresult .divider-wrapper .divider,.m-form-view:has(.wait-workspace) .divider-wrapper .divider{background:#d9d9d9;height:1px;width:90px;}.m-user-login .page-content,.m-user-register .page-content,.m-user-resetpassword .page-content,.m-user-checkreset .page-content,.m-user-checkemail .page-content,.m-paas-open .page-content,.m-paas-loginopenresult .page-content,.m-form-view:has(.wait-workspace) .page-content{max-width:unset;}.m-user-login .bootbox .btn-primary,.m-user-register .bootbox .btn-primary,.m-user-resetpassword .bootbox .btn-primary,.m-user-checkreset .bootbox .btn-primary,.m-user-checkemail .bootbox .btn-primary,.m-paas-open .bootbox .btn-primary,.m-paas-loginopenresult .bootbox .btn-primary,.m-form-view:has(.wait-workspace) .bootbox .btn-primary{padding:5px 12px;}.m-user-login .bootbox .btn-default,.m-user-register .bootbox .btn-default,.m-user-resetpassword .bootbox .btn-default,.m-user-checkreset .bootbox .btn-default,.m-user-checkemail .bootbox .btn-default,.m-paas-open .bootbox .btn-default,.m-paas-loginopenresult .bootbox .btn-default,.m-form-view:has(.wait-workspace) .bootbox .btn-default{font-size:14px;}.m-user-login #login,.m-user-login #reg,.m-user-register #login,.m-user-register #reg,.m-user-resetpassword #login,.m-user-resetpassword #reg,.m-user-checkreset #login,.m-user-checkreset #reg,.m-user-checkemail #login,.m-user-checkemail #reg,.m-paas-open #login,.m-paas-open #reg,.m-paas-loginopenresult #login,.m-paas-loginopenresult #reg,.m-form-view:has(.wait-workspace) #login,.m-form-view:has(.wait-workspace) #reg{border:none;box-shadow:none;background:none;}.m-user-login #captchaBox.col-sm-9,.m-user-register #captchaBox.col-sm-9,.m-user-resetpassword #captchaBox.col-sm-9,.m-user-checkreset #captchaBox.col-sm-9,.m-user-checkemail #captchaBox.col-sm-9,.m-paas-open #captchaBox.col-sm-9,.m-paas-loginopenresult #captchaBox.col-sm-9,.m-form-view:has(.wait-workspace) #captchaBox.col-sm-9{padding-left:0;padding-right:0;width:100%;}.m-user-login #captchaBox.col-sm-9 .required,.m-user-register #captchaBox.col-sm-9 .required,.m-user-resetpassword #captchaBox.col-sm-9 .required,.m-user-checkreset #captchaBox.col-sm-9 .required,.m-user-checkemail #captchaBox.col-sm-9 .required,.m-paas-open #captchaBox.col-sm-9 .required,.m-paas-loginopenresult #captchaBox.col-sm-9 .required,.m-form-view:has(.wait-workspace) #captchaBox.col-sm-9 .required{width:100%;}.m-user-login #captchaBox.col-sm-9 .w-40px,.m-user-register #captchaBox.col-sm-9 .w-40px,.m-user-resetpassword #captchaBox.col-sm-9 .w-40px,.m-user-checkreset #captchaBox.col-sm-9 .w-40px,.m-user-checkemail #captchaBox.col-sm-9 .w-40px,.m-paas-open #captchaBox.col-sm-9 .w-40px,.m-paas-loginopenresult #captchaBox.col-sm-9 .w-40px,.m-form-view:has(.wait-workspace) #captchaBox.col-sm-9 .w-40px{width:80px;}.m-user-login #captchaBox,.m-user-register #captchaBox,.m-user-resetpassword #captchaBox,.m-user-checkreset #captchaBox,.m-user-checkemail #captchaBox,.m-paas-open #captchaBox,.m-paas-loginopenresult #captchaBox,.m-form-view:has(.wait-workspace) #captchaBox{margin:0;}
185.m-user-login #captchaBox .col-sm-12,.m-user-register #captchaBox .col-sm-12,.m-user-resetpassword #captchaBox .col-sm-12,.m-user-checkreset #captchaBox .col-sm-12,.m-user-checkemail #captchaBox .col-sm-12,.m-paas-open #captchaBox .col-sm-12,.m-paas-loginopenresult #captchaBox .col-sm-12,.m-form-view:has(.wait-workspace) #captchaBox .col-sm-12{padding:0;}.m-user-login #captchaBox .col-sm-12:after,.m-user-register #captchaBox .col-sm-12:after,.m-user-resetpassword #captchaBox .col-sm-12:after,.m-user-checkreset #captchaBox .col-sm-12:after,.m-user-checkemail #captchaBox .col-sm-12:after,.m-paas-open #captchaBox .col-sm-12:after,.m-paas-loginopenresult #captchaBox .col-sm-12:after,.m-form-view:has(.wait-workspace) #captchaBox .col-sm-12:after{display:none;}.m-user-login #captchaBox .col-sm-12 table,.m-user-register #captchaBox .col-sm-12 table,.m-user-resetpassword #captchaBox .col-sm-12 table,.m-user-checkreset #captchaBox .col-sm-12 table,.m-user-checkemail #captchaBox .col-sm-12 table,.m-paas-open #captchaBox .col-sm-12 table,.m-paas-loginopenresult #captchaBox .col-sm-12 table,.m-form-view:has(.wait-workspace) #captchaBox .col-sm-12 table{border:0;background:transparent;}.m-user-login #captchaBox .col-sm-12 table .text-lg,.m-user-register #captchaBox .col-sm-12 table .text-lg,.m-user-resetpassword #captchaBox .col-sm-12 table .text-lg,.m-user-checkreset #captchaBox .col-sm-12 table .text-lg,.m-user-checkemail #captchaBox .col-sm-12 table .text-lg,.m-paas-open #captchaBox .col-sm-12 table .text-lg,.m-paas-loginopenresult #captchaBox .col-sm-12 table .text-lg,.m-form-view:has(.wait-workspace) #captchaBox .col-sm-12 table .text-lg{padding-left:0;}.m-user-login #captchaBox .col-sm-12 table td:last-child,.m-user-register #captchaBox .col-sm-12 table td:last-child,.m-user-resetpassword #captchaBox .col-sm-12 table td:last-child,.m-user-checkreset #captchaBox .col-sm-12 table td:last-child,.m-user-checkemail #captchaBox .col-sm-12 table td:last-child,.m-paas-open #captchaBox .col-sm-12 table td:last-child,.m-paas-loginopenresult #captchaBox .col-sm-12 table td:last-child,.m-form-view:has(.wait-workspace) #captchaBox .col-sm-12 table td:last-child{text-align:right;padding-right:0;}.m-user-login #captchaBox .col-sm-12 table .w-40px,.m-user-register #captchaBox .col-sm-12 table .w-40px,.m-user-resetpassword #captchaBox .col-sm-12 table .w-40px,.m-user-checkreset #captchaBox .col-sm-12 table .w-40px,.m-user-checkemail #captchaBox .col-sm-12 table .w-40px,.m-paas-open #captchaBox .col-sm-12 table .w-40px,.m-paas-loginopenresult #captchaBox .col-sm-12 table .w-40px,.m-form-view:has(.wait-workspace) #captchaBox .col-sm-12 table .w-40px{width:80px;}.m-user-login .row,.m-user-register .row,.m-user-resetpassword .row,.m-user-checkreset .row,.m-user-checkemail .row,.m-paas-open .row,.m-paas-loginopenresult .row,.m-form-view:has(.wait-workspace) .row{background:none;}.m-user-login .content-wrapper,.m-user-register .content-wrapper,.m-user-resetpassword .content-wrapper,.m-user-checkreset .content-wrapper,.m-user-checkemail .content-wrapper,.m-paas-open .content-wrapper,.m-paas-loginopenresult .content-wrapper,.m-form-view:has(.wait-workspace) .content-wrapper{width:634px;margin:0 auto;}.m-user-login .content-wrapper .logo,.m-user-register .content-wrapper .logo,.m-user-resetpassword .content-wrapper .logo,.m-user-checkreset .content-wrapper .logo,.m-user-checkemail .content-wrapper .logo,.m-paas-open .content-wrapper .logo,.m-paas-loginopenresult .content-wrapper .logo,.m-form-view:has(.wait-workspace) .content-wrapper .logo{width:177px;}.m-user-login .panel,.m-user-register .panel,.m-user-resetpassword .panel,.m-user-checkreset .panel,.m-user-checkemail .panel,.m-paas-open .panel,.m-paas-loginopenresult .panel,.m-form-view:has(.wait-workspace) .panel{padding:32px;border-radius:8px;border:0;box-shadow:unset;overflow:unset;}.m-user-login .panel-heading,.m-user-register .panel-heading,.m-user-resetpassword .panel-heading,.m-user-checkreset .panel-heading,.m-user-checkemail .panel-heading,.m-paas-open .panel-heading,.m-paas-loginopenresult .panel-heading,.m-form-view:has(.wait-workspace) .panel-heading{padding:0;margin-bottom:24px;border-bottom:0;}.m-user-login .panel-heading img,.m-user-register .panel-heading img,.m-user-resetpassword .panel-heading img,.m-user-checkreset .panel-heading img,.m-user-checkemail .panel-heading img,.m-paas-open .panel-heading img,.m-paas-loginopenresult .panel-heading img,.m-form-view:has(.wait-workspace) .panel-heading img{width:40px;margin-bottom:24px;}.m-user-login .panel-heading h1,.m-user-register .panel-heading h1,.m-user-resetpassword .panel-heading h1,.m-user-checkreset .panel-heading h1,.m-user-checkemail .panel-heading h1,.m-paas-open .panel-heading h1,.m-paas-loginopenresult .panel-heading h1,.m-form-view:has(.wait-workspace) .panel-heading h1{font-size:30px;line-height:40px;color:#0c2243;margin:0;}.m-user-login .panel-body,.m-user-register .panel-body,.m-user-resetpassword .panel-body,.m-user-checkreset .panel-body,.m-user-checkemail .panel-body,.m-paas-open .panel-body,.m-paas-loginopenresult .panel-body,.m-form-view:has(.wait-workspace) .panel-body{padding:0;}.m-user-login .panel-body > form,.m-user-register .panel-body > form,.m-user-resetpassword .panel-body > form,.m-user-checkreset .panel-body > form,.m-user-checkemail .panel-body > form,.m-paas-open .panel-body > form,.m-paas-loginopenresult .panel-body > form,.m-form-view:has(.wait-workspace) .panel-body > form{padding-right:0;}.m-user-login .panel-body > form .or,.m-user-register .panel-body > form .or,.m-user-resetpassword .panel-body > form .or,.m-user-checkreset .panel-body > form .or,.m-user-checkemail .panel-body > form .or,.m-paas-open .panel-body > form .or,.m-paas-loginopenresult .panel-body > form .or,.m-form-view:has(.wait-workspace) .panel-body > form .or{font-size:16px;line-height:24px;color:#000;margin:12px 0;}.m-user-login .panel-body > form .pwd-icon,.m-user-register .panel-body > form .pwd-icon,.m-user-resetpassword .panel-body > form .pwd-icon,.m-user-checkreset .panel-body > form .pwd-icon,.m-user-checkemail .panel-body > form .pwd-icon,.m-paas-open .panel-body > form .pwd-icon,.m-paas-loginopenresult .panel-body > form .pwd-icon,.m-form-view:has(.wait-workspace) .panel-body > form .pwd-icon{position:absolute;right:16px;top:36px;cursor:pointer;width:24px;}.m-user-login .panel-body > form .rule-tips,.m-user-register .panel-body > form .rule-tips,.m-user-resetpassword .panel-body > form .rule-tips,.m-user-checkreset .panel-body > form .rule-tips,.m-user-checkemail .panel-body > form .rule-tips,.m-paas-open .panel-body > form .rule-tips,.m-paas-loginopenresult .panel-body > form .rule-tips,.m-form-view:has(.wait-workspace) .panel-body > form .rule-tips{position:absolute;right:-254px;top:-4px;box-shadow:0px 5px 5px -3px #0000001A, 0px 8px 10px 1px #0000000F, 0px 3px 14px 2px #0000000D;font-size:13px;line-height:20px;color:#0c2243;padding:4px 8px;border-radius:6px;display:none;}.m-user-login .panel-body > form .rule-tips > div,.m-user-register .panel-body > form .rule-tips > div,.m-user-resetpassword .panel-body > form .rule-tips > div,.m-user-checkreset .panel-body > form .rule-tips > div,.m-user-checkemail .panel-body > form .rule-tips > div,.m-paas-open .panel-body > form .rule-tips > div,.m-paas-loginopenresult .panel-body > form .rule-tips > div,.m-form-view:has(.wait-workspace) .panel-body > form .rule-tips > div{display:flex;align-items:center;}.m-user-login .panel-body > form .rule-tips i,.m-user-register .panel-body > form .rule-tips i,.m-user-resetpassword .panel-body > form .rule-tips i,.m-user-checkreset .panel-body > form .rule-tips i,.m-user-checkemail .panel-body > form .rule-tips i,.m-paas-open .panel-body > form .rule-tips i,.m-paas-loginopenresult .panel-body > form .rule-tips i,.m-form-view:has(.wait-workspace) .panel-body > form .rule-tips i{color:#c0c7d1;margin-right:8px;}.m-user-login .panel-body > form .rule-tips i.right,.m-user-register .panel-body > form .rule-tips i.right,.m-user-resetpassword .panel-body > form .rule-tips i.right,.m-user-checkreset .panel-body > form .rule-tips i.right,.m-user-checkemail .panel-body > form .rule-tips i.right,.m-paas-open .panel-body > form .rule-tips i.right,.m-paas-loginopenresult .panel-body > form .rule-tips i.right,.m-form-view:has(.wait-workspace) .panel-body > form .rule-tips i.right{color:#14b179;}.m-user-login .panel-body .form-group,.m-user-register .panel-body .form-group,.m-user-resetpassword .panel-body .form-group,.m-user-checkreset .panel-body .form-group,.m-user-checkemail .panel-body .form-group,.m-paas-open .panel-body .form-group,.m-paas-loginopenresult .panel-body .form-group,.m-form-view:has(.wait-workspace) .panel-body .form-group{margin:0 0 12px;position:relative;}.m-user-login .panel-body .check-email,.m-user-register .panel-body .check-email,.m-user-resetpassword .panel-body .check-email,.m-user-checkreset .panel-body .check-email,.m-user-checkemail .panel-body .check-email,.m-paas-open .panel-body .check-email,.m-paas-loginopenresult .panel-body .check-email,.m-form-view:has(.wait-workspace) .panel-body .check-email{display:flex;align-items:center;gap:24px;}.m-user-login .panel-body .check-email:before,.m-user-login .panel-body .check-email:after,.m-user-register .panel-body .check-email:before,.m-user-register .panel-body .check-email:after,.m-user-resetpassword .panel-body .check-email:before,.m-user-resetpassword .panel-body .check-email:after,.m-user-checkreset .panel-body .check-email:before,.m-user-checkreset .panel-body .check-email:after,.m-user-checkemail .panel-body .check-email:before,.m-user-checkemail .panel-body .check-email:after,.m-paas-open .panel-body .check-email:before,.m-paas-open .panel-body .check-email:after,.m-paas-loginopenresult .panel-body .check-email:before,.m-paas-loginopenresult .panel-body .check-email:after,.m-form-view:has(.wait-workspace) .panel-body .check-email:before,.m-form-view:has(.wait-workspace) .panel-body .check-email:after{display:none;}.m-user-login .panel-body .check-email .form-control,.m-user-register .panel-body .check-email .form-control,.m-user-resetpassword .panel-body .check-email .form-control,.m-user-checkreset .panel-body .check-email .form-control,.m-user-checkemail .panel-body .check-email .form-control,.m-paas-open .panel-body .check-email .form-control,.m-paas-loginopenresult .panel-body .check-email .form-control,.m-form-view:has(.wait-workspace) .panel-body .check-email .form-control{width:278px;}.m-user-login .panel-body .check-email .resend-email,.m-user-register .panel-body .check-email .resend-email,.m-user-resetpassword .panel-body .check-email .resend-email,.m-user-checkreset .panel-body .check-email .resend-email,.m-user-checkemail .panel-body .check-email .resend-email,.m-paas-open .panel-body .check-email .resend-email,.m-paas-loginopenresult .panel-body .check-email .resend-email,.m-form-view:has(.wait-workspace) .panel-body .check-email .resend-email{margin-top:0;}.m-user-login .panel-body .check-email .popover,.m-user-register .panel-body .check-email .popover,.m-user-resetpassword .panel-body .check-email .popover,.m-user-checkreset .panel-body .check-email .popover,.m-user-checkemail .panel-body .check-email .popover,.m-paas-open .panel-body .check-email .popover,.m-paas-loginopenresult .panel-body .check-email .popover,.m-form-view:has(.wait-workspace) .panel-body .check-email .popover{margin-left:0;}.m-user-login .panel-body .check-email .popover-content,.m-user-register .panel-body .check-email .popover-content,.m-user-resetpassword .panel-body .check-email .popover-content,.m-user-checkreset .panel-body .check-email .popover-content,.m-user-checkemail .panel-body .check-email .popover-content,.m-paas-open .panel-body .check-email .popover-content,.m-paas-loginopenresult .panel-body .check-email .popover-content,.m-form-view:has(.wait-workspace) .panel-body .check-email .popover-content{display:flex;width:max-content;}
185.m-user-login .panel-body .subtitle,.m-user-register .panel-body .subtitle,.m-user-resetpassword .panel-body .subtitle,.m-user-checkreset .panel-body .subtitle,.m-user-checkemail .panel-body .subtitle,.m-paas-open .panel-body .subtitle,.m-paas-loginopenresult .panel-body .subtitle,.m-form-view:has(.wait-workspace) .panel-body .subtitle{font-size:18px;line-height:24px;color:#0c2243;margin-bottom:8px;}.m-user-login .panel-body .tips,.m-user-register .panel-body .tips,.m-user-resetpassword .panel-body .tips,.m-user-checkreset .panel-body .tips,.m-user-checkemail .panel-body .tips,.m-paas-open .panel-body .tips,.m-paas-loginopenresult .panel-body .tips,.m-form-view:has(.wait-workspace) .panel-body .tips{font-size:16px;line-height:24px;color:#5a6d88;margin-bottom:24px;}.m-user-login .form-control,.m-user-register .form-control,.m-user-resetpassword .form-control,.m-user-checkreset .form-control,.m-user-checkemail .form-control,.m-paas-open .form-control,.m-paas-loginopenresult .form-control,.m-form-view:has(.wait-workspace) .form-control{border-radius:8px;padding:8px 12px;height:40px;font-size:14px;background:#f4f6f9;border:0;}.m-user-login .btn-primary,.m-user-register .btn-primary,.m-user-resetpassword .btn-primary,.m-user-checkreset .btn-primary,.m-user-checkemail .btn-primary,.m-paas-open .btn-primary,.m-paas-loginopenresult .btn-primary,.m-form-view:has(.wait-workspace) .btn-primary{font-size:16px;line-height:22px;}.m-user-login .btn-gotomysite,.m-user-register .btn-gotomysite,.m-user-resetpassword .btn-gotomysite,.m-user-checkreset .btn-gotomysite,.m-user-checkemail .btn-gotomysite,.m-paas-open .btn-gotomysite,.m-paas-loginopenresult .btn-gotomysite,.m-form-view:has(.wait-workspace) .btn-gotomysite{font-size:16px;margin-right:12px;}.m-user-login a.return-back,.m-user-register a.return-back,.m-user-resetpassword a.return-back,.m-user-checkreset a.return-back,.m-user-checkemail a.return-back,.m-paas-open a.return-back,.m-paas-loginopenresult a.return-back,.m-form-view:has(.wait-workspace) a.return-back{background:#fff;}.m-user-login .error-message,.m-user-register .error-message,.m-user-resetpassword .error-message,.m-user-checkreset .error-message,.m-user-checkemail .error-message,.m-paas-open .error-message,.m-paas-loginopenresult .error-message,.m-form-view:has(.wait-workspace) .error-message{font-size:18px;margin-bottom:48px;}.m-user-login #reset-pass,.m-user-register #reset-pass,.m-user-resetpassword #reset-pass,.m-user-checkreset #reset-pass,.m-user-checkemail #reset-pass,.m-paas-open #reset-pass,.m-paas-loginopenresult #reset-pass,.m-form-view:has(.wait-workspace) #reset-pass{font-size:14px;}.m-user-login #submit,.m-user-register #submit,.m-user-resetpassword #submit,.m-user-checkreset #submit,.m-user-checkemail #submit,.m-paas-open #submit,.m-paas-loginopenresult #submit,.m-form-view:has(.wait-workspace) #submit{width:180px;border-radius:12px;height:48px;margin:0 auto;}.m-user-login .resend-email,.m-user-register .resend-email,.m-user-resetpassword .resend-email,.m-user-checkreset .resend-email,.m-user-checkemail .resend-email,.m-paas-open .resend-email,.m-paas-loginopenresult .resend-email,.m-form-view:has(.wait-workspace) .resend-email{color:var(--theme-color);display:block;}.m-user-login .email-tips,.m-user-register .email-tips,.m-user-resetpassword .email-tips,.m-user-checkreset .email-tips,.m-user-checkemail .email-tips,.m-paas-open .email-tips,.m-paas-loginopenresult .email-tips,.m-form-view:has(.wait-workspace) .email-tips{font-size:14px;}.form-control,.btn{height:40px;font-size:16px;line-height:27px;}.col-sm-1,.col-md-1{width:11%;}.col-sm-11,.col-md-11{width:89%;}.col-sm-offset-1{margin-left:11%;}.footwrap{background:#0a48d1;}.m-license table td a{color:#0c2243;}@media (max-width: 1280px) and (min-width: 767px){#navbar .nav > li > a{padding:0 10px;font-size:13px;}#navbar .nav > li:nth-last-child(2){margin-left:0;}.carousel-caption{max-width:960px !important;top:110px;left:50%;margin-left:-480px !important;text-shadow:none;}.banner-wrap .banner{max-width:960px;margin:auto;}}@media (max-width: 1200px){.page-container .width-wrapper{width:100%;}#headTitle{padding-left:20px;padding-right:20px;}}@media (max-width: 991px){.m-license .col-md-2 .nav a{border:none;}.m-license .col-md-2 ul.user-control-nav > li.nav-icon:last-child > a{border:none !important;}.m-user .col-md-2 .nav a{border:none;}.m-user .col-md-2 ul.user-control-nav > li.nav-icon:last-child > a{border:none !important;}.m-request .col-md-2 .nav a{border:none;}.m-request .col-md-2 ul.user-control-nav > li.nav-icon:last-child > a{border:none !important;}#navbarWrapper #navbar .collapse{max-width:426px;overflow:auto !important;}#navbarWrapper #navbar .collapse .navbar-nav{width:max-content;}#navbar .nav > li:last-child{background:transparent;}#navbar .nav > li:last-child a{color:var(--title-color);}#searchbar{right:90px;}#headTitle:has(.username) #searchbar{right:170px;}}@media (max-width: 767px){.m-user-login .content-wrapper,.m-user-register .content-wrapper,.m-user-resetpassword .content-wrapper,.m-user-checkreset .content-wrapper,.m-user-checkemail .content-wrapper,.m-pa
185as-open .content-wrapper,.m-paas-loginopenresult .content-wrapper,.m-form-view:has(.wait-workspace) .content-wrapper{width:98%;}.m-user-login .content-wrapper .divider-wrapper,.m-user-register .content-wrapper .divider-wrapper,.m-user-resetpassword .content-wrapper .divider-wrapper,.m-user-checkreset .content-wrapper .divider-wrapper,.m-user-checkemail .content-wrapper .divider-wrapper,.m-paas-open .content-wrapper .divider-wrapper,.m-paas-loginopenresult .content-wrapper .divider-wrapper,.m-form-view:has(.wait-workspace) .content-wrapper .divider-wrapper{justify-content:center;}.m-user-login .content-wrapper .divider-wrapper .divider,.m-user-register .content-wrapper .divider-wrapper .divider,.m-user-resetpassword .content-wrapper .divider-wrapper .divider,.m-user-checkreset .content-wrapper .divider-wrapper .divider,.m-user-checkemail .content-wrapper .divider-wrapper .divider,.m-paas-open .content-wrapper .divider-wrapper .divider,.m-paas-loginopenresult .content-wrapper .divider-wrapper .divider,.m-form-view:has(.wait-workspace) .content-wrapper .divider-wrapper .divider{display:none;}.m-user-login .body-wrap#login .content-wrapper{width:98%;}.m-user-register .body-wrap{width:100%;}.m-user-register .body-wrap .content-wrapper form > .flex{flex-direction:column;}.m-user-register .body-wrap .content-wrapper form > .flex .form-group{width:100%;}.page-content{padding:0;}#navbar .navbar-collapse{border:none;border-top:solid 1px #e7edf4;box-shadow:0 2px 4px rgba(0,0,0,0.1);}#headNav{background:#1183fb !important;}#headTitle.with-navbar{padding:0 20px;}#navbar .navbar-header{position:static;}#headTitle #siteNav{position:absolute;left:55%;top:-15px;}#headTitle #siteNav:has(.username){left:36%;}#siteTitle,#siteLogo img{min-width:50px !important;height:auto;}#headTitle.with-navbar #navbar .navbar-collapse{position:absolute;top:50px;background:#fff;width:100%;left:0;}#headTitle .trial{display:none !important;}#navbar{position:static;}#navbar .nav > li:last-child{float:left;}#navbar .nav > li > a{line-height:50px;}#navbar .nav > li > a:hover,#navbar .nav > li > a:focus{color:#1183fb;background:none;}#navbar .nav > li > a:hover > .caret,#navbar .nav > li > a:focus > .caret,#navbar .nav > li.active > a > .caret,#navbar .nav > li.active > a:hover > .caret{border-top-color:#1183fb;border-bottom-color:#1183fb;}#navbar .nav > li > .login,#navbar .nav > li > .register{display:inline-block;margin:0 0 0 10px;}#navbar .navbar-nav{padding-bottom:20px;}#navbar .nav > li .search-but{display:none !important;}#siteNav a{margin:15px 25px 0 0;}#searchbar{display:none;}#go2top{display:none !important;}#login-region{width:100%;box-shadow:none;}#login-region .btn-oauth{padding:0;}#login{padding:5px;}#login #login-pure{padding:15px;margin:0 auto;}#login-pure{box-shadow:none;}#reg.panel,#reg .panel{margin:0;padding:5px;}#reg #login-region{padding:10px;margin:0 auto 20px;}#heading-login{display:none;}#language{position:absolute;right:54px;top:-15px;height:50px;}[class*="col-"].required{padding-right:20px;}[class*="col-"].required:after{right:4px;}.page-container{margin-top:50px;}.nav .open>a .caret,.nav .open>a:focus .caret,.nav .open>a:hover .caret{border-top-color:#1183fb;border-bottom-color:#1183fb;}.navbar-collapse .navbar-nav > li .dropdown-menu{top:auto;left:auto;}.navbar-toggle{border:none;}.navbar-toggle:hover .icon-bar,.navbar-toggle:focus .icon-bar,.navbar-toggle .icon-bar{background:#1183fb;}.title{padding:30px 15px;}.title h3{margin:0;font-size:18px;color:#253858;}.title p{margin:20px auto 0;font-size:14px;}.banner-wrap{display:none;}.m-forum-index .nav-secondary{margin-right:0;}.m-thread-view .speaker > ul{position:static;}.m-video-view .article .pager{display:none;}.m-book-index .panel > .row{padding:0 20px;}.m-book-index .panel > .row .col-xs-6{width:100%;}.m-extension-browse #_recPerPage{display:none;}.m-extension-browse .card-heading h4{display:flex;flex-wrap:wrap;}.m-extension-browse .card-heading h4 a{margin-right:8px;}.m-extension-viewext .article-content .nav>li>a{padding:8px 4px;}.m-extension-viewext .table-borderless > tbody > tr{display:flex;flex-direction:column;}.m-extension-viewext .table-borderless > tbody > tr > td{width:100%;}.m-extension-viewext .table-borderless > tbody > tr table th{width:90px;}.col-sm-1,.col-md-1{width:100%;}.col-sm-11,.col-md-11{width:100%;}.col-sm-offset-1{margin-left:0;}#footer{text-align:center;}}
185#zentao-icon{max-width:200px !important;}#book > .article-content > .nav-content{display:none;}.flex:not(:has(.block-article-blogTree)) #blogList{width:100%;}.m-user-oauthcallback .page-content .row:nth-child(2){min-height:800px;}.m-blog-index #blogList .card{margin-bottom:0;padding-left:0;padding-right:0;}.m-blog-index #blogList .card .media{display:flex;align-items:center;} 186</style> 187<link rel='icon' href='/file.php?f=sanplex/202604/f_3128abb31c264bb668e03a5f834297e1.ico&t=ico&o=&s=&v=1791539206' type='image/x-icon' /> 188<link rel='shortcut icon' href='/file.php?f=sanplex/202604/f_3128abb31c264bb668e03a5f834297e1.ico&t=ico&o=&s=&v=1791539206' type='image/x-icon' /> 189<link href='/rss.xml' title='' type='application/rss+xml' rel='alternate' />
189<script> 190 v.lang = {"confirmDelete":"Do you want to delete it?","deleteing":"Deleting","doing":"Doing","loading":"Loading","updating":"Updating","timeout":"Timeout. Please try it again.","errorThrown":"Error : ","continueShopping":"Continue shopping","required":"Required","back":"Back","continue":"Continue","bindWechatTip":"Posting sets the limit for binding WeChat. Please bind WeChat user first.","importTip":"Old layout data will be replaced","fullImportTip":"Old article, product, layout data will be replaced and import test data"}; 191</script>
191 192</head> 193<body>
194<script src='/js/chanzhi.all.js?v=9.7' type='text/javascript'></script>
vendor: 1 bytes, line 194
194
195<script src='/js/md5.js?v=9.7' type='text/javascript'></script>
vendor: 1 bytes, line 195
195
196<script src='/js/fingerprint/fingerprint.js?v=9.7' type='text/javascript'></script>
vendor: 1 bytes, line 196
196
197<script> 198 v.random = "ff7356196d872a5d5ea5f7183b752923"; 199</script>
vendor: 1 bytes, line 199
199
200<script> 201 v.loginEmptyEmail = "The email is required."; 202</script>
vendor: 1 bytes, line 202
202
203<script> 204 v.loginEmptyPass = "The password is required."; 205</script>
vendor: 1 bytes, line 205
205
206<script> 207 v.postLoginSiteUrl = "/crosslogin-postLoginSite.json"; 208</script>
vendor: 1 bytes, line 208
208
209<script> 210 v.oauthLocate = ""; 211</script>
211 212<div id='login' class="body-wrap"> 213 <div class="content-wrapper"> <a href="/"> 214 <svg width="48" height="32" viewBox="0 0 48 32" fill="none" xmlns="http://www.w3.org/2000/svg"> 215 <path d="M10.7381 2.49196C11.2826 0.995827 12.7047 0 14.2968 0H38.9506C44.6775 0 48.6969 5.64472 46.8236 11.0566L42.4407 23.7183C40.7248 28.6753 36.0557 32 30.8101 32H9.18343L10.1527 28.6854C10.7449 26.6125 12.6395 25.1834 14.7953 25.1834H29.6754C32.7255 25.1834 35.4532 23.2846 36.512 20.4242L40.8244 8.77431C41.3966 7.22852 40.253 5.5858 38.6047 5.5858H16L15.1479 8.04734H38.4687L34.2035 19.5696C33.5022 21.4642 31.6956 22.7219 29.6754 22.7219H14.7953C11.5405 22.7219 8.68 24.8796 7.78583 28.0091L6.62047 32H0L6.33656 14.5873C7.34322 15.7404 8.82306 16.4894 10.5196 16.4962H27.0769L28.0237 14.0347H10.5295C8.96553 14.0284 7.73079 12.8946 7.46739 11.4798L10.7381 2.49196Z" fill="#007AFF"/> 216 </svg> 217 </a> 218 <h1>Sign in</h1> 219 <div class='panel'> 220 <div id='login-region'> 221 <div class='panel-body'> 222 <div class='span-oauth'> 223 <a href='/user-oauthLogin-google-fingerprintval' class='btn-oauth'> 224 <img src='/theme/default/default/images/main/googlelogin.png' /> 225<span class="way">Continue with Google</span></a> 226 </div>
227<script> 228 $().ready(function() 229 { 230 $('a.btn-oauth').each(function() 231 { 232 getFingerprint().then(result => { 233 $(this).attr('href', $(this).attr('href').replace('fingerprintval', result)); 234 }); 235 }) 236 }); 237 </script>
237 238<style> 239 .span-oauth {margin: 0; line-height:30px;} 240 .span-oauth a{display: flex; height: 48px; align-items: center; font-size: 14px; line-height: 22px; color: #fff; border-radius: 12px; background: var(--theme-color);} 241 .span-oauth a:last-child {margin-bottom: 0;} 242 .span-oauth a > img{width: 60px; height: 46px; padding: 8px 15px; background: #fff; border-radius: 10.5px 0 0 10.5px; margin-left: 1px;} 243 .span-oauth a .way {flex: 1; text-align: center;} 244 </style> 245 <div class="flex items-center justify-between divider-wrapper"> 246 <div class="divider"></div> 247 OR SIGN IN WITH EMAIL <div class="divider"></div> 248 </div> 249 <form method='post' id='loginForm' role='form' data-checkfingerprint='1'> 250 <div class='form-group'> 251 <div class="form-label">Email</div> 252 <input type='text' name='account' id='account' value='' placeholder='Your email' class='form-control' autofocus='autofocus' /> 253 <span id="accountError" class="text-error" style="display: none; margin-top: 5px;"></span> 254 </div> 255 <div class='form-group'> 256 <div class="form-label">Pick a password</div> 257 <div class="password-wrapper"> 258 <input type='password' name='password' id='password' value='' placeholder='Enter password' class='form-control' /> 259 260 <img src='/images/icon-eye-close.png' class="pwd-icon pwd-show" /> 261 </div> 262 <span id="passwordError" class="text-error" style="display: none; margin-top: 5px;"></span> 263 </div> 264 <div class='form-group hiding'><div id='formError' class='text-error'></div></div> 265 <div class="flex justify-between items-center btn-wrapper"> 266 <a href='/user-resetpassword' id='reset-pass'>Forgot password</a> 267 <input type='submit' id='submit' class='btn btn-primary btn-wider btn-lg btn-block' value="Sign in" data-loading='Loading...' /> </div> 268 269 <input type='hidden' name='referer' id='referer' value='' /> 270 </form> 271 </div> 272 </div> 273 </div> 274 275 <div class="text-center panel-tips"> 276 Don't have Sanplex account yet? <a href='/user-register-' id='register'>Sign up</a> 277 </div> 278 </div> 279</div> 280
280<script>$(function() 281{ 282$('.pwd-icon').click(function() 283{ 284if($(this).hasClass('pwd-show')) 285{ 286$(this).siblings('input').attr('type', 'text'); 287$(this).attr('src', '/images/icon-eye.png').removeClass('pwd-show').addClass('pwd-hide'); 288} 289else 290{ 291$(this).siblings('input').attr('type', 'password'); 292$(this).attr('src', '/images/icon-eye-close.png').removeClass('pwd-hide').addClass('pwd-show'); 293} 294}); 295$('.email-rule-tips, .name-rule-tips').hide(); 296$('#firstname, #lastname').on('focus', function(e) 297{ 298var $input = $(e.target); 299$input.removeClass('form-control-error'); 300}); 301$('#firstname, #lastname').on('blur', function(e) 302{ 303var $input = $(e.target); 304if(e.target.value.trim() !== '') 305{ 306$input.siblings('.name-rule-tips').hide(); 307} 308}); 309$('#email').on('focus', function(e) 310{ 311var $input = $(e.target); 312$input.removeClass('form-control-error'); 313}); 314$('#email').on('blur', function(e) 315{ 316var emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 317var $tips = $('.email-rule-tips'); 318var $input = $(e.target); 319if(emailPattern.test(e.target.value)) 320{ 321$tips.hide(); 322$tips.find('.rule').removeClass('text-error'); 323$input.removeClass('form-control-error'); 324} 325else 326{ 327$tips.show(); 328$tips.find('.rule').addClass('text-error'); 329$input.addClass('form-control-error'); 330} 331}); 332$('.password-rule-tips').hide(); 333$('#password1').on('focus', function(e) 334{ 335var $input = $(e.target); 336$input.removeClass('form-control-error'); 337}); 338$('#password1').on('blur', function(e) 339{ 340var zg = /(?!^(\d+|[a-zA-Z]+|[~!@#$%^&*()_.]+)$)^[\w~!@#$%^&*()_.]{6,20}$/; 341var $tips = $('.password-rule-tips'); 342var $input = $(e.target); 343if(zg.test(e.target.value)) 344{ 345$tips.hide(); 346$tips.find('.rule').removeClass('text-error'); 347$input.removeClass('form-control-error'); 348} 349else 350{ 351$tips.show(); 352$tips.find('.rule').addClass('text-error'); 353$input.addClass('form-control-error'); 354} 355}); 356$('.repeatPw-rule-tips').hide(); 357$('#password2').on('focus', function(e) 358{ 359var $input = $(e.target); 360$input.removeClass('form-control-error'); 361}); 362$('#password2').on('blur', function(e) 363{ 364var password = $('#password1').val(); 365var $tips = $('.repeatPw-rule-tips'); 366var $input = $(e.target); 367if(password === e.target.value) 368{ 369$tips.hide(); 370$tips.find('.rule').removeClass('text-error'); 371$input.removeClass('form-control-error'); 372} 373else 374{ 375$tips.show(); 376$tips.find('.rule').addClass('text-error'); 377$input.addClass('form-control-error'); 378} 379}); 380// form submit 381$('#registerForm').on('submit', function(e) 382{ 383var isValid = true; 384var firstErrorField = null; 385var emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 386var passwordPattern = /(?!^(\d+|[a-zA-Z]+|[~!@#$%^&*()_.]+)$)^[\w~!@#$%^&*()_.]{6,20}$/; 387if($('#firstname').length && $('#firstname').val().trim() === '') 388{ 389isValid = false; 390$('#firstname').addClass('form-control-error'); 391if(!firstErrorField) firstErrorField = $('#firstname'); 392$('.firstname-rule-tips').show(); 393} 394if($('#lastname').length && $('#lastname').val().trim() === '') 395{ 396isValid = false; 397$('#lastname').addClass('form-control-error'); 398if(!firstErrorField) firstErrorField = $('#lastname'); 399$('.lastname-rule-tips').show(); 400} 401if($('#email').length) 402{ 403var emailVal = $('#email').val().trim(); 404if(emailVal === '') 405{ 406isValid = false; 407$('.email-rule-tips').show(); 408$('.email-rule-tips .rule').addClass('text-error'); 409$('#email').addClass('form-control-error'); 410if(!firstErrorField) firstErrorField = $('#email'); 411} 412else if(!emailPattern.test(emailVal)) 413{ 414isValid = false; 415$('.email-rule-tips').show(); 416$('.email-rule-tips .rule').addClass('text-error'); 417$('#email').addClass('form-control-error'); 418if(!firstErrorField) firstErrorField = $('#email'); 419} 420} 421var passwordVal = $('#password1').val(); 422if(passwordVal === '') 423{ 424isValid = false; 425$('.password-rule-tips').show(); 426$('.password-rule-tips .rule').addClass('text-error'); 427$('#password1').addClass('form-control-error'); 428if(!firstErrorField) firstErrorField = $('#password1'); 429} 430else if(!passwordPattern.test(passwordVal)) 431{ 432isValid = false; 433$('.password-rule-tips').show(); 434$('.password-rule-tips .rule').addClass('text-error'); 435$('#password1').addClass('form-control-error'); 436if(!firstErrorField) firstErrorField = $('#password1'); 437} 438var password2Val = $('#password2').val(); 439if(password2Val === '') 440{ 441isValid = false;
442$('.repeatPw-rule-tips').show(); 443$('.repeatPw-rule-tips .rule').addClass('text-error'); 444$('#password2').addClass('form-control-error'); 445if(!firstErrorField) firstErrorField = $('#password2'); 446} 447else if(passwordVal !== password2Val) 448{ 449isValid = false; 450$('.repeatPw-rule-tips').show(); 451$('.repeatPw-rule-tips .rule').addClass('text-error'); 452$('#password2').addClass('form-control-error'); 453if(!firstErrorField) firstErrorField = $('#password2'); 454} 455if($('#agreement').length && !$('#agreement').is(':checked')) 456{ 457isValid = false; 458if(!firstErrorField) firstErrorField = $('#agreement'); 459} 460if(!isValid) 461{ 462e.preventDefault(); 463if(firstErrorField) firstErrorField.focus(); 464return false; 465} 466}); 467}); 468/* Keep session random valid. */ 469needPing = true; 470var fingerprint = ''; 471function getSiteContext() 472{ 473var raw = $.cookie('siteContext'); 474if(!raw) return {}; 475try 476{ 477var parsed = JSON.parse(raw); 478return parsed && typeof parsed === 'object' ? parsed : {}; 479} 480catch(e) 481{ 482return {}; 483} 484} 485function showFieldError(fieldId, message) 486{ 487var $field = $('#' + fieldId); 488var $error = $('#' + fieldId + 'Error'); 489if($field.length === 0 || $error.length === 0) 490{ 491return; 492} 493$field.addClass('form-control-error'); 494$error.text(message); 495var errorElement = $error[0]; 496if(errorElement) 497{ 498errorElement.removeAttribute('style'); 499errorElement.style.display = 'block'; 500errorElement.style.marginTop = '5px'; 501} 502} 503function clearFieldError(fieldId) 504{ 505$('#' + fieldId).removeClass('form-control-error'); 506var $error = $('#' + fieldId + 'Error'); 507$error.hide(); 508$error.css('display', 'none'); 509} 510var isValidationInProgress = false; 511/** 512* @param {object} data 513* @param {boolean} fromOAuth è°·æåè·³åçç»å½é¡µï¼ç«ç¹å¨å½å页æå¼ï¼è¡¨åç»å½ä¸ºæ°æ ç¾æå¼ç«ç¹å¹¶è·³è½¬ locate 514*/ 515function handleLoginSuccess(data, fromOAuth) 516{ 517if(!data || data.result !== 'success') return; 518fromOAuth = !!fromOAuth; 519var siteContext = getSiteContext(); 520var userSite = siteContext.userSite || $.cookie('userSite'); 521var userMaxTrySite = siteContext.userMaxTrySite || $.cookie('userMaxTrySite'); 522var siteNumberRaw = siteContext.siteNumber; 523if(typeof v !== 'undefined') 524{ 525if((!userSite || userSite === 'null') && v.oauthUserSite) userSite = v.oauthUserSite; 526if((!userMaxTrySite || userMaxTrySite === 'null') && v.oauthUserMaxTrySite) userMaxTrySite = v.oauthUserMaxTrySite; 527if((siteNumberRaw === undefined || siteNumberRaw === null || siteNumberRaw === '') && v.oauthSiteNumber !== undefined && v.oauthSiteNumber !== null && v.oauthSiteNumber !== '') siteNumberRaw = String(v.oauthSiteNumber); 528} 529var siteNumber = parseInt(siteNumberRaw, 10); 530if(isNaN(siteNumber)) siteNumber = 0; 531if(data.locate == '/paas-open-premium') 532{ 533if(userMaxTrySite) 534{ 535var maxTrySiteID = siteContext.userMaxTrySiteID || $.cookie('userMaxTrySiteID'); 536if(typeof v !== 'undefined' && v.oauthUserMaxTrySiteID !== undefined && v.oauthUserMaxTrySiteID !== '' && (!maxTrySiteID || maxTrySiteID === '')) maxTrySiteID = v.oauthUserMaxTrySiteID; 537if(v.postLoginSiteUrl && maxTrySiteID) 538{ 539$.post(v.postLoginSiteUrl, {siteID: maxTrySiteID}, function(res) 540{ 541var url = (res.result == 'success' && res.locate) ? res.locate : userMaxTrySite; 542location.href = url; 543}, 'json').error(function() { location.href = userMaxTrySite; }); 544} 545else 546{ 547location.href = userMaxTrySite; 548} 549return; 550} 551} 552else if(data.locate == '/convert-loginImportFromJira') 553{ 554return location.href = data.locate; 555} 556else if(data.locate == '/paas-loginOpen') 557{ 558return location.href = data.locate; 559} 560else 561{ 562var buyArr = ['/license-buy-enterpriseYear-sanplex', '/license-buy-flagshipYear-sanplex', '/license-buy-enterpriseLife-sanplex', '/license-buy-flagshipLife-sanplex']; 563if($.inArray(data.locate, buyArr) !== -1) 564{ 565return location.href = data.locate; 566} 567if(siteNumber > 1) 568{ 569if(fromOAuth) 570{ 571location.href = '/paas-chooseSite'; 572return; 573} 574window.open('/paas-chooseSite', '_blank'); 575} 576else if(siteNumber == 1 && userSite) 577{ 578var siteID = siteContext.siteID || $.cookie('siteID'); 579if(typeof v !== 'undefined' && v.oauthSiteID && (!siteID || siteID === '')) siteID = v.oauthSiteID; 580if(v.postLoginSiteUrl && siteID) 581{ 582$.post(v.postLoginSiteUrl, {siteID: siteID}, function(res) 583{ 584var openUrl = (res.result == 'success' && res.locate) ? res.locate : userSite; 585if(fromOAuth) 586{ 587location.href = openUrl; 588} 589else 590{ 591window.open(openUrl, '_blank'); 592location.href = data.locate; 593} 594}, 'json').error(function() 595{ 596if(fromOAuth) 597{ 598location.href = userSite; 599} 600else 601{ 602window.open(userSite, '_blank'); 603location.href = data.locate; 604} 605}); 606return; 607} 608else 609{ 610if(fromOAuth) 611{ 612location.href = userSite; 613return; 614} 615window.open(userSite, '_blank'); 616} 617} 618} 619return location.href = data.locate; 620} 621function showFormError(text) 622{ 623var error = $('#formError').text(text); 624var parent = error.closest('.form-group'); 625if(parent.length) parent.show(); 626else error.show(); 627} 628jQuery(function($) 629{ 630if(typeof getFingerprint === 'function') 631{ 632var fp = getFingerprint(); 633if(fp && typeof fp.then === 'function') 634{ 635fp.then(function(result) { fingerprint = result; }); 636} 637} 638$('#account, #password').on('focus', function() 639{ 640if(!isValidationInProgress) 641{ 642clearFieldError($(this).attr('id')); 643} 644}); 645$('#submit').click(function(e) 646{ 647e.preventDefault(); 648var loginText = $(this).val(); 649var account = $('#account').val(); 650var password = $('#password').val(); 651var hasError = false;
652var firstErrorField = null; 653isValidationInProgress = true; 654clearFieldError('account'); 655clearFieldError('password'); 656if(!account || account.trim() === '') 657{ 658showFieldError('account', v.loginEmptyEmail); 659if(!firstErrorField) firstErrorField = $('#account'); 660hasError = true; 661} 662if(!password || password.trim() === '') 663{ 664showFieldError('password', v.loginEmptyPass); 665if(!firstErrorField) firstErrorField = $('#password'); 666hasError = true; 667} 668if(hasError) 669{ 670setTimeout(function() 671{ 672isValidationInProgress = false; 673if($('#accountError').length > 0 && $('#account').val().trim() === '') 674{ 675$('#accountError')[0].style.display = 'block'; 676} 677if($('#passwordError').length > 0 && $('#password').val().trim() === '') 678{ 679$('#passwordError')[0].style.display = 'block'; 680} 681}, 100); 682if(firstErrorField) firstErrorField.focus(); 683return false; 684} 685isValidationInProgress = false; 686$(this).val($(this).data('loading')); 687var reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/; 688var hasCaptcha = false; 689if(!reg.test(account)) password = md5(md5(md5(password) + account) + v.random); 690if($('.captcha').size() > 0) 691{ 692hasCaptcha = true; 693captchaInput = $('.captcha:last input:text').attr('id'); 694} 695loginURL = createLink('user', 'login'); 696postData = "account=" + account + '&password=' + encodeURIComponent(password) + '&referer=' + encodeURIComponent($('#referer').val()) + '&fingerprint=' + fingerprint + '&originPWD=' + password; 697if(hasCaptcha) postData += '&' + captchaInput + '=' + $('#' + captchaInput).val(); 698$.ajax( 699{ 700type: "POST", 701data: postData, 702url: loginURL, 703dataType:'json', 704success:function(data) 705{ 706$('#submit').val(loginText); 707if(data.result == 'success') 708{ 709getFingerprint().then(result => { 710recordDownloadEvent({ 711fingerprint: result, 712hrefText: 'loginSuccess' 713}); 714}); 715handleLoginSuccess(data, false); 716} 717if(data.result == 'fail') 718{ 719showFormError(data.message); 720} 721if(typeof(data) != 'object') showFormError(data); 722}, 723error:function(data) 724{ 725showFormError(data.responseText); 726$('#submit').val(loginText); 727} 728}); 729return false; 730}); 731/* OAuth login success: same redirect rules as AJAX login (after normal login cookies are set). */ 732if(typeof v !== 'undefined' && typeof v.oauthLocate !== 'undefined' && v.oauthLocate) 733{ 734try 735{ 736handleLoginSuccess({result: 'success', locate: v.oauthLocate}, true); 737} 738catch(ex) 739{ 740location.href = v.oauthLocate; 741} 742} 743$('#register').click(function() 744{ 745localStorage.setItem('signup', true); 746}); 747}); 748$(document).ready(function() 749{ 750$('.footwrap').parent().insertBefore('#footer'); 751if(typeof headerList != 'undefined') return false; 752headerList = true; 753$("#words").attr('placeholder','Search'); 754$(".search-but").click(function(){ 755// $(this).addClass('hidden'); 756$(this).siblings().toggleClass('active'); 757}); 758$('#searchbar .icon-close').click(function() 759{ 760$(this).parents('form').removeClass('active').siblings('.search-but').removeClass('hidden'); 761}); 762$("#reg #panel-pure #heading-title").text('Register'); 763$("#login #login-region .panel-heading span").text('Login'); 764$(".m-user-login .page-wrapper").before(`<div class="banner-wrap"><div class="banner"><h3>Welcome to login</h3></div></div>`); 765$(".m-user-register .page-wrapper").before(`<div class="banner-wrap"><div class="banner"><h3>Welcome to register</h3></div></div>`); 766$(".m-extension .page-wrapper").before(`<div class="banner-wrap"><div class="banner"><h3>Extension</h3></div></div>`); 767if(location.pathname.includes('download')) 768{ 769$('.article table a').click(function(e) 770{ 771e.preventDefault(); 772if($(this).attr('href').includes('dl')) 773{ 774location.href = "/page/downloadComplete"; 775sessionStorage.setItem('downloadUrl', $(this).attr('href')); 776} 777}) 778} 779if(!location.href.includes('/page')) $('.navbar-nav li').removeClass('active'); 780}); 781// $(function(){ 782// window.Intercom('boot', { 783// app_id: "buxeg11n", 784// bottom: 80, 785// right: 26, 786// }); 787// }); 788if(screen.width > 767){ 789$("#navbar .dropdown").mouseover(function(e){ 790$(this).addClass('open'); 791}); 792$("#navbar .dropdown").mouseout(function(e) { 793$(this).removeClass('open'); 794}); 795} 796function getCaptcha($ele) 797{ 798$.get(createLink('guarder', 'getCaptcha'), function(response) 799{ 800if(response.result == 'success') 801{ 802$ele.html(response.captchaContent); 803} 804}) 805} 806$('#captchaBox').on('click', '.img-wrapper', function() 807{ 808getCaptcha($(this)); 809}); 810function recordDownloadEvent(data) 811{ 812$.post(createLink('download', 'event'), data); 813} 814$('.trial').click(function() 815{ 816getFingerprint().then(result => { 817recordDownloadEvent({ 818fingerprint: result, 819hrefText: 'Try for free' 820}); 821}); 822}); 823$('.signin').click(function() 824{ 825localStorage.setItem('signin', true); 826getFingerprint().then(result => { 827recordDownloadEvent({ 828fingerprint: result, 829hrefText: 'click to login' 830}); 831}); 832}); 833</script>
vendor: 1 bytes, line 833
833
834<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"22c4b4112fd84d809ba2cb3c050851ee","r":1,"spa":2}' crossorigin="anonymous"></script>
834 835</body> 836</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.