.chat-page { position: relative; } /* 笼罩层样式 */ .mask { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 998; animation: fadeIn 1s ease; } /* 自定义淡入动画 */ @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } /* ================会话侧边栏样式================== */ .chat-sidebar { position: fixed; top: 0; left: 0; width: calc(100% - 100rpx); max-width: 680rpx; height: 100%; transform: translateX(-100%); transition: transform 0.5s ease; z-index: 999; } .chat-sidebar.sidebar-show { transform: translateX(0); } /* =============================新建会话弹窗样式================== */ .ncd-overlay { position: fixed; width: 100%; height: 100%; left: 0; top: 0; display: flex; align-items: center; justify-content: center; background-color: rgba(193, 193, 193, 0.4); z-index: 1000; /* 毛玻璃核心代码 👇 */ backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(6px); } .ncd-card { width: 90%; height: auto; background-color: #ffffff; border-radius: 50rpx; padding: 50rpx; box-sizing: border-box; } .ncd-header { display: flex; justify-content: center; width: 100%; } .ncd-title-eng { display: flex; flex-shrink: 0; background-color: #000; padding: 5rpx 8rpx; border-radius: 10rpx; justify-content: center; align-items: center; } .ncd-title-eng text { color: #ffffff; font-weight: bold; font-size: 30rpx; } .ncd-title-zh { margin-left: 10rpx; display: flex; flex: 1; height: 0; font-size: 38rpx; font-weight: bold; color: #000; } .ncd-header uni-icons { display: flex; flex-shrink: 0; } .ncd-options { display: flex; flex-direction: column; width: 100%; justify-content: center; align-items: center; margin-top: 10rpx; box-sizing: border-box; } .ncd-option { width: 100%; background: #f8fafc; padding: 50rpx 30rpx; display: flex; border-radius: 32rpx; margin-top: 20rpx; box-sizing: border-box; justify-content: center; align-items: center; } .ncd-normal { border: 1rpx solid #e8edf3; } .ncd-opt-icon { width: 80rpx; height: 80rpx; border-radius: 30rpx; padding: 10rpx; box-sizing: border-box; display: flex; flex-shrink: 0; justify-content: center; align-items: center; } .ncd-normal .ncd-opt-icon { background-color: #e2e8f0; } .ncd-opt-title { display: flex; flex-direction: column; margin: 0rpx 16rpx; box-sizing: border-box; justify-content: center; flex: 1; height: 0; } .ncd-opt-title-1 { font-size: 30rpx; font-weight: bold; color: #000000; } .ncd-opt-title-2 { font-size: 26rpx; color: #666666; } .arrow-right-style { display: flex; flex-shrink: 0; font-weight: bold !important; font-size: 30rpx !important; color: #666666 !important; } .ncd-intelligence { background: linear-gradient(to right, #f5f3ff, #ede9fe); border: 1rpx solid #c4b5fd; } .ncd-intelligence .ncd-opt-icon { background-color: #8b5cf6; } /* ==========新建聊天列表相关====== */ .close-option-card { width: 100%; display: flex; justify-content: flex-end; } .close-option-card .iconfont { color: #ff0000 !important; } .chat-option-list { display: flex; width: 100%; flex-direction: column; } .chat-option { display: flex; justify-content: flex-start; align-items: center; margin: 10rpx 0; box-sizing: border-box; } .chat-option .iconfont { font-size: 30px; } .option-name { font-size: 18px; font-weight: 400; margin-left: 10px; box-sizing: border-box; } /* ================聊天容器============== */ .chat-wrapper { position: relative; width: 100%; height: 100%; display: flex; flex-direction: column; } /* ================聊天顶部样式============== */ .chat-hearder { width: 100%; height: auto; padding: 20rpx 10rpx; box-sizing: border-box; display: flex; flex-shrink: 0; justify-content: flex-start; align-items: center; border-bottom: 1rpx solid #ede9fe; } .chat-btn-group { width: 100%; height: auto; display: flex; justify-content: flex-start; align-items: center; } .head-btn { padding: 10rpx; border: 1rpx solid #ede9fe; border-radius: 20rpx; margin: 0 10rpx; box-sizing: border-box; display: flex; justify-content: center; align-items: center; } .chat-btn-group .head-btn:nth-child(1) .iconfont { color: #c4b5fd; } .chat-btn-group .head-btn:nth-child(2) .iconfont { color: cornflowerblue; } .head-btn .iconfont { font-size: 50rpx; } .log-out { /* background: #ffd4d4; */ } .log-out .iconfont { color: #ff0000; } /* ==========聊天主体部分========== */ .main-chat { display: flex; flex: 1; height: 0; width: 100%; flex-direction: column; } /* ==========聊天对话展示部分========== */ .chat-messages { display: flex; flex: 1; height: 0; width: 100%; padding: 0rpx 20rpx; box-sizing: border-box; flex-direction: column; overflow: auto; } .chat-message { display: flex; align-items: flex-start; margin: 10rpx 0; box-sizing: border-box; } .message-user { flex-direction: row-reverse; } .chat-avatar { display: flex; justify-content: center; align-items: center; width: 80rpx; height: 80rpx; box-sizing: border-box; border-radius: 10rpx; margin-right: 10rpx; } .friend-avatar { display: flex; justify-content: center; align-items: center; border-radius: 20rpx; width: 100%; height: 100%; overflow: hidden; } .chat-avatar-user { margin-right: 0; margin-left: 10rpx; } .chat-content { width: auto; max-width: calc(100% - 100rpx); height: auto; padding: 20rpx; box-sizing: border-box; border: 1rpx solid #999; overflow-x: auto; } .chat-content-user { background-color: #c4b5fd; color: #fff; border-radius: 20rpx; } /* 图片消息 */ .message-image { max-width: 300rpx; border-radius: 8rpx; margin: 6rpx 0; } /* 文件列表 */ .message-file-list { margin: 8rpx 0; } /* 文件项 */ .file-item { margin: 6rpx 0; } /* 文件样式 */ .message-file { display: flex; align-items: center; padding: 12rpx 16rpx; background: #f7f8fa; border-radius: 8rpx; max-width: 350rpx; } .file-icon { font-size: 32rpx; margin-right: 12rpx; } .file-name { flex: 1; font-size: 26rpx; color: #333; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .file-size { font-size: 22rpx; color: #999; margin-left: 8rpx; } /* ==========聊天输入容器部分========== */ .chat-interactive-container { display: flex; flex-shrink: 0; width: 100%; padding: 20rpx; box-sizing: border-box; flex-direction: column; } .chat-interactive-group { display: flex; width: 100%; padding: 20rpx; box-sizing: border-box; justify-content: flex-start; align-items: center; } .chat-interactive-btn { display: flex; align-items: center; justify-content: center; border: 1rpx solid #000000; border-radius: 10rpx; padding: 10rpx 16rpx; margin-right: 20rpx; box-sizing: border-box; } .chat-input-container { display: flex; width: 100%; padding: 20rpx; box-sizing: border-box; border: 1rpx solid #c4b5fd; border-radius: 30rpx; align-items: flex-end; } .message-input { flex: 1; max-height: 150rpx; min-height: 60rpx; overflow-y: auto; margin: 10rpx; box-sizing: border-box; } .input-btn-group { flex-shrink: 0; display: flex; justify-content: center; align-items: center; padding: 16rpx; box-sizing: border-box; background: #ffd4d4; border: 1rpx solid #ff0000; border-radius: 20rpx; width: 80rpx; height: 80rpx; } .input-btn-group .iconfont { color: #ff0000; font-size: 40rpx; } /* ai思考弹窗卡片 */ .ai-card { width: auto; border: 1rpx solid #409eff; box-shadow: 0 0 20rpx #c4b5fd; } /* 内容布局 */ .thinking-content { display: flex; flex-direction: column; align-items: center; width: 100%; } /* 加载点点动画 */ .loading-dots { display: flex; width: 100%; align-items: center; justify-content: center; } .dot { width: 16rpx; height: 16rpx; margin: 6rpx; border-radius: 50%; background: #409eff; animation: dotBlink 1.2s infinite ease-in-out; } /* 点点呼吸动画 */ @keyframes dotBlink { 0%, 100% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1); } } .dot:nth-child(2) { animation-delay: 0.2s; } .dot:nth-child(3) { animation-delay: 0.4s; } /* 文字 */ .thinking-text { margin: 20rpx 0; font-size: 22px; font-weight: 500; color: #409eff; }