|
|
@@ -20,252 +20,508 @@
|
|
|
min-height: 100vh;
|
|
|
max-height: 100vh;
|
|
|
overflow: hidden;
|
|
|
- background-color: #020b1e;
|
|
|
- background-image: url('https://a-7in6-com.oss-cn-hangzhou.aliyuncs.com/xinhua/img/login1.png?v={$site.version|default='1.0.1'|htmlentities}');
|
|
|
+ background: #eef2f8;
|
|
|
+ color: #1f2937;
|
|
|
+ font-family: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", sans-serif;
|
|
|
+ display: flex;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* ========== 左侧(背景图 / 插画图后续替换下方 url) ========== */
|
|
|
+ .login-brand {
|
|
|
+ position: relative;
|
|
|
+ z-index: 1;
|
|
|
+ flex: 1 1 68%;
|
|
|
+ min-width: 0;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ color: #fff;
|
|
|
+ /* 背景图 bj.png */
|
|
|
+ background-color: #1a3a6e;
|
|
|
+ background-image: url('https://a-7in6-com.oss-cn-hangzhou.aliyuncs.com/xinhua/img/bj.png?v={$site.version|default='1.0.1'|htmlentities}');
|
|
|
background-repeat: no-repeat;
|
|
|
background-position: center center;
|
|
|
- background-size: 100% 100%;
|
|
|
- color: #fff;
|
|
|
- font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
|
|
|
+ background-size: cover;
|
|
|
+ padding: clamp(28px, 4vh, 48px) clamp(28px, 4vw, 56px) clamp(20px, 3vh, 36px);
|
|
|
+ }
|
|
|
+
|
|
|
+ .login-brand::before {
|
|
|
+ content: "";
|
|
|
+ position: absolute;
|
|
|
+ inset: 0;
|
|
|
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.03) 48%, rgba(15, 35, 70, 0.08) 100%);
|
|
|
+ pointer-events: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 中间内容:图标标题在上,插画在下(参考图二) */
|
|
|
+ .login-brand-stage {
|
|
|
position: relative;
|
|
|
+ z-index: 2;
|
|
|
+ flex: 1 1 auto;
|
|
|
+ min-height: 0;
|
|
|
+ width: 100%;
|
|
|
+ max-width: 720px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ gap: 14px;
|
|
|
+ margin: 8px 0;
|
|
|
}
|
|
|
|
|
|
- .login-top {
|
|
|
+ .login-brand-header {
|
|
|
position: relative;
|
|
|
z-index: 2;
|
|
|
- padding: 12px 20px 0;
|
|
|
- text-align: center;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ text-align: left;
|
|
|
+ gap: 16px;
|
|
|
}
|
|
|
|
|
|
- .login-top-brand {
|
|
|
- display: inline-block;
|
|
|
- margin: 0 auto;
|
|
|
- width: min(460px, 58vw);
|
|
|
+ .login-brand-logo {
|
|
|
+ flex: 0 0 auto;
|
|
|
+ width: 64px;
|
|
|
height: 64px;
|
|
|
- background: url('https://a-7in6-com.oss-cn-hangzhou.aliyuncs.com/xinhua/img/login4.png?v={$site.version|default='1.0.1'|htmlentities}') no-repeat center center;
|
|
|
- background-size: contain;
|
|
|
+ border-radius: 14px;
|
|
|
+ background: transparent;
|
|
|
+ box-shadow: none;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ overflow: hidden;
|
|
|
+ }
|
|
|
+
|
|
|
+ .login-brand-logo img {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ object-fit: contain;
|
|
|
+ }
|
|
|
+
|
|
|
+ .login-brand-text {
|
|
|
+ min-width: 0;
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
+
|
|
|
+ .login-brand-title {
|
|
|
+ margin: 0 0 6px;
|
|
|
+ font-size: clamp(24px, 2.6vw, 34px);
|
|
|
+ font-weight: 700;
|
|
|
+ letter-spacing: 3px;
|
|
|
+ line-height: 1.25;
|
|
|
+ }
|
|
|
+
|
|
|
+ .login-brand-sub {
|
|
|
+ margin: 0;
|
|
|
+ font-size: 12px;
|
|
|
+ letter-spacing: 3px;
|
|
|
+ color: rgba(210, 228, 255, 0.72);
|
|
|
+ text-transform: uppercase;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 插画区域 ch.png:缩小并放在标题下方 */
|
|
|
+ .login-brand-illust {
|
|
|
+ position: relative;
|
|
|
+ z-index: 1;
|
|
|
+ flex: 0 1 auto;
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ }
|
|
|
+
|
|
|
+ .login-brand-illust img {
|
|
|
+ display: block;
|
|
|
+ max-width: min(360px, 46%);
|
|
|
+ max-height: min(26vh, 240px);
|
|
|
+ width: auto;
|
|
|
+ height: auto;
|
|
|
+ object-fit: contain;
|
|
|
pointer-events: none;
|
|
|
user-select: none;
|
|
|
+ opacity: 0.96;
|
|
|
}
|
|
|
|
|
|
- .login-main {
|
|
|
+ .login-brand-features {
|
|
|
position: relative;
|
|
|
z-index: 2;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
- gap: clamp(16px, 2.5vw, 40px);
|
|
|
- width: 100%;
|
|
|
- max-width: 1760px;
|
|
|
- margin: 0 auto;
|
|
|
- min-height: calc(100vh - 76px);
|
|
|
- max-height: calc(100vh - 76px);
|
|
|
- padding: 0 clamp(32px, 4vw, 72px) 48px;
|
|
|
- overflow: hidden;
|
|
|
+ justify-content: center;
|
|
|
+ gap: 0;
|
|
|
+ margin: 6px 0 0;
|
|
|
+ padding: 0;
|
|
|
+ list-style: none;
|
|
|
+ flex-shrink: 0;
|
|
|
}
|
|
|
|
|
|
- .login-visual {
|
|
|
- flex: 1 1 auto;
|
|
|
- min-width: 0;
|
|
|
+ .login-brand-features li {
|
|
|
display: flex;
|
|
|
+ flex-direction: row;
|
|
|
align-items: center;
|
|
|
- justify-content: flex-start;
|
|
|
- overflow: hidden;
|
|
|
+ gap: 10px;
|
|
|
+ min-width: 0;
|
|
|
+ padding: 0 22px;
|
|
|
+ font-size: 13px;
|
|
|
+ color: rgba(235, 244, 255, 0.92);
|
|
|
+ position: relative;
|
|
|
+ white-space: nowrap;
|
|
|
}
|
|
|
|
|
|
- /* 左图:login2 画布留白多,用 cover 放大裁切;login3 可改 login-visual-art--fit-contain */
|
|
|
- .login-visual-art {
|
|
|
- display: block;
|
|
|
+ .login-brand-features li + li::before {
|
|
|
+ content: "";
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ top: 50%;
|
|
|
+ transform: translateY(-50%);
|
|
|
+ width: 1px;
|
|
|
+ height: 22px;
|
|
|
+ background: rgba(180, 210, 255, 0.28);
|
|
|
+ }
|
|
|
+
|
|
|
+ .login-brand-features .feat-icon {
|
|
|
+ width: 30px;
|
|
|
+ height: 30px;
|
|
|
+ border-radius: 50%;
|
|
|
+ background: rgba(255, 255, 255, 0.1);
|
|
|
+ border: 1px solid rgba(210, 228, 255, 0.35);
|
|
|
+ display: inline-flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ color: #eef4ff;
|
|
|
+ font-size: 13px;
|
|
|
flex-shrink: 0;
|
|
|
- height: calc(100vh - 105px);
|
|
|
- max-height: calc(100vh - 105px);
|
|
|
- width: min(calc((100vh - 105px) * 16 / 9), calc(100vw - 500px));
|
|
|
- min-width: 360px;
|
|
|
- min-height: 260px;
|
|
|
- object-fit: cover;
|
|
|
- object-position: center center;
|
|
|
- pointer-events: none;
|
|
|
- user-select: none;
|
|
|
}
|
|
|
|
|
|
- .login-visual-art.login-visual-art--fit-contain {
|
|
|
- object-fit: contain;
|
|
|
+ .login-brand-footer {
|
|
|
+ position: relative;
|
|
|
+ z-index: 2;
|
|
|
+ text-align: center;
|
|
|
+ font-size: 12px;
|
|
|
+ color: rgba(235, 244, 255, 0.72);
|
|
|
}
|
|
|
|
|
|
- .login-panel {
|
|
|
- flex: 0 0 auto;
|
|
|
- width: 100%;
|
|
|
- max-width: 400px;
|
|
|
- min-width: 300px;
|
|
|
- margin-left: 0;
|
|
|
- margin-right: clamp(24px, 4vw, 64px);
|
|
|
- padding: 0;
|
|
|
- align-self: center;
|
|
|
- transform: translateY(0);
|
|
|
+ .login-brand-footer a {
|
|
|
+ color: rgba(220, 235, 255, 0.58);
|
|
|
}
|
|
|
|
|
|
- .login-panel-head {
|
|
|
+ .login-brand-footer a:hover {
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* ========== 右侧登录(按设计稿红框区域) ========== */
|
|
|
+ body.login-page .login-side {
|
|
|
+ position: relative;
|
|
|
+ z-index: 2;
|
|
|
+ flex: 0 0 40% !important;
|
|
|
+ width: 40% !important;
|
|
|
+ min-width: 380px !important;
|
|
|
+ max-width: 500px !important;
|
|
|
+ height: 100vh !important;
|
|
|
+ background: linear-gradient(180deg, #f8fbff 0%, #f1f5fb 100%) !important;
|
|
|
+ display: flex !important;
|
|
|
+ flex-direction: column !important;
|
|
|
+ justify-content: stretch !important;
|
|
|
+ align-items: stretch !important;
|
|
|
+ padding: 0 48px !important;
|
|
|
+ margin: 0 !important;
|
|
|
+ box-shadow: -4px 0 24px rgba(15, 23, 42, 0.06);
|
|
|
+ border-left: 1px solid #e2e8f0;
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page .login-side-main {
|
|
|
width: 100%;
|
|
|
+ max-width: 340px;
|
|
|
+ margin: 0 auto;
|
|
|
+ flex: 1 1 auto;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-content: center;
|
|
|
+ padding: 64px 0 28px;
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page .login-side-head {
|
|
|
+ margin-bottom: 36px;
|
|
|
+ margin-top: 12px;
|
|
|
text-align: center;
|
|
|
}
|
|
|
|
|
|
- .login-sys-title {
|
|
|
- display: block;
|
|
|
- width: 86%;
|
|
|
- height: 32px;
|
|
|
- margin: 0 auto;
|
|
|
- background: url('https://a-7in6-com.oss-cn-hangzhou.aliyuncs.com/xinhua/img/login5.png?v={$site.version|default='1.0.1'|htmlentities}') no-repeat center center;
|
|
|
- background-size: contain;
|
|
|
- pointer-events: none;
|
|
|
- user-select: none;
|
|
|
+ body.login-page .login-side-head h1 {
|
|
|
+ margin: 0 0 10px;
|
|
|
+ font-size: 32px !important;
|
|
|
+ font-weight: 700 !important;
|
|
|
+ color: #111827 !important;
|
|
|
+ letter-spacing: 0.5px;
|
|
|
+ line-height: 1.25;
|
|
|
+ text-align: center;
|
|
|
}
|
|
|
|
|
|
- .login-panel-body {
|
|
|
- margin-top: 28px;
|
|
|
+ body.login-page .login-side-head p {
|
|
|
+ margin: 0;
|
|
|
+ font-size: 13px !important;
|
|
|
+ color: #9ca3af !important;
|
|
|
+ line-height: 1.6;
|
|
|
+ text-align: center;
|
|
|
}
|
|
|
|
|
|
- .login-divider-wrap {
|
|
|
+ body.login-page #login-form {
|
|
|
width: 100%;
|
|
|
- height: 15px;
|
|
|
margin: 0;
|
|
|
- background: url('https://a-7in6-com.oss-cn-hangzhou.aliyuncs.com/xinhua/img/login6.png?v={$site.version|default='1.0.1'|htmlentities}') no-repeat center 54%;
|
|
|
- background-size: 100% auto;
|
|
|
+ padding: 0;
|
|
|
+ background: transparent !important;
|
|
|
+ box-shadow: none !important;
|
|
|
+ border: none !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page #login-form .login-field {
|
|
|
+ margin-bottom: 18px;
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page #login-form .login-field-label {
|
|
|
+ display: block;
|
|
|
+ margin: 0 0 8px;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 500;
|
|
|
+ color: #111827;
|
|
|
+ line-height: 1.2;
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page #login-form .login-input {
|
|
|
+ position: relative;
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page #login-form .login-input-icon {
|
|
|
+ position: absolute;
|
|
|
+ left: 12px;
|
|
|
+ top: 50%;
|
|
|
+ transform: translateY(-50%);
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
pointer-events: none;
|
|
|
- user-select: none;
|
|
|
+ z-index: 2;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
}
|
|
|
|
|
|
- .login-panel-box {
|
|
|
- margin-top: -11px;
|
|
|
- border-top: none;
|
|
|
- background: rgba(36, 98, 168, 0.34);
|
|
|
- border: 1px solid rgba(120, 195, 255, 0.42);
|
|
|
- box-shadow: 0 8px 32px rgba(8, 40, 90, 0.22), inset 0 0 24px rgba(120, 190, 255, 0.08);
|
|
|
- backdrop-filter: blur(10px);
|
|
|
- -webkit-backdrop-filter: blur(10px);
|
|
|
- padding: 29px 24px 40px;
|
|
|
+ body.login-page #login-form .login-input-icon img {
|
|
|
+ display: block;
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+ object-fit: contain;
|
|
|
}
|
|
|
|
|
|
- .login-form-title {
|
|
|
- margin: 0 0 18px;
|
|
|
- text-align: center;
|
|
|
- font-size: 18px;
|
|
|
- font-weight: 600;
|
|
|
- letter-spacing: 3px;
|
|
|
- color: #f0f7ff;
|
|
|
+ body.login-page #login-form .form-control {
|
|
|
+ height: 40px !important;
|
|
|
+ border: 1px solid #e5e7eb !important;
|
|
|
+ border-radius: 8px !important;
|
|
|
+ box-shadow: none !important;
|
|
|
+ font-size: 13px !important;
|
|
|
+ color: #111827 !important;
|
|
|
+ background: #ffffff !important;
|
|
|
+ padding: 8px 14px 8px 36px !important;
|
|
|
+ transition: border-color .2s ease, box-shadow .2s ease;
|
|
|
}
|
|
|
|
|
|
- #login-form {
|
|
|
- width: 100%;
|
|
|
+ body.login-page #login-form .login-password-wrap .form-control {
|
|
|
+ padding-right: 40px !important;
|
|
|
}
|
|
|
|
|
|
- #login-form .input-group {
|
|
|
- margin-bottom: 14px;
|
|
|
- width: 100%;
|
|
|
- background: rgba(72, 145, 215, 0.38);
|
|
|
- border-radius: 0;
|
|
|
- overflow: hidden;
|
|
|
- border: 1px solid rgba(150, 210, 255, 0.32);
|
|
|
- backdrop-filter: blur(6px);
|
|
|
- -webkit-backdrop-filter: blur(6px);
|
|
|
+ body.login-page #login-form .form-control:hover {
|
|
|
+ border-color: #d1d5db !important;
|
|
|
}
|
|
|
|
|
|
- #login-form .input-group-addon {
|
|
|
- background: transparent;
|
|
|
- border: none;
|
|
|
- color: rgba(215, 235, 255, 0.88);
|
|
|
- padding: 0 12px;
|
|
|
- min-width: 42px;
|
|
|
- text-align: center;
|
|
|
+ body.login-page #login-form .form-control:focus {
|
|
|
+ border-color: #818cf8 !important;
|
|
|
+ box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12) !important;
|
|
|
+ background: #ffffff !important;
|
|
|
+ outline: none !important;
|
|
|
}
|
|
|
|
|
|
- #login-form .input-group-addon .glyphicon {
|
|
|
- font-size: 16px;
|
|
|
- top: 0;
|
|
|
+ body.login-page #login-form .form-control::placeholder {
|
|
|
+ color: #c0c6d0 !important;
|
|
|
}
|
|
|
|
|
|
- #login-form .form-control {
|
|
|
- height: 42px;
|
|
|
+ body.login-page #login-form .btn-toggle-password {
|
|
|
+ position: absolute;
|
|
|
+ right: 10px;
|
|
|
+ top: 50%;
|
|
|
+ transform: translateY(-50%);
|
|
|
border: none;
|
|
|
- box-shadow: none;
|
|
|
- font-size: 14px;
|
|
|
- color: #f2f8ff;
|
|
|
background: transparent;
|
|
|
+ padding: 2px;
|
|
|
+ cursor: pointer;
|
|
|
+ line-height: 1;
|
|
|
+ z-index: 2;
|
|
|
+ width: 24px;
|
|
|
+ height: 24px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
}
|
|
|
|
|
|
- #login-form .form-control:focus {
|
|
|
- box-shadow: none;
|
|
|
- background: rgba(255, 255, 255, 0.06);
|
|
|
+ body.login-page #login-form .btn-toggle-password img {
|
|
|
+ display: block;
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+ object-fit: contain;
|
|
|
}
|
|
|
|
|
|
- #login-form .form-control::placeholder {
|
|
|
- color: rgba(200, 225, 250, 0.72);
|
|
|
+ body.login-page #login-form .btn-toggle-password:hover {
|
|
|
+ opacity: 0.8;
|
|
|
}
|
|
|
|
|
|
- #login-form .input-group .input-group-addon:last-child {
|
|
|
- padding: 0;
|
|
|
- border: none;
|
|
|
+ body.login-page #login-form .login-captcha-row {
|
|
|
+ display: flex;
|
|
|
+ gap: 10px;
|
|
|
+ align-items: stretch;
|
|
|
}
|
|
|
|
|
|
- #login-form .btn-login-submit {
|
|
|
- margin-top: 6px;
|
|
|
- height: 44px;
|
|
|
- width: 100%;
|
|
|
- border: none;
|
|
|
- border-radius: 0;
|
|
|
- background: linear-gradient(180deg, #45a8ff 0%, #1a72ea 100%);
|
|
|
- color: #fff;
|
|
|
- font-size: 16px;
|
|
|
- font-weight: 600;
|
|
|
- letter-spacing: 6px;
|
|
|
- box-shadow: 0 4px 12px rgba(26, 111, 232, 0.4);
|
|
|
+ body.login-page #login-form .login-captcha-row .login-input {
|
|
|
+ flex: 1 1 auto;
|
|
|
+ min-width: 0;
|
|
|
}
|
|
|
|
|
|
- #login-form .btn-login-submit:hover,
|
|
|
- #login-form .btn-login-submit:focus {
|
|
|
- background: linear-gradient(180deg, #52abff 0%, #2580f0 100%);
|
|
|
- color: #fff;
|
|
|
+ body.login-page #login-form .login-captcha-img {
|
|
|
+ flex: 0 0 auto;
|
|
|
+ height: 40px;
|
|
|
+ border-radius: 8px;
|
|
|
+ border: 1px solid #e5e7eb;
|
|
|
+ overflow: hidden;
|
|
|
+ background: #fff;
|
|
|
+ cursor: pointer;
|
|
|
}
|
|
|
|
|
|
- .login-form-links {
|
|
|
+ body.login-page #login-form .login-captcha-img img {
|
|
|
+ display: block;
|
|
|
+ height: 100%;
|
|
|
+ width: auto;
|
|
|
+ min-width: 110px;
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page .login-form-extra {
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
align-items: center;
|
|
|
- margin-top: 12px;
|
|
|
- padding: 0 4px;
|
|
|
- font-size: 12px;
|
|
|
+ margin: 4px 0 22px;
|
|
|
+ font-size: 13px;
|
|
|
}
|
|
|
|
|
|
- .login-form-links a {
|
|
|
- color: rgba(195, 218, 245, 0.85);
|
|
|
- text-decoration: none;
|
|
|
+ body.login-page .login-form-extra label {
|
|
|
+ margin: 0 !important;
|
|
|
+ font-weight: normal !important;
|
|
|
+ color: #6b7280 !important;
|
|
|
+ cursor: pointer;
|
|
|
+ display: inline-flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 8px;
|
|
|
+ user-select: none;
|
|
|
}
|
|
|
|
|
|
- .login-form-links a:hover {
|
|
|
- color: #fff;
|
|
|
- text-decoration: underline;
|
|
|
+ body.login-page .login-form-extra input[type="checkbox"] {
|
|
|
+ margin: 0;
|
|
|
+ width: 15px;
|
|
|
+ height: 15px;
|
|
|
+ accent-color: #4f46e5;
|
|
|
+ vertical-align: middle;
|
|
|
}
|
|
|
|
|
|
- .login-footer {
|
|
|
- position: absolute;
|
|
|
- left: 0;
|
|
|
- right: 0;
|
|
|
- bottom: 0;
|
|
|
- z-index: 2;
|
|
|
- padding: 14px 20px 18px;
|
|
|
+ body.login-page .login-form-extra .login-forgot {
|
|
|
+ color: #9ca3af !important;
|
|
|
+ text-decoration: none !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page .login-form-extra .login-forgot:hover {
|
|
|
+ color: #6b7280 !important;
|
|
|
+ text-decoration: underline !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page #login-form .form-group {
|
|
|
+ margin-bottom: 0 !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page #login-form .btn-login-submit {
|
|
|
+ height: 42px !important;
|
|
|
+ width: 100% !important;
|
|
|
+ border: none !important;
|
|
|
+ border-radius: 8px !important;
|
|
|
+ background: linear-gradient(90deg, #3b82f6 0%, #6366f1 45%, #8b5cf6 100%) !important;
|
|
|
+ color: #fff !important;
|
|
|
+ font-size: 16px !important;
|
|
|
+ font-weight: 600 !important;
|
|
|
+ letter-spacing: 3px;
|
|
|
+ box-shadow: 0 12px 28px rgba(99, 102, 241, 0.32) !important;
|
|
|
+ transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
|
|
|
+ display: inline-flex !important;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ gap: 10px;
|
|
|
+ text-shadow: none !important;
|
|
|
+ line-height: 1 !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page #login-form .btn-login-submit:hover,
|
|
|
+ body.login-page #login-form .btn-login-submit:focus {
|
|
|
+ color: #fff !important;
|
|
|
+ filter: brightness(1.05);
|
|
|
+ box-shadow: 0 14px 32px rgba(99, 102, 241, 0.4) !important;
|
|
|
+ transform: translateY(-1px);
|
|
|
+ background: linear-gradient(90deg, #3b82f6 0%, #6366f1 45%, #8b5cf6 100%) !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page #login-form .btn-login-submit:active {
|
|
|
+ transform: translateY(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page #errtips {
|
|
|
+ margin-bottom: 14px;
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page .login-side-register {
|
|
|
+ margin-top: 22px;
|
|
|
text-align: center;
|
|
|
font-size: 13px;
|
|
|
- color: rgba(220, 235, 255, 0.82);
|
|
|
}
|
|
|
|
|
|
- .login-footer a {
|
|
|
- color: rgba(220, 235, 255, 0.82);
|
|
|
+ body.login-page .login-side-register a {
|
|
|
+ color: #374151 !important;
|
|
|
+ text-decoration: none !important;
|
|
|
}
|
|
|
|
|
|
- .login-footer a:hover {
|
|
|
- color: #fff;
|
|
|
+ body.login-page .login-side-register a:hover {
|
|
|
+ color: #4f46e5 !important;
|
|
|
+ text-decoration: none !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page .login-side-company {
|
|
|
+ flex: 0 0 auto;
|
|
|
+ padding: 0 0 28px;
|
|
|
+ text-align: center;
|
|
|
+ font-size: 12px;
|
|
|
+ color: #9ca3af;
|
|
|
+ letter-spacing: 0.2px;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 覆盖 FastAdmin 默认灰色登录底 */
|
|
|
+ body.login-page {
|
|
|
+ background: #0a1630 !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page .wrapper,
|
|
|
+ body.login-page .content-wrapper,
|
|
|
+ body.login-page .login-box,
|
|
|
+ body.login-page .login-box-body {
|
|
|
+ background: transparent !important;
|
|
|
+ box-shadow: none !important;
|
|
|
+ margin: 0 !important;
|
|
|
+ padding: 0 !important;
|
|
|
+ width: auto !important;
|
|
|
}
|
|
|
|
|
|
- @media (max-width: 1100px) {
|
|
|
+ @media (max-width: 960px) {
|
|
|
html, body {
|
|
|
overflow-x: hidden;
|
|
|
overflow-y: auto;
|
|
|
@@ -275,58 +531,63 @@
|
|
|
height: auto;
|
|
|
min-height: 100vh;
|
|
|
max-height: none;
|
|
|
+ flex-direction: column;
|
|
|
overflow-x: hidden;
|
|
|
overflow-y: auto;
|
|
|
}
|
|
|
|
|
|
- .login-main {
|
|
|
- flex-direction: column;
|
|
|
- justify-content: flex-start;
|
|
|
- align-items: center;
|
|
|
- padding: 16px 24px 96px;
|
|
|
- min-height: auto;
|
|
|
- max-height: none;
|
|
|
- overflow: visible;
|
|
|
+ .login-brand {
|
|
|
+ flex: 0 0 auto;
|
|
|
+ min-height: 40vh;
|
|
|
+ padding: 24px 20px 16px;
|
|
|
}
|
|
|
|
|
|
- .login-visual {
|
|
|
- flex: 0 0 auto;
|
|
|
- width: 100%;
|
|
|
- justify-content: center;
|
|
|
- overflow: visible;
|
|
|
+ .login-brand-illust {
|
|
|
+ min-height: 110px;
|
|
|
}
|
|
|
|
|
|
- .login-visual-art {
|
|
|
- width: 100%;
|
|
|
- max-width: 900px;
|
|
|
- height: auto;
|
|
|
- aspect-ratio: 16 / 9;
|
|
|
- min-height: 280px;
|
|
|
- max-height: none;
|
|
|
- margin: 0 auto;
|
|
|
- object-fit: cover;
|
|
|
- object-position: center center;
|
|
|
+ .login-brand-illust img {
|
|
|
+ max-width: min(280px, 72%);
|
|
|
+ max-height: 180px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .login-brand-features li {
|
|
|
+ min-width: 88px;
|
|
|
+ padding: 0 14px;
|
|
|
+ font-size: 12px;
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page .login-side {
|
|
|
+ flex: 1 1 auto !important;
|
|
|
+ width: 100% !important;
|
|
|
+ max-width: none !important;
|
|
|
+ min-width: 0 !important;
|
|
|
+ height: auto !important;
|
|
|
+ min-height: 60vh;
|
|
|
+ padding: 0 24px !important;
|
|
|
+ border-radius: 20px 20px 0 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ body.login-page .login-side-main {
|
|
|
+ padding: 36px 0 20px;
|
|
|
}
|
|
|
|
|
|
- .login-panel {
|
|
|
- max-width: 460px;
|
|
|
- margin-left: 0;
|
|
|
- margin-right: 0;
|
|
|
- transform: none;
|
|
|
+ body.login-page .login-side-company {
|
|
|
+ padding-bottom: 24px;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@media (max-width: 480px) {
|
|
|
- .login-top {
|
|
|
- padding-top: 16px;
|
|
|
+ .login-brand-features {
|
|
|
+ display: none;
|
|
|
}
|
|
|
|
|
|
- .login-panel-box {
|
|
|
- padding: 22px 18px 18px;
|
|
|
+ .login-side {
|
|
|
+ padding: 28px 18px 24px;
|
|
|
}
|
|
|
|
|
|
- .login-form-title {
|
|
|
- font-size: 18px;
|
|
|
+ .login-side-head h1 {
|
|
|
+ font-size: 24px;
|
|
|
}
|
|
|
}
|
|
|
</style>
|
|
|
@@ -336,82 +597,200 @@
|
|
|
e.preventDefault();
|
|
|
}
|
|
|
}, {passive: false});
|
|
|
-
|
|
|
- document.addEventListener('gesturestart', function (e) {
|
|
|
- e.preventDefault();
|
|
|
- });
|
|
|
- document.addEventListener('gesturechange', function (e) {
|
|
|
- e.preventDefault();
|
|
|
- });
|
|
|
- document.addEventListener('gestureend', function (e) {
|
|
|
- e.preventDefault();
|
|
|
- });
|
|
|
+ document.addEventListener('gesturestart', function (e) { e.preventDefault(); });
|
|
|
+ document.addEventListener('gesturechange', function (e) { e.preventDefault(); });
|
|
|
+ document.addEventListener('gestureend', function (e) { e.preventDefault(); });
|
|
|
</script>
|
|
|
</head>
|
|
|
<body class="login-page">
|
|
|
-<header class="login-top">
|
|
|
- <div class="login-top-brand" role="img" aria-label="浙江新华数码印务有限公司"></div>
|
|
|
-</header>
|
|
|
-
|
|
|
-<main class="login-main">
|
|
|
- <div class="login-visual">
|
|
|
- <img class="login-visual-art" src="https://a-7in6-com.oss-cn-hangzhou.aliyuncs.com/xinhua/img/login2.png?v={$site.version|default='1.0.1'|htmlentities}" alt=""/>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="login-panel">
|
|
|
- <div class="login-panel-head">
|
|
|
- <div class="login-sys-title" role="img" aria-label="大数据协同系统"></div>
|
|
|
+ <section class="login-brand">
|
|
|
+ <div class="login-brand-stage">
|
|
|
+ <div class="login-brand-header">
|
|
|
+ <div class="login-brand-logo">
|
|
|
+ <img src="https://a-7in6-com.oss-cn-hangzhou.aliyuncs.com/xinhua/img/tb.png?v={$site.version|default='1.0.1'|htmlentities}" alt="大数据协同系统"/>
|
|
|
+ </div>
|
|
|
+ <div class="login-brand-text">
|
|
|
+ <h2 class="login-brand-title">大数据协同系统</h2>
|
|
|
+ <p class="login-brand-sub">Big Data Collaborative System</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="login-brand-illust">
|
|
|
+ <img src="https://a-7in6-com.oss-cn-hangzhou.aliyuncs.com/xinhua/img/ch.png?v={$site.version|default='1.0.1'|htmlentities}" alt=""/>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <ul class="login-brand-features">
|
|
|
+ <li>
|
|
|
+ <span class="feat-icon"><i class="glyphicon glyphicon-dashboard"></i></span>
|
|
|
+ <span>数据看板</span>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ <span class="feat-icon"><i class="glyphicon glyphicon-time"></i></span>
|
|
|
+ <span>流程管控</span>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ <span class="feat-icon"><i class="glyphicon glyphicon-cog"></i></span>
|
|
|
+ <span>生产协同</span>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="login-brand-footer">
|
|
|
+ Copyright @ 杭州可集达科技有限公司 2026-{:date('Y',time())} 版权所有
|
|
|
+ {if $site.beian}<a href="https://beian.miit.gov.cn" target="_blank"> {$site.beian|htmlentities}</a>{/if}
|
|
|
</div>
|
|
|
+ </section>
|
|
|
|
|
|
- <div class="login-panel-body">
|
|
|
- <div class="login-divider-wrap" aria-hidden="true"></div>
|
|
|
+ <aside class="login-side">
|
|
|
+ <div class="login-side-main">
|
|
|
+ <div class="login-side-head">
|
|
|
+ <h1>欢迎回来</h1>
|
|
|
+ <p>请输入账户登录大数据协同平台</p>
|
|
|
+ </div>
|
|
|
|
|
|
- <div class="login-panel-box">
|
|
|
- <h2 class="login-form-title">用户登录</h2>
|
|
|
<form action="" method="post" id="login-form">
|
|
|
<!--@AdminLoginFormBegin-->
|
|
|
<div id="errtips" class="hide"></div>
|
|
|
{:token()}
|
|
|
- <div class="input-group">
|
|
|
- <div class="input-group-addon">
|
|
|
- <span class="glyphicon glyphicon-user" aria-hidden="true"></span>
|
|
|
+
|
|
|
+ <div class="login-field">
|
|
|
+ <div class="login-input">
|
|
|
+ <span class="login-input-icon">
|
|
|
+ <img src="https://a-7in6-com.oss-cn-hangzhou.aliyuncs.com/xinhua/img/5.png?v={$site.version|default='1.0.1'|htmlentities}" alt=""/>
|
|
|
+ </span>
|
|
|
+ <input type="text" class="form-control" id="pd-form-username" placeholder="请输入账号" name="username" autocomplete="username" value="" data-rule="{:__('Username')}:required;username"/>
|
|
|
</div>
|
|
|
- <input type="text" class="form-control" id="pd-form-username" placeholder="请输入用户名" name="username" autocomplete="off" value="" data-rule="{:__('Username')}:required;username"/>
|
|
|
</div>
|
|
|
|
|
|
- <div class="input-group">
|
|
|
- <div class="input-group-addon">
|
|
|
- <span class="glyphicon glyphicon-lock" aria-hidden="true"></span>
|
|
|
+ <div class="login-field">
|
|
|
+ <div class="login-input login-password-wrap">
|
|
|
+ <span class="login-input-icon">
|
|
|
+ <img src="https://a-7in6-com.oss-cn-hangzhou.aliyuncs.com/xinhua/img/6.png?v={$site.version|default='1.0.1'|htmlentities}" alt=""/>
|
|
|
+ </span>
|
|
|
+ <input type="password" class="form-control" id="pd-form-password" placeholder="请输入密码" name="password" autocomplete="current-password" value="" data-rule="{:__('Password')}:required;length(4~30)"/>
|
|
|
+ <button type="button" class="btn-toggle-password" id="btn-toggle-password" title="显示/隐藏密码" aria-label="显示/隐藏密码"
|
|
|
+ data-eye-open="https://a-7in6-com.oss-cn-hangzhou.aliyuncs.com/xinhua/img/11.png?v={$site.version|default='1.0.1'|htmlentities}"
|
|
|
+ data-eye-close="https://a-7in6-com.oss-cn-hangzhou.aliyuncs.com/xinhua/img/10.png?v={$site.version|default='1.0.1'|htmlentities}">
|
|
|
+ <img src="https://a-7in6-com.oss-cn-hangzhou.aliyuncs.com/xinhua/img/11.png?v={$site.version|default='1.0.1'|htmlentities}" alt="显示密码"/>
|
|
|
+ </button>
|
|
|
</div>
|
|
|
- <input type="password" class="form-control" id="pd-form-password" placeholder="请输入登录密码" name="password" autocomplete="off" value="" data-rule="{:__('Password')}:required;length(4~30)"/>
|
|
|
</div>
|
|
|
|
|
|
{if $Think.config.fastadmin.login_captcha}
|
|
|
- <div class="input-group">
|
|
|
- <div class="input-group-addon">
|
|
|
- <span class="glyphicon glyphicon-option-horizontal" aria-hidden="true"></span>
|
|
|
+ <div class="login-field">
|
|
|
+ <div class="login-captcha-row">
|
|
|
+ <div class="login-input">
|
|
|
+ <span class="login-input-icon"><span class="glyphicon glyphicon-option-horizontal" aria-hidden="true"></span></span>
|
|
|
+ <input type="text" id="pd-form-captcha" name="captcha" class="form-control" placeholder="请输入验证码" data-rule="{:__('Captcha')}:required;length({$Think.config.captcha.length})" autocomplete="off"/>
|
|
|
+ </div>
|
|
|
+ <span class="login-captcha-img" title="点击刷新验证码">
|
|
|
+ <img src="{:rtrim('__PUBLIC__', '/')}/index.php?s=/captcha" height="40" alt="captcha" onclick="this.src = '{:rtrim('__PUBLIC__', '/')}/index.php?s=/captcha&r=' + Math.random();"/>
|
|
|
+ </span>
|
|
|
</div>
|
|
|
- <input type="text" name="captcha" class="form-control" placeholder="{:__('Captcha')}" data-rule="{:__('Captcha')}:required;length({$Think.config.captcha.length})" autocomplete="off"/>
|
|
|
- <span class="input-group-addon" style="cursor:pointer;">
|
|
|
- <img src="{:rtrim('__PUBLIC__', '/')}/index.php?s=/captcha" width="100" height="30" alt="captcha" onclick="this.src = '{:rtrim('__PUBLIC__', '/')}/index.php?s=/captcha&r=' + Math.random();"/>
|
|
|
- </span>
|
|
|
</div>
|
|
|
{/if}
|
|
|
|
|
|
+ <div class="login-form-extra">
|
|
|
+ <label>
|
|
|
+ <input type="checkbox" id="remember-password" name="rememberpwd" value="1"/>
|
|
|
+ 记住密码
|
|
|
+ </label>
|
|
|
+ <a href="javascript:;" class="login-forgot" onclick="Layer && Layer.msg ? Layer.msg('请联系管理员重置密码') : alert('请联系管理员重置密码'); return false;">忘记密码?</a>
|
|
|
+ </div>
|
|
|
+
|
|
|
<div class="form-group" style="margin-bottom:0;">
|
|
|
- <button type="submit" class="btn btn-login-submit btn-lg btn-block">登录</button>
|
|
|
+ <button type="submit" class="btn btn-login-submit btn-lg btn-block">
|
|
|
+ 登录
|
|
|
+ <span aria-hidden="true">→</span>
|
|
|
+ </button>
|
|
|
</div>
|
|
|
<!--@AdminLoginFormEnd-->
|
|
|
</form>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-</main>
|
|
|
|
|
|
-<footer class="login-footer">
|
|
|
- <p style="margin:0;">Copyright @ 杭州可集达科技有限公司 2026-{:date('Y',time())} 版权所有 <a href="https://beian.miit.gov.cn" target="_blank">{$site.beian|htmlentities}</a></p>
|
|
|
-</footer>
|
|
|
+ <div class="login-side-company">浙江新华数码印务有限公司</div>
|
|
|
+ </aside>
|
|
|
|
|
|
{include file="common/script" /}
|
|
|
+<script>
|
|
|
+(function () {
|
|
|
+ var REMEMBER_KEY = 'xh_admin_remember_pwd';
|
|
|
+
|
|
|
+ function loadRemember() {
|
|
|
+ var $user = document.getElementById('pd-form-username');
|
|
|
+ var $pass = document.getElementById('pd-form-password');
|
|
|
+ var $cb = document.getElementById('remember-password');
|
|
|
+ if (!$user || !$pass || !$cb) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ var raw = localStorage.getItem(REMEMBER_KEY);
|
|
|
+ if (!raw) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ var data = JSON.parse(raw);
|
|
|
+ if (data && data.username) {
|
|
|
+ $user.value = data.username;
|
|
|
+ }
|
|
|
+ if (data && data.password) {
|
|
|
+ $pass.value = data.password;
|
|
|
+ }
|
|
|
+ $cb.checked = true;
|
|
|
+ } catch (e) {
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ function saveRemember() {
|
|
|
+ var $user = document.getElementById('pd-form-username');
|
|
|
+ var $pass = document.getElementById('pd-form-password');
|
|
|
+ var $cb = document.getElementById('remember-password');
|
|
|
+ if (!$user || !$pass || !$cb) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if ($cb.checked) {
|
|
|
+ localStorage.setItem(REMEMBER_KEY, JSON.stringify({
|
|
|
+ username: $user.value || '',
|
|
|
+ password: $pass.value || ''
|
|
|
+ }));
|
|
|
+ } else {
|
|
|
+ localStorage.removeItem(REMEMBER_KEY);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ loadRemember();
|
|
|
+
|
|
|
+ var form = document.getElementById('login-form');
|
|
|
+ if (form) {
|
|
|
+ form.addEventListener('submit', function () {
|
|
|
+ saveRemember();
|
|
|
+ });
|
|
|
+ }
|
|
|
+ var cb = document.getElementById('remember-password');
|
|
|
+ if (cb) {
|
|
|
+ cb.addEventListener('change', function () {
|
|
|
+ if (!cb.checked) {
|
|
|
+ localStorage.removeItem(REMEMBER_KEY);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ var btn = document.getElementById('btn-toggle-password');
|
|
|
+ var input = document.getElementById('pd-form-password');
|
|
|
+ if (!btn || !input) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ var eyeOpen = btn.getAttribute('data-eye-open') || '';
|
|
|
+ var eyeClose = btn.getAttribute('data-eye-close') || '';
|
|
|
+ btn.addEventListener('click', function () {
|
|
|
+ var show = input.getAttribute('type') === 'password';
|
|
|
+ input.setAttribute('type', show ? 'text' : 'password');
|
|
|
+ var img = btn.querySelector('img');
|
|
|
+ if (img) {
|
|
|
+ img.src = show ? eyeClose : eyeOpen;
|
|
|
+ img.alt = show ? '隐藏密码' : '显示密码';
|
|
|
+ }
|
|
|
+ });
|
|
|
+})();
|
|
|
+</script>
|
|
|
</body>
|
|
|
</html>
|