fix: 修复管理端前端 lint 与构建问题
- 收敛 easyflow-ui-admin 的 lint、格式和类型问题 - 修正 demo 页面与管理端前端构建失败点 - 验证 pnpm lint 与 pnpm build 均已通过
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
<script setup lang="ts">
|
||||
import type {ToolbarType} from './types';
|
||||
import type { ToolbarType } from './types';
|
||||
|
||||
import {computed, onBeforeUnmount, onMounted, ref} from 'vue';
|
||||
import {useRoute} from 'vue-router';
|
||||
import { computed, onBeforeUnmount, onMounted, ref } from 'vue';
|
||||
import { useRoute } from 'vue-router';
|
||||
|
||||
import {$t} from '@easyflow/locales';
|
||||
import {preferences, usePreferences} from '@easyflow/preferences';
|
||||
import { $t } from '@easyflow/locales';
|
||||
import { preferences, usePreferences } from '@easyflow/preferences';
|
||||
|
||||
import {Copyright} from '../basic/copyright';
|
||||
import { Copyright } from '../basic/copyright';
|
||||
import AuthenticationFormView from './form.vue';
|
||||
import Toolbar from './toolbar.vue';
|
||||
|
||||
@@ -107,7 +107,9 @@ onBeforeUnmount(() => {
|
||||
class="absolute left-0 top-0 z-20 flex flex-1"
|
||||
@click="clickLogo"
|
||||
>
|
||||
<div class="auth-brand-chip text-foreground ml-4 mt-4 flex items-center sm:ml-6 sm:mt-6">
|
||||
<div
|
||||
class="auth-brand-chip text-foreground ml-4 mt-4 flex items-center sm:ml-6 sm:mt-6"
|
||||
>
|
||||
<img
|
||||
v-if="logoSrc"
|
||||
:key="logoSrc"
|
||||
@@ -121,8 +123,12 @@ onBeforeUnmount(() => {
|
||||
</div>
|
||||
</slot>
|
||||
|
||||
<main class="auth-stage relative z-10 flex min-h-full w-full items-center justify-center px-6 pb-10 pt-28 sm:px-10 sm:pt-32">
|
||||
<div class="auth-stage-inner mx-auto flex w-full max-w-[1080px] flex-col items-center">
|
||||
<main
|
||||
class="auth-stage relative z-10 flex min-h-full w-full items-center justify-center px-6 pb-10 pt-28 sm:px-10 sm:pt-32"
|
||||
>
|
||||
<div
|
||||
class="auth-stage-inner mx-auto flex w-full max-w-[1080px] flex-col items-center"
|
||||
>
|
||||
<div
|
||||
v-if="isLoginRoute"
|
||||
class="auth-stage-copy w-full max-w-[780px] text-center"
|
||||
@@ -130,7 +136,10 @@ onBeforeUnmount(() => {
|
||||
<h1 class="auth-page-title text-foreground">
|
||||
{{ stageGreeting }}
|
||||
</h1>
|
||||
<div class="auth-stage-switcher text-muted-foreground" aria-label="同一入口能力切换">
|
||||
<div
|
||||
class="auth-stage-switcher text-muted-foreground"
|
||||
aria-label="同一入口能力切换"
|
||||
>
|
||||
<span class="auth-stage-switcher-label">在同一入口管理</span>
|
||||
<span class="auth-stage-pill" aria-live="polite">
|
||||
<Transition mode="out-in" name="auth-pill">
|
||||
@@ -146,8 +155,8 @@ onBeforeUnmount(() => {
|
||||
</div>
|
||||
|
||||
<AuthenticationFormView
|
||||
class="auth-window-host w-full"
|
||||
:class="[
|
||||
'auth-window-host w-full',
|
||||
isLoginRoute ? 'max-w-[25rem] sm:max-w-[26rem]' : 'max-w-[31rem]',
|
||||
isLoginRoute ? 'mt-8 sm:mt-10' : 'mt-0 sm:mt-4',
|
||||
]"
|
||||
@@ -170,69 +179,100 @@ onBeforeUnmount(() => {
|
||||
<style scoped>
|
||||
.auth-shell {
|
||||
background:
|
||||
radial-gradient(circle at top, rgb(255 255 255 / 78%), rgb(255 255 255 / 0) 36%),
|
||||
radial-gradient(
|
||||
circle at top,
|
||||
rgb(255 255 255 / 78%),
|
||||
rgb(255 255 255 / 0%) 36%
|
||||
),
|
||||
linear-gradient(180deg, #f7faff 0%, #eef4fd 55%, #edf3fb 100%);
|
||||
}
|
||||
|
||||
.auth-shell-grid {
|
||||
background-image:
|
||||
linear-gradient(rgb(13 74 160 / 0.06) 1px, transparent 1px),
|
||||
linear-gradient(90deg, rgb(13 74 160 / 0.06) 1px, transparent 1px);
|
||||
linear-gradient(rgb(13 74 160 / 6%) 1px, transparent 1px),
|
||||
linear-gradient(90deg, rgb(13 74 160 / 6%) 1px, transparent 1px);
|
||||
background-position: center center;
|
||||
background-size: 120px 120px;
|
||||
mask-image: linear-gradient(180deg, rgb(0 0 0 / 0.28), transparent 75%);
|
||||
opacity: 0.42;
|
||||
mask-image: linear-gradient(180deg, rgb(0 0 0 / 28%), transparent 75%);
|
||||
}
|
||||
|
||||
.auth-shell-noise {
|
||||
background-image:
|
||||
radial-gradient(circle at 20% 20%, rgb(255 255 255 / 0.35) 0 0.9px, transparent 1.2px),
|
||||
radial-gradient(circle at 80% 30%, rgb(255 255 255 / 0.22) 0 1px, transparent 1.3px),
|
||||
radial-gradient(circle at 40% 70%, rgb(11 111 211 / 0.08) 0 1px, transparent 1.4px);
|
||||
background-size: 180px 180px, 240px 240px, 200px 200px;
|
||||
radial-gradient(
|
||||
circle at 20% 20%,
|
||||
rgb(255 255 255 / 35%) 0 0.9px,
|
||||
transparent 1.2px
|
||||
),
|
||||
radial-gradient(
|
||||
circle at 80% 30%,
|
||||
rgb(255 255 255 / 22%) 0 1px,
|
||||
transparent 1.3px
|
||||
),
|
||||
radial-gradient(
|
||||
circle at 40% 70%,
|
||||
rgb(11 111 211 / 8%) 0 1px,
|
||||
transparent 1.4px
|
||||
);
|
||||
background-size:
|
||||
180px 180px,
|
||||
240px 240px,
|
||||
200px 200px;
|
||||
mix-blend-mode: soft-light;
|
||||
opacity: 0.65;
|
||||
}
|
||||
|
||||
.auth-glow {
|
||||
border-radius: 9999px;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
border-radius: 9999px;
|
||||
}
|
||||
|
||||
.auth-glow-primary {
|
||||
background: radial-gradient(circle, rgb(87 150 255 / 0.24) 0%, rgb(87 150 255 / 0) 68%);
|
||||
height: 26rem;
|
||||
left: 50%;
|
||||
top: 4rem;
|
||||
transform: translateX(-50%);
|
||||
left: 50%;
|
||||
width: 26rem;
|
||||
height: 26rem;
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgb(87 150 255 / 24%) 0%,
|
||||
rgb(87 150 255 / 0%) 68%
|
||||
);
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
.auth-glow-secondary {
|
||||
background: radial-gradient(circle, rgb(36 189 211 / 0.18) 0%, rgb(36 189 211 / 0) 72%);
|
||||
height: 20rem;
|
||||
left: 14%;
|
||||
top: 46%;
|
||||
left: 14%;
|
||||
width: 20rem;
|
||||
height: 20rem;
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgb(36 189 211 / 18%) 0%,
|
||||
rgb(36 189 211 / 0%) 72%
|
||||
);
|
||||
}
|
||||
|
||||
.auth-glow-tertiary {
|
||||
background: radial-gradient(circle, rgb(66 116 255 / 0.14) 0%, rgb(66 116 255 / 0) 74%);
|
||||
bottom: 8%;
|
||||
height: 22rem;
|
||||
right: 10%;
|
||||
bottom: 8%;
|
||||
width: 22rem;
|
||||
height: 22rem;
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgb(66 116 255 / 14%) 0%,
|
||||
rgb(66 116 255 / 0%) 74%
|
||||
);
|
||||
}
|
||||
|
||||
.auth-brand-chip {
|
||||
backdrop-filter: blur(12px);
|
||||
background: rgb(255 255 255 / 0.72);
|
||||
border: 1px solid rgb(255 255 255 / 0.84);
|
||||
border-radius: 9999px;
|
||||
box-shadow: 0 20px 44px -32px rgb(11 59 132 / 0.26);
|
||||
min-height: 3rem;
|
||||
padding: 0.45rem 0.95rem;
|
||||
background: rgb(255 255 255 / 72%);
|
||||
border: 1px solid rgb(255 255 255 / 84%);
|
||||
border-radius: 9999px;
|
||||
box-shadow: 0 20px 44px -32px rgb(11 59 132 / 26%);
|
||||
backdrop-filter: blur(12px);
|
||||
}
|
||||
|
||||
.auth-brand-name {
|
||||
@@ -242,19 +282,19 @@ onBeforeUnmount(() => {
|
||||
}
|
||||
|
||||
.auth-page-title {
|
||||
max-width: 16ch;
|
||||
margin: 0 auto;
|
||||
font-size: clamp(2.1rem, 4vw, 3.7rem);
|
||||
font-weight: 700;
|
||||
letter-spacing: -0.04em;
|
||||
line-height: 1.05;
|
||||
margin: 0 auto;
|
||||
max-width: 16ch;
|
||||
letter-spacing: -0.04em;
|
||||
}
|
||||
|
||||
.auth-stage-switcher {
|
||||
align-items: center;
|
||||
display: inline-flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.7rem;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
@@ -265,19 +305,19 @@ onBeforeUnmount(() => {
|
||||
}
|
||||
|
||||
.auth-stage-pill {
|
||||
align-items: center;
|
||||
backdrop-filter: blur(10px);
|
||||
background: rgb(255 255 255 / 0.74);
|
||||
border: 1px solid rgb(255 255 255 / 0.9);
|
||||
border-radius: 9999px;
|
||||
box-shadow: 0 18px 34px -28px rgb(14 61 132 / 0.3);
|
||||
color: hsl(var(--nav-item-active-foreground));
|
||||
display: inline-flex;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 600;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-width: 6.5rem;
|
||||
padding: 0.55rem 1rem;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 600;
|
||||
color: hsl(var(--nav-item-active-foreground));
|
||||
background: rgb(255 255 255 / 74%);
|
||||
border: 1px solid rgb(255 255 255 / 90%);
|
||||
border-radius: 9999px;
|
||||
box-shadow: 0 18px 34px -28px rgb(14 61 132 / 30%);
|
||||
backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
.auth-stage-pill-text {
|
||||
@@ -310,13 +350,17 @@ onBeforeUnmount(() => {
|
||||
|
||||
.dark.auth-shell {
|
||||
background:
|
||||
radial-gradient(circle at top, rgb(35 66 114 / 0.32), rgb(15 22 35 / 0) 40%),
|
||||
radial-gradient(
|
||||
circle at top,
|
||||
rgb(35 66 114 / 32%),
|
||||
rgb(15 22 35 / 0%) 40%
|
||||
),
|
||||
linear-gradient(180deg, #06101b 0%, #08111d 52%, #09131f 100%);
|
||||
|
||||
.auth-shell-grid {
|
||||
background-image:
|
||||
linear-gradient(rgb(118 160 241 / 0.08) 1px, transparent 1px),
|
||||
linear-gradient(90deg, rgb(118 160 241 / 0.08) 1px, transparent 1px);
|
||||
linear-gradient(rgb(118 160 241 / 8%) 1px, transparent 1px),
|
||||
linear-gradient(90deg, rgb(118 160 241 / 8%) 1px, transparent 1px);
|
||||
opacity: 0.36;
|
||||
}
|
||||
|
||||
@@ -325,32 +369,44 @@ onBeforeUnmount(() => {
|
||||
}
|
||||
|
||||
.auth-brand-chip {
|
||||
background: rgb(11 19 31 / 0.68);
|
||||
border-color: rgb(138 174 255 / 0.18);
|
||||
box-shadow: 0 24px 48px -34px rgb(0 0 0 / 0.52);
|
||||
background: rgb(11 19 31 / 68%);
|
||||
border-color: rgb(138 174 255 / 18%);
|
||||
box-shadow: 0 24px 48px -34px rgb(0 0 0 / 52%);
|
||||
}
|
||||
|
||||
.auth-stage-switcher-label {
|
||||
color: rgb(195 206 230 / 0.8);
|
||||
color: rgb(195 206 230 / 80%);
|
||||
}
|
||||
|
||||
.auth-stage-pill {
|
||||
background: rgb(11 19 31 / 0.7);
|
||||
border-color: rgb(138 174 255 / 0.18);
|
||||
box-shadow: 0 18px 34px -28px rgb(0 0 0 / 0.46);
|
||||
color: rgb(144 196 255 / 0.92);
|
||||
color: rgb(144 196 255 / 92%);
|
||||
background: rgb(11 19 31 / 70%);
|
||||
border-color: rgb(138 174 255 / 18%);
|
||||
box-shadow: 0 18px 34px -28px rgb(0 0 0 / 46%);
|
||||
}
|
||||
|
||||
.auth-glow-primary {
|
||||
background: radial-gradient(circle, rgb(70 120 255 / 0.26) 0%, rgb(70 120 255 / 0) 70%);
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgb(70 120 255 / 26%) 0%,
|
||||
rgb(70 120 255 / 0%) 70%
|
||||
);
|
||||
}
|
||||
|
||||
.auth-glow-secondary {
|
||||
background: radial-gradient(circle, rgb(41 170 201 / 0.18) 0%, rgb(41 170 201 / 0) 72%);
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgb(41 170 201 / 18%) 0%,
|
||||
rgb(41 170 201 / 0%) 72%
|
||||
);
|
||||
}
|
||||
|
||||
.auth-glow-tertiary {
|
||||
background: radial-gradient(circle, rgb(95 128 255 / 0.16) 0%, rgb(95 128 255 / 0) 74%);
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgb(95 128 255 / 16%) 0%,
|
||||
rgb(95 128 255 / 0%) 74%
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -370,9 +426,9 @@ onBeforeUnmount(() => {
|
||||
}
|
||||
|
||||
.auth-page-title {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
max-width: none;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.auth-stage-switcher {
|
||||
|
||||
Reference in New Issue
Block a user