|
@@ -141,6 +141,27 @@ export default {
|
|
|
--login-text-title: #52c8f2;
|
|
--login-text-title: #52c8f2;
|
|
|
--login-panel-bg: rgba(0, 12, 23, 0.88);
|
|
--login-panel-bg: rgba(0, 12, 23, 0.88);
|
|
|
--login-panel-border: rgba(0, 170, 255, 0.45);
|
|
--login-panel-border: rgba(0, 170, 255, 0.45);
|
|
|
|
|
+ --login-bg-tail: #000a18;
|
|
|
|
|
+ --login-grid-color: rgba(0, 170, 255, 0.05);
|
|
|
|
|
+ --login-glow-primary: rgba(24, 144, 255, 0.14);
|
|
|
|
|
+ --login-glow-secondary: rgba(0, 80, 160, 0.06);
|
|
|
|
|
+ --login-corner-border: rgba(0, 170, 255, 0.22);
|
|
|
|
|
+ --login-panel-shadow: 0 0 24px rgba(0, 120, 255, 0.18);
|
|
|
|
|
+ --login-panel-inset: inset 0 0 40px rgba(0, 40, 100, 0.12);
|
|
|
|
|
+ --login-title-shadow: 0 0 20px rgba(0, 170, 255, 0.25);
|
|
|
|
|
+ --login-divider-shadow: 0 0 8px rgba(0, 170, 255, 0.45);
|
|
|
|
|
+ // --login-input-bg: rgba(0, 12, 23, 0.95);
|
|
|
|
|
+ --login-placeholder: rgba(183, 223, 245, 0.38);
|
|
|
|
|
+ --login-input-focus-border: rgba(0, 170, 255, 0.75);
|
|
|
|
|
+ --login-input-focus-shadow: 0 0 0 1px rgba(0, 170, 255, 0.2);
|
|
|
|
|
+ --login-input-icon: rgba(0, 170, 255, 0.65);
|
|
|
|
|
+ --login-input-suffix-icon: rgba(0, 170, 255, 0.55);
|
|
|
|
|
+ --login-button-border: #177ddc;
|
|
|
|
|
+ --login-button-bg-start: #1d8cff;
|
|
|
|
|
+ --login-button-bg-end: #177ddc;
|
|
|
|
|
+ --login-button-hover-start: #40a9ff;
|
|
|
|
|
+ --login-button-hover-end: #1d8cff;
|
|
|
|
|
+ --login-button-shadow: 0 4px 14px rgba(24, 144, 255, 0.28);
|
|
|
|
|
|
|
|
position: relative;
|
|
position: relative;
|
|
|
width: 100vw;
|
|
width: 100vw;
|
|
@@ -153,7 +174,7 @@ export default {
|
|
|
155deg,
|
|
155deg,
|
|
|
var(--login-bg-deep) 0%,
|
|
var(--login-bg-deep) 0%,
|
|
|
var(--login-bg-mid) 42%,
|
|
var(--login-bg-mid) 42%,
|
|
|
- #000a18 100%
|
|
|
|
|
|
|
+ var(--login-bg-tail) 100%
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
&::before {
|
|
&::before {
|
|
@@ -161,10 +182,10 @@ export default {
|
|
|
position: absolute;
|
|
position: absolute;
|
|
|
inset: 0;
|
|
inset: 0;
|
|
|
background-image: linear-gradient(
|
|
background-image: linear-gradient(
|
|
|
- rgba(0, 170, 255, 0.05) 1px,
|
|
|
|
|
|
|
+ var(--login-grid-color) 1px,
|
|
|
transparent 1px
|
|
transparent 1px
|
|
|
),
|
|
),
|
|
|
- linear-gradient(90deg, rgba(0, 170, 255, 0.05) 1px, transparent 1px);
|
|
|
|
|
|
|
+ linear-gradient(90deg, var(--login-grid-color) 1px, transparent 1px);
|
|
|
background-size: 56px 56px;
|
|
background-size: 56px 56px;
|
|
|
mask-image: radial-gradient(
|
|
mask-image: radial-gradient(
|
|
|
ellipse 85% 75% at 50% 45%,
|
|
ellipse 85% 75% at 50% 45%,
|
|
@@ -184,8 +205,8 @@ export default {
|
|
|
transform: translate(-50%, -50%);
|
|
transform: translate(-50%, -50%);
|
|
|
background: radial-gradient(
|
|
background: radial-gradient(
|
|
|
circle,
|
|
circle,
|
|
|
- rgba(24, 144, 255, 0.14) 0%,
|
|
|
|
|
- rgba(0, 80, 160, 0.06) 42%,
|
|
|
|
|
|
|
+ var(--login-glow-primary) 0%,
|
|
|
|
|
+ var(--login-glow-secondary) 42%,
|
|
|
transparent 68%
|
|
transparent 68%
|
|
|
);
|
|
);
|
|
|
pointer-events: none;
|
|
pointer-events: none;
|
|
@@ -202,7 +223,7 @@ export default {
|
|
|
position: absolute;
|
|
position: absolute;
|
|
|
width: 120px;
|
|
width: 120px;
|
|
|
height: 120px;
|
|
height: 120px;
|
|
|
- border: 1px solid rgba(0, 170, 255, 0.22);
|
|
|
|
|
|
|
+ border: 1px solid var(--login-corner-border);
|
|
|
opacity: 0.85;
|
|
opacity: 0.85;
|
|
|
|
|
|
|
|
&--tl {
|
|
&--tl {
|
|
@@ -242,8 +263,7 @@ export default {
|
|
|
background: var(--login-panel-bg);
|
|
background: var(--login-panel-bg);
|
|
|
border: 1px solid var(--login-panel-border);
|
|
border: 1px solid var(--login-panel-border);
|
|
|
border-radius: 4px;
|
|
border-radius: 4px;
|
|
|
- box-shadow: 0 0 24px rgba(0, 120, 255, 0.18),
|
|
|
|
|
- inset 0 0 40px rgba(0, 40, 100, 0.12);
|
|
|
|
|
|
|
+ box-shadow: var(--login-panel-shadow), var(--login-panel-inset);
|
|
|
backdrop-filter: blur(8px);
|
|
backdrop-filter: blur(8px);
|
|
|
|
|
|
|
|
&::before,
|
|
&::before,
|
|
@@ -293,7 +313,7 @@ export default {
|
|
|
font-weight: 600;
|
|
font-weight: 600;
|
|
|
line-height: 1.45;
|
|
line-height: 1.45;
|
|
|
color: var(--login-text-title);
|
|
color: var(--login-text-title);
|
|
|
- text-shadow: 0 0 20px rgba(0, 170, 255, 0.25);
|
|
|
|
|
|
|
+ text-shadow: var(--login-title-shadow);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.login-panel__divider {
|
|
.login-panel__divider {
|
|
@@ -307,7 +327,7 @@ export default {
|
|
|
var(--login-accent) 80%,
|
|
var(--login-accent) 80%,
|
|
|
transparent
|
|
transparent
|
|
|
);
|
|
);
|
|
|
- box-shadow: 0 0 8px rgba(0, 170, 255, 0.45);
|
|
|
|
|
|
|
+ box-shadow: var(--login-divider-shadow);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.login-panel__body {
|
|
.login-panel__body {
|
|
@@ -326,28 +346,28 @@ export default {
|
|
|
::v-deep .el-input__inner {
|
|
::v-deep .el-input__inner {
|
|
|
height: 42px;
|
|
height: 42px;
|
|
|
line-height: 42px;
|
|
line-height: 42px;
|
|
|
- background-color: rgba(0, 12, 23, 0.95) !important;
|
|
|
|
|
|
|
+ background-color: var(--login-input-bg) !important;
|
|
|
border-color: var(--login-accent-soft) !important;
|
|
border-color: var(--login-accent-soft) !important;
|
|
|
color: var(--login-text) !important;
|
|
color: var(--login-text) !important;
|
|
|
border-radius: 4px;
|
|
border-radius: 4px;
|
|
|
transition: border-color 0.2s, box-shadow 0.2s;
|
|
transition: border-color 0.2s, box-shadow 0.2s;
|
|
|
|
|
|
|
|
&::placeholder {
|
|
&::placeholder {
|
|
|
- color: rgba(183, 223, 245, 0.38) !important;
|
|
|
|
|
|
|
+ color: var(--login-placeholder) !important;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
&:focus {
|
|
&:focus {
|
|
|
- border-color: rgba(0, 170, 255, 0.75) !important;
|
|
|
|
|
- box-shadow: 0 0 0 1px rgba(0, 170, 255, 0.2);
|
|
|
|
|
|
|
+ border-color: var(--login-input-focus-border) !important;
|
|
|
|
|
+ box-shadow: var(--login-input-focus-shadow);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
::v-deep .el-input__prefix {
|
|
::v-deep .el-input__prefix {
|
|
|
- color: rgba(0, 170, 255, 0.65);
|
|
|
|
|
|
|
+ color: var(--login-input-icon);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
::v-deep .el-input__suffix .el-input__icon {
|
|
::v-deep .el-input__suffix .el-input__icon {
|
|
|
- color: rgba(0, 170, 255, 0.55);
|
|
|
|
|
|
|
+ color: var(--login-input-suffix-icon);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -358,14 +378,86 @@ export default {
|
|
|
font-size: 15px;
|
|
font-size: 15px;
|
|
|
letter-spacing: 0.2em;
|
|
letter-spacing: 0.2em;
|
|
|
border-radius: 4px;
|
|
border-radius: 4px;
|
|
|
- border: 1px solid #177ddc !important;
|
|
|
|
|
- background: linear-gradient(180deg, #1d8cff 0%, #177ddc 100%) !important;
|
|
|
|
|
- box-shadow: 0 4px 14px rgba(24, 144, 255, 0.28);
|
|
|
|
|
|
|
+ border: 1px solid var(--login-button-border) !important;
|
|
|
|
|
+ background: linear-gradient(
|
|
|
|
|
+ 180deg,
|
|
|
|
|
+ var(--login-button-bg-start) 0%,
|
|
|
|
|
+ var(--login-button-bg-end) 100%
|
|
|
|
|
+ ) !important;
|
|
|
|
|
+ box-shadow: var(--login-button-shadow);
|
|
|
|
|
|
|
|
&:hover,
|
|
&:hover,
|
|
|
&:focus {
|
|
&:focus {
|
|
|
- background: linear-gradient(180deg, #40a9ff 0%, #1d8cff 100%) !important;
|
|
|
|
|
- border-color: #40a9ff !important;
|
|
|
|
|
|
|
+ background: linear-gradient(
|
|
|
|
|
+ 180deg,
|
|
|
|
|
+ var(--login-button-hover-start) 0%,
|
|
|
|
|
+ var(--login-button-hover-end) 100%
|
|
|
|
|
+ ) !important;
|
|
|
|
|
+ border-color: var(--login-button-hover-start) !important;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 非科技蓝主题采用业务登录页布局与背景图。 */
|
|
|
|
|
+html:not([data-theme="tech-blue"]) .login-page {
|
|
|
|
|
+ --login-accent: var(--primary-color, #008080);
|
|
|
|
|
+ --login-accent-soft: #dcdfe6;
|
|
|
|
|
+ --login-text: var(--text-cyan, #303133);
|
|
|
|
|
+ --login-text-title: var(--primary-color, #008080);
|
|
|
|
|
+ --login-panel-bg: rgba(255, 255, 255, 0.94);
|
|
|
|
|
+ --login-panel-border: rgba(0, 128, 128, 0.3);
|
|
|
|
|
+ --login-grid-color: rgba(0, 128, 128, 0.06);
|
|
|
|
|
+ --login-glow-primary: rgba(0, 128, 128, 0.12);
|
|
|
|
|
+ --login-glow-secondary: rgba(0, 128, 128, 0.04);
|
|
|
|
|
+ --login-corner-border: rgba(0, 128, 128, 0.22);
|
|
|
|
|
+ --login-panel-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
|
|
|
|
|
+ --login-panel-inset: inset 0 0 0 transparent;
|
|
|
|
|
+ --login-title-shadow: none;
|
|
|
|
|
+ --login-divider-shadow: none;
|
|
|
|
|
+ --login-input-bg: #ffffff;
|
|
|
|
|
+ --login-placeholder: #909399;
|
|
|
|
|
+ --login-input-focus-border: var(--primary-color, #008080);
|
|
|
|
|
+ --login-input-focus-shadow: 0 0 0 1px
|
|
|
|
|
+ var(--bgopacity-color, rgba(0, 128, 128, 0.16));
|
|
|
|
|
+ --login-input-icon: var(--primary-color, #008080);
|
|
|
|
|
+ --login-input-suffix-icon: #909399;
|
|
|
|
|
+ --login-button-border: var(--primary-color, #008080);
|
|
|
|
|
+ --login-button-bg-start: var(--primary-color, #008080);
|
|
|
|
|
+ --login-button-bg-end: var(--primary-color, #008080);
|
|
|
|
|
+ --login-button-hover-start: var(--primary-color, #008080);
|
|
|
|
|
+ --login-button-hover-end: var(--primary-color, #008080);
|
|
|
|
|
+ --login-button-shadow: 0 4px 12px
|
|
|
|
|
+ var(--bgopacity-color, rgba(0, 128, 128, 0.2));
|
|
|
|
|
+
|
|
|
|
|
+ background: #f5f7fa url("../../assets/login-img.png") center / cover no-repeat;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+html:not([data-theme="tech-blue"]) .login-page::before,
|
|
|
|
|
+html:not([data-theme="tech-blue"]) .login-page::after,
|
|
|
|
|
+html:not([data-theme="tech-blue"]) .login-page__decor {
|
|
|
|
|
+ display: none;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+html:not([data-theme="tech-blue"]) .login-panel {
|
|
|
|
|
+ backdrop-filter: none;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+html:not([data-theme="tech-blue"]) .login-panel::before,
|
|
|
|
|
+html:not([data-theme="tech-blue"]) .login-panel::after {
|
|
|
|
|
+ display: none;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+html:not([data-theme="tech-blue"]) .login-panel__divider {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ background: var(--primary-color, #008080);
|
|
|
|
|
+ box-shadow: none;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 提升权重,避免全局 Element UI 规则覆盖登录框底色。 */
|
|
|
|
|
+html:not([data-theme="tech-blue"]) .login-form {
|
|
|
|
|
+ ::v-deep .el-input__inner {
|
|
|
|
|
+ background-color: var(--login-input-bg) !important;
|
|
|
|
|
+ border-color: var(--login-accent-soft) !important;
|
|
|
|
|
+ color: var(--login-text) !important;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
</style>
|
|
</style>
|