Files
ws_health/xui/wxapp/pages/ai/aichat/aichat.wxss
2026-05-25 12:34:16 +08:00

278 lines
4.4 KiB
Plaintext

.chat-container {
display: flex;
flex-direction: column;
height: 100vh;
background-color: #F5F5F5;
position: relative;
}
/* 清空按钮 */
.clear-btn {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 6rpx;
padding: 12rpx 24rpx;
background-color: #FFFFFF;
border-top: 1rpx solid #EEEEEE;
}
.clear-btn:active {
opacity: 0.7;
}
.clear-text {
font-size: 22rpx;
color: #999999;
}
/* 消息列表区域 */
.message-list {
flex: 1;
padding: 20rpx 0;
}
.message-list.has-messages {
padding-top: 20rpx;
}
/* 欢迎区域 */
.welcome-area {
display: flex;
flex-direction: column;
align-items: center;
padding: 80rpx 40rpx;
text-align: center;
}
.welcome-icon {
width: 160rpx;
height: 160rpx;
border-radius: 50%;
background: linear-gradient(135deg, #FF9B33 0%, #FF7A33 100%);
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 40rpx;
box-shadow: 0 8rpx 32rpx rgba(255, 155, 51, 0.3);
}
.welcome-title {
font-size: 40rpx;
font-weight: 600;
color: #333333;
margin-bottom: 16rpx;
}
.welcome-desc {
font-size: 28rpx;
color: #999999;
margin-bottom: 60rpx;
line-height: 1.6;
}
.quick-questions {
width: 100%;
display: flex;
flex-direction: column;
gap: 20rpx;
}
.quick-item {
background-color: #FFFFFF;
padding: 28rpx 32rpx;
border-radius: 16rpx;
font-size: 28rpx;
color: #333333;
text-align: left;
box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.06);
transition: all 0.2s ease;
}
.quick-item:active {
transform: scale(0.98);
background-color: #FFF8F0;
}
/* 消息项 */
.message-item {
display: flex;
padding: 16rpx 24rpx;
align-items: flex-start;
}
.message-item.ai {
justify-content: flex-start;
}
.message-item.user {
justify-content: flex-end;
}
/* 头像 */
.avatar {
width: 72rpx;
height: 72rpx;
border-radius: 40%;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.ai-avatar {
background: linear-gradient(135deg, #FF9B33 0%, #FF7A33 100%);
margin-right: 16rpx;
padding: 16rpx;
width: 46rpx;
height: 46rpx;
}
.user-avatar {
background: linear-gradient(135deg, #4CAF50 0%, #45A049 100%);
margin-left: 16rpx;
}
/* 消息内容 */
.message-content {
display: flex;
flex-direction: column;
max-width: 70%;
}
.message-item.user .message-content {
align-items: flex-end;
}
.message-item.ai .message-content {
align-items: flex-start;
}
/* 消息气泡 */
.message-bubble {
padding: 20rpx 24rpx;
border-radius: 16rpx;
word-wrap: break-word;
word-break: break-all;
}
.message-item.ai .message-bubble {
background-color: #FFFFFF;
border-top-left-radius: 4rpx;
}
.message-item.user .message-bubble {
background: linear-gradient(135deg, #FF9B33 0%, #FF7A33 100%);
border-top-right-radius: 4rpx;
}
.message-text {
font-size: 28rpx;
line-height: 1.6;
}
.message-item.ai .message-text {
color: #333333;
}
.message-item.user .message-text {
color: #FFFFFF;
}
.message-image {
max-width: 400rpx;
border-radius: 8rpx;
}
.message-time {
font-size: 20rpx;
color: #999999;
margin-top: 8rpx;
}
/* 正在输入指示器 */
.typing-bubble {
padding: 24rpx 32rpx;
}
.typing-indicator {
display: flex;
align-items: center;
gap: 12rpx;
}
.dot {
width: 16rpx;
height: 16rpx;
border-radius: 50%;
background-color: #CCCCCC;
animation: typing 1.4s infinite ease-in-out both;
}
.dot:nth-child(1) {
animation-delay: -0.32s;
}
.dot:nth-child(2) {
animation-delay: -0.16s;
}
@keyframes typing {
0%, 80%, 100% {
transform: scale(0.6);
opacity: 0.5;
}
40% {
transform: scale(1);
opacity: 1;
}
}
/* 输入区域 */
.input-area {
background-color: #FFFFFF;
padding: 20rpx 24rpx;
padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
border-top: 1rpx solid #EEEEEE;
}
.input-wrapper {
display: flex;
align-items: center;
gap: 16rpx;
}
.message-input {
flex: 1;
height: 72rpx;
background-color: #F5F5F5;
border-radius: 16rpx;
padding: 0 28rpx;
font-size: 28rpx;
color: #333333;
}
.input-placeholder {
color: #AAAAAA;
}
.input-actions {
display: flex;
align-items: center;
gap: 16rpx;
}
.action-btn {
width: 72rpx;
height: 72rpx;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
background-color: #F5F5F5;
transition: all 0.2s ease;
}
.send-btn.active {
background: linear-gradient(135deg, #FF9B33 0%, #FF7A33 100%);
}