663 lines
11 KiB
Plaintext
663 lines
11 KiB
Plaintext
/* pages/support/support.wxss */
|
|
/* 样式复用自 AI聊天详情页 (pages/chat-detail/chat-detail.wxss) 以保持一致体验 */
|
|
|
|
/* 页面容器 */
|
|
.page-container {
|
|
min-height: 100vh;
|
|
background: #F5F2FD;
|
|
display: flex;
|
|
flex-direction: column;
|
|
position: relative;
|
|
}
|
|
|
|
/* 聊天区域包装器 - 使用固定定位确保正确布局 */
|
|
.chat-area-wrapper {
|
|
position: fixed;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 120rpx;
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* 面板打开时的透明遮罩层 */
|
|
.panel-overlay {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background: transparent;
|
|
z-index: 98;
|
|
}
|
|
|
|
/* 状态栏区域 */
|
|
.status-bar-area {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
background: rgba(242, 237, 255, 0.6);
|
|
z-index: 101;
|
|
}
|
|
|
|
/* 顶部导航栏 */
|
|
.nav-header {
|
|
position: fixed;
|
|
left: 0;
|
|
right: 0;
|
|
background: rgba(255, 255, 255, 0.95);
|
|
border-bottom: 2rpx solid #F3F4F6;
|
|
z-index: 100;
|
|
}
|
|
|
|
.nav-content {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
height: 98rpx;
|
|
padding: 0 16rpx;
|
|
}
|
|
|
|
/* 返回按钮 */
|
|
.nav-back {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 4rpx;
|
|
padding: 16rpx;
|
|
min-width: 160rpx;
|
|
}
|
|
|
|
.back-icon {
|
|
width: 56rpx;
|
|
height: 56rpx;
|
|
}
|
|
|
|
.back-text {
|
|
font-size: 34rpx;
|
|
font-weight: 700;
|
|
color: #914584;
|
|
}
|
|
|
|
/* 中间角色信息 */
|
|
.nav-center {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16rpx;
|
|
}
|
|
|
|
.nav-avatar-wrap {
|
|
width: 64rpx;
|
|
height: 64rpx;
|
|
border-radius: 50%;
|
|
overflow: hidden;
|
|
border: 2rpx solid #E5E7EB;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: #F3F4F6;
|
|
}
|
|
|
|
.nav-avatar {
|
|
width: 80%;
|
|
height: 80%;
|
|
}
|
|
|
|
.nav-name {
|
|
font-size: 34rpx;
|
|
font-weight: 700;
|
|
color: #101828;
|
|
}
|
|
|
|
.online-dot {
|
|
width: 16rpx;
|
|
height: 16rpx;
|
|
background: #00C950;
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.nav-right-placeholder {
|
|
min-width: 160rpx;
|
|
}
|
|
|
|
/* 聊天内容区域 */
|
|
.chat-scroll {
|
|
height: 100%;
|
|
padding: 0 32rpx;
|
|
padding-top: 20rpx;
|
|
padding-bottom: 20rpx;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.chat-scroll::-webkit-scrollbar {
|
|
display: none;
|
|
width: 0;
|
|
height: 0;
|
|
}
|
|
|
|
.encrypt-hint {
|
|
text-align: center;
|
|
padding: 32rpx 0 48rpx;
|
|
}
|
|
|
|
.encrypt-hint text {
|
|
font-size: 24rpx;
|
|
color: #99A1AF;
|
|
}
|
|
|
|
.chat-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 48rpx;
|
|
}
|
|
|
|
.chat-item {
|
|
display: flex;
|
|
gap: 24rpx;
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.chat-item.me {
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.avatar-wrap {
|
|
width: 88rpx;
|
|
height: 88rpx;
|
|
border-radius: 50%;
|
|
overflow: hidden;
|
|
flex-shrink: 0;
|
|
border: 2rpx solid rgba(255, 255, 255, 0.5);
|
|
box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.1);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: #FFFFFF;
|
|
}
|
|
|
|
.chat-avatar {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.chat-item.other .chat-avatar {
|
|
width: 70%;
|
|
height: 70%;
|
|
}
|
|
|
|
.message-content {
|
|
max-width: 540rpx;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8rpx;
|
|
}
|
|
|
|
.message-content.me {
|
|
align-items: flex-end;
|
|
}
|
|
|
|
.chat-bubble {
|
|
padding: 24rpx 40rpx;
|
|
word-break: break-all;
|
|
box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.chat-bubble.other {
|
|
background: #FFFFFF;
|
|
border-radius: 12rpx 44rpx 44rpx 44rpx;
|
|
}
|
|
|
|
.chat-bubble.me {
|
|
background: #914584;
|
|
border-radius: 44rpx 12rpx 44rpx 44rpx;
|
|
}
|
|
|
|
.chat-text {
|
|
font-size: 34rpx;
|
|
line-height: 1.625;
|
|
}
|
|
|
|
.chat-bubble.other .chat-text {
|
|
color: #1E2939;
|
|
}
|
|
|
|
.chat-bubble.me .chat-text {
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
.message-time {
|
|
font-size: 22rpx;
|
|
color: #99A1AF;
|
|
padding: 0 8rpx;
|
|
}
|
|
|
|
.message-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16rpx;
|
|
}
|
|
|
|
/* 正在输入动画 */
|
|
.chat-bubble.typing {
|
|
display: flex;
|
|
gap: 12rpx;
|
|
padding: 28rpx 40rpx;
|
|
}
|
|
|
|
.typing-dot {
|
|
width: 16rpx;
|
|
height: 16rpx;
|
|
background: #9CA3AF;
|
|
border-radius: 50%;
|
|
animation: typing 1.4s infinite ease-in-out;
|
|
}
|
|
|
|
.typing-dot:nth-child(1) { animation-delay: 0s; }
|
|
.typing-dot:nth-child(2) { animation-delay: 0.2s; }
|
|
.typing-dot:nth-child(3) { animation-delay: 0.4s; }
|
|
|
|
@keyframes typing {
|
|
0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }
|
|
30% { transform: translateY(-12rpx); opacity: 1; }
|
|
}
|
|
|
|
.chat-bottom-space {
|
|
height: 40rpx;
|
|
}
|
|
|
|
/* 底部输入区域 */
|
|
.bottom-input-area {
|
|
position: fixed;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
background: #FFFFFF;
|
|
border-top: 2rpx solid #F3F4F6;
|
|
box-shadow: 0 -10rpx 40rpx rgba(0, 0, 0, 0.03);
|
|
z-index: 100;
|
|
padding-bottom: env(safe-area-inset-bottom);
|
|
}
|
|
|
|
.input-container {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16rpx;
|
|
padding: 24rpx 32rpx;
|
|
padding-bottom: 16rpx;
|
|
}
|
|
|
|
/* Figma设计样式 - 底部输入区域 */
|
|
.figma-input-container {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16rpx;
|
|
padding: 24rpx 20rpx;
|
|
padding-bottom: 20rpx;
|
|
}
|
|
|
|
.figma-voice-btn {
|
|
width: 80rpx;
|
|
height: 80rpx;
|
|
background: #F3F4F6;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.figma-btn-icon {
|
|
width: 80rpx;
|
|
height: 80rpx;
|
|
}
|
|
|
|
.figma-input-wrap {
|
|
flex: 1;
|
|
background: #F9FAFB;
|
|
border: 2rpx solid #F3F4F6;
|
|
border-radius: 32rpx;
|
|
padding: 0 32rpx;
|
|
height: 96rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.figma-text-input {
|
|
width: 100%;
|
|
height: 100%;
|
|
font-size: 36rpx;
|
|
color: #101828;
|
|
font-family: Arial, sans-serif;
|
|
}
|
|
|
|
.figma-emoji-btn {
|
|
width: 80rpx;
|
|
height: 80rpx;
|
|
background: transparent;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.figma-emoji-btn.active {
|
|
background: #E9D5FF;
|
|
}
|
|
|
|
.figma-send-btn {
|
|
width: 80rpx;
|
|
height: 80rpx;
|
|
background: #914584;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.figma-send-btn .figma-btn-icon {
|
|
width: 44rpx;
|
|
height: 44rpx;
|
|
}
|
|
|
|
.figma-add-btn {
|
|
width: 80rpx;
|
|
height: 80rpx;
|
|
background: transparent;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.figma-add-btn.active {
|
|
background: #FCE7F3;
|
|
}
|
|
|
|
/* 面板面板显示时,移除底部安全区域 */
|
|
.bottom-input-area.panel-open {
|
|
padding-bottom: 0;
|
|
}
|
|
|
|
/* 语音录制按钮 */
|
|
.voice-record-btn {
|
|
flex: 1;
|
|
background: #F3F4F6;
|
|
border: 2rpx solid #E5E7EB;
|
|
border-radius: 32rpx;
|
|
height: 96rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 32rpx;
|
|
font-weight: 500;
|
|
color: #374151;
|
|
transition: all 0.15s;
|
|
}
|
|
|
|
.voice-record-btn:active,
|
|
.voice-record-btn.recording {
|
|
background: #E5E7EB;
|
|
transform: scale(0.98);
|
|
}
|
|
|
|
/* 录音提示浮层 */
|
|
.voice-recording-mask {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background: rgba(0, 0, 0, 0.3);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
z-index: 200;
|
|
}
|
|
|
|
.voice-recording-popup {
|
|
width: 320rpx;
|
|
height: 320rpx;
|
|
background: rgba(0, 0, 0, 0.8);
|
|
border-radius: 32rpx;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 24rpx;
|
|
}
|
|
|
|
.voice-recording-popup.cancel {
|
|
background: rgba(220, 38, 38, 0.9);
|
|
}
|
|
|
|
.cancel-icon {
|
|
width: 80rpx;
|
|
height: 80rpx;
|
|
filter: brightness(0) invert(1);
|
|
}
|
|
|
|
.voice-wave {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 12rpx;
|
|
height: 100rpx;
|
|
}
|
|
|
|
.wave-bar {
|
|
width: 12rpx;
|
|
height: 40rpx;
|
|
background: #22C55E;
|
|
border-radius: 6rpx;
|
|
animation: wave 0.8s ease-in-out infinite;
|
|
}
|
|
|
|
.wave-bar:nth-child(1) { animation-delay: 0s; height: 40rpx; }
|
|
.wave-bar:nth-child(2) { animation-delay: 0.1s; height: 60rpx; }
|
|
.wave-bar:nth-child(3) { animation-delay: 0.2s; height: 80rpx; }
|
|
.wave-bar:nth-child(4) { animation-delay: 0.3s; height: 60rpx; }
|
|
.wave-bar:nth-child(5) { animation-delay: 0.4s; height: 40rpx; }
|
|
|
|
@keyframes wave {
|
|
0%, 100% { transform: scaleY(1); }
|
|
50% { transform: scaleY(1.5); }
|
|
}
|
|
|
|
.voice-tip {
|
|
font-size: 28rpx;
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
.voice-duration-tip {
|
|
font-size: 48rpx;
|
|
font-weight: 700;
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
/* 表情面板 */
|
|
.emoji-panel {
|
|
background: #FFFFFF;
|
|
border-top: 2rpx solid #F3F4F6;
|
|
}
|
|
|
|
.emoji-scroll {
|
|
height: 480rpx;
|
|
padding: 24rpx;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.emoji-grid {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.emoji-item {
|
|
width: 12.5%;
|
|
height: 88rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.emoji-text {
|
|
font-size: 56rpx;
|
|
line-height: 1;
|
|
}
|
|
|
|
.emoji-item:active {
|
|
background: #F3F4F6;
|
|
border-radius: 16rpx;
|
|
}
|
|
|
|
/* 更多功能面板 */
|
|
.more-panel {
|
|
background: #F5F5F5;
|
|
border-top: 2rpx solid #E5E7EB;
|
|
}
|
|
|
|
.more-panel-content {
|
|
padding: 40rpx 32rpx 24rpx;
|
|
}
|
|
|
|
.more-grid {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.more-grid.ai-chat-grid {
|
|
justify-content: center;
|
|
gap: 90rpx;
|
|
padding: 0 48rpx;
|
|
}
|
|
|
|
.more-item {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 16rpx;
|
|
width: 25%;
|
|
}
|
|
|
|
.more-icon-wrap {
|
|
width: 112rpx;
|
|
height: 112rpx;
|
|
background: #FFFFFF;
|
|
border-radius: 24rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
position: relative;
|
|
}
|
|
|
|
.more-icon-wrap.figma-style {
|
|
width: 128rpx;
|
|
height: 128rpx;
|
|
background: transparent;
|
|
border-radius: 0;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.figma-action-icon {
|
|
width: 128rpx;
|
|
height: 128rpx;
|
|
}
|
|
|
|
.more-text {
|
|
font-size: 28rpx;
|
|
font-weight: 700;
|
|
color: #4A5565;
|
|
}
|
|
|
|
.more-panel-safe {
|
|
height: env(safe-area-inset-bottom);
|
|
background: #F5F5F5;
|
|
}
|
|
|
|
/* 图片消息气泡 */
|
|
.chat-bubble-image {
|
|
max-width: 400rpx;
|
|
border-radius: 24rpx;
|
|
overflow: hidden;
|
|
box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.chat-bubble-image.other {
|
|
border-radius: 12rpx 24rpx 24rpx 24rpx;
|
|
}
|
|
|
|
.chat-bubble-image.me {
|
|
border-radius: 24rpx 12rpx 24rpx 24rpx;
|
|
}
|
|
|
|
.message-image {
|
|
width: 100%;
|
|
min-width: 200rpx;
|
|
max-width: 400rpx;
|
|
display: block;
|
|
}
|
|
|
|
/* 语音消息气泡 */
|
|
.chat-bubble.voice {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16rpx;
|
|
min-width: 160rpx;
|
|
padding: 24rpx 32rpx;
|
|
}
|
|
|
|
.chat-bubble.voice.other {
|
|
flex-direction: row;
|
|
}
|
|
|
|
.chat-bubble.voice.me {
|
|
flex-direction: row-reverse;
|
|
}
|
|
|
|
.voice-waves {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6rpx;
|
|
height: 40rpx;
|
|
}
|
|
|
|
.voice-wave-bar {
|
|
width: 6rpx;
|
|
height: 20rpx;
|
|
border-radius: 3rpx;
|
|
background: #9CA3AF;
|
|
}
|
|
|
|
.chat-bubble.voice.me .voice-wave-bar {
|
|
background: rgba(255, 255, 255, 0.7);
|
|
}
|
|
|
|
.voice-wave-bar:nth-child(1) { height: 16rpx; }
|
|
.voice-wave-bar:nth-child(2) { height: 28rpx; }
|
|
.voice-wave-bar:nth-child(3) { height: 20rpx; }
|
|
|
|
.chat-bubble.voice.playing .voice-wave-bar {
|
|
animation: voiceWave 0.8s ease-in-out infinite;
|
|
}
|
|
|
|
.chat-bubble.voice.playing .voice-wave-bar:nth-child(1) { animation-delay: 0s; }
|
|
.chat-bubble.voice.playing .voice-wave-bar:nth-child(2) { animation-delay: 0.2s; }
|
|
.chat-bubble.voice.playing .voice-wave-bar:nth-child(3) { animation-delay: 0.4s; }
|
|
|
|
@keyframes voiceWave {
|
|
0%, 100% { transform: scaleY(1); }
|
|
50% { transform: scaleY(1.8); }
|
|
}
|
|
|
|
.voice-duration {
|
|
font-size: 28rpx;
|
|
color: #6B7280;
|
|
}
|
|
|
|
.chat-bubble.voice.me .voice-duration {
|
|
color: rgba(255, 255, 255, 0.9);
|
|
}
|