feat: dialog 样式行为优化

This commit is contained in:
ZRMYDYCG 2025-06-18 19:04:27 +08:00
parent 682d9a408e
commit 7905dbe470
5 changed files with 60 additions and 15 deletions

View File

@ -1,4 +1,5 @@
<script setup lang="ts"></script> <script setup lang="ts">
</script>
<template> <template>
<router-view /> <router-view />

View File

@ -113,8 +113,8 @@ function onAfterLeave() {
/* 动画样式(仅作用于弹框) */ /* 动画样式(仅作用于弹框) */
.dialog-zoom-enter-active, .dialog-zoom-enter-active,
.dialog-zoom-leave-active { .dialog-zoom-leave-active {
transition: all 0.3s ease-in-out;
transform-origin: center; transform-origin: center;
transition: all 0.3s ease-in-out;
} }
.dialog-zoom-enter-from, .dialog-zoom-enter-from,
.dialog-zoom-leave-to { .dialog-zoom-leave-to {
@ -141,8 +141,8 @@ function onAfterLeave() {
overflow: hidden; overflow: hidden;
user-select: none; user-select: none;
background-color: rgb(0 0 0 / 50%); background-color: rgb(0 0 0 / 50%);
backdrop-filter: blur(3px);
opacity: 1; opacity: 1;
backdrop-filter: blur(3px);
transition: opacity 0.3s; transition: opacity 0.3s;
} }
.mask[hidden] { .mask[hidden] {
@ -189,9 +189,9 @@ function onAfterLeave() {
height: 40px; height: 40px;
padding: 4px; padding: 4px;
background: var(--login-dialog-logo-background); background: var(--login-dialog-logo-background);
filter: drop-shadow(0 4px 4px rgb(0 0 0 / 10%));
border-radius: 12px; border-radius: 12px;
box-shadow: 0 2px 12px 0 rgb(0 0 0 / 8%); box-shadow: 0 2px 12px 0 rgb(0 0 0 / 8%);
filter: drop-shadow(0 4px 4px rgb(0 0 0 / 10%));
} }
.left-section .logo-wrap .logo-text { .left-section .logo-wrap .logo-text {
font-size: 16px; font-size: 16px;

View File

@ -329,12 +329,12 @@ function handleMenuCommand(command: string, item: ConversationItem<ChatSessionVo
0 10px 20px 0 rgb(0 0 0 / 10%), 0 10px 20px 0 rgb(0 0 0 / 10%),
0 0 1px 0 rgb(0 0 0 / 15%); 0 0 1px 0 rgb(0 0 0 / 15%);
opacity: 0; opacity: 0;
transition: opacity 0.3s ease 0.3s, transform 0.3s ease 0.3s;
// //
// //
transform: translateX(-100%); transform: translateX(-100%);
transition: opacity 0.3s ease 0.3s, transform 0.3s ease 0.3s;
/* 新增:未激活悬停时覆盖延迟 */ /* 新增:未激活悬停时覆盖延迟 */
&.no-delay { &.no-delay {
@ -358,10 +358,10 @@ function handleMenuCommand(command: string, item: ConversationItem<ChatSessionVo
// aside-container-suspended // aside-container-suspended
opacity: 1; opacity: 1;
transition: opacity 0.3s ease 0s, transform 0.3s ease 0s;
// 沿 // 沿
transform: translateX(15px); transform: translateX(15px);
transition: opacity 0.3s ease 0s, transform 0.3s ease 0s;
// - // -
.conversations-wrap { .conversations-wrap {

View File

@ -1,15 +1,15 @@
.el-form{ .el-form{
.el-form-item{ .el-form-item{
&:nth-last-child(1){ &:nth-last-child(1){
margin-bottom: 0px; margin-bottom: 0;
} }
} }
} }
// el 弹框不知道为啥宽度会变大 // el 弹框不知道为啥宽度会变大
.el-popup-parent--hidden { .el-popup-parent--hidden {
overflow: hidden;
width: 100% !important; width: 100% !important;
overflow: hidden;
} }
@ -22,29 +22,73 @@
// rounded-tooltip 提示框样式 // rounded-tooltip 提示框样式
.rounded-tooltip { .rounded-tooltip {
border-radius: 10px !important;
display: flex; display: flex;
align-items: center; align-items: center;
height: fit-content; height: fit-content;
border-radius: 10px !important;
} }
.rounded-tooltip-enter-from { .rounded-tooltip-enter-from {
transform: scale(0.9); /* 进入前:缩小隐藏 */
opacity: 0; opacity: 0;
transform: scale(0.9); /* 进入前:缩小隐藏 */
} }
.rounded-tooltip-enter-active, .rounded-tooltip-enter-active,
.rounded-tooltip-leave-active { .rounded-tooltip-leave-active {
transition: transform 0.3s, opacity 0.3s; /* 缓入动画 */ transition: transform 0.3s, opacity 0.3s; /* 缓入动画 */
} }
.rounded-tooltip-enter-to { .rounded-tooltip-enter-to {
transform: scale(1); /* 进入后:正常大小 */
opacity: 1; opacity: 1;
transform: scale(1); /* 进入后:正常大小 */
} }
.rounded-tooltip-leave-from { .rounded-tooltip-leave-from {
transform: scale(1); /* 离开前:正常大小 */
opacity: 1; opacity: 1;
transform: scale(1); /* 离开前:正常大小 */
} }
.rounded-tooltip-leave-to { .rounded-tooltip-leave-to {
transform: scale(0.9); /* 离开后:缩小隐藏 */
opacity: 0; opacity: 0;
transform: scale(0.9); /* 离开后:缩小隐藏 */
} }
/* S Dialog 样式行为 */
.dialog-fade-enter-active .el-dialog {
animation: dialog-open 0.2s cubic-bezier(0.33, 0.89, 0.25, 1.02);
}
.dialog-fade-leave-active {
animation: fade-out 0.2s linear;
}
.dialog-fade-leave-active .el-dialog {
animation: dialog-close 0.2s cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
@keyframes dialog-open {
0% {
opacity: 0;
transform: scale(0.2);
}
100% {
opacity: 1;
transform: scale(1);
}
}
@keyframes dialog-close {
0% {
opacity: 1;
transform: scale(1);
}
100% {
opacity: 0;
transform: scale(0.2);
}
}
// 遮罩层动画
@keyframes fade-out {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
/* E Dialog 样式行为 */

View File

@ -13,7 +13,7 @@
--login-dialog-section-padding: 0px; --login-dialog-section-padding: 0px;
--login-dialog-border-radius: 24px; --login-dialog-border-radius: 24px;
--login-dialog-mode-toggle-color: #409eff; --login-dialog-mode-toggle-color: #409eff;
--login-dialog-logo-background: #fff; --login-dialog-logo-background: #ffffff;
--login-dialog-logo-text-color: #191919; --login-dialog-logo-text-color: #191919;