/* index.less */ .container { height: 90vh; display: flex; flex-direction: column; background-color: #fff; overflow: hidden; position: relative; // top: 70px; width: 100%; // margin-top: 75px; } :global { .container { .am-tabs-tab-bar-wrap { display: none;; } .am-tab-bar-item { overflow: hidden; } .am-navbar-title { visibility: hidden; } } } .header { background-color: #2c3e50; color: white; padding: 12px 16px; display: flex; justify-content: space-between; align-items: center; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); } .headerTitle { font-size: 16px; font-weight: bold; } .headerSubtitle { font-size: 12px; opacity: 0.8; margin-top: 2px; } .headerButton { color: white !important; } .messageContainer { overflow-y: auto; padding: 16px; background-color: white; height: calc(90vh - 180px); flex: 1; overflow-y: auto; padding: 16px; background-color: white; // 👇 关键:防止内容过少时容器高度塌陷 // min-height: 0; /* 这是 flex 布局中子项能正确收缩的关键 */ margin-bottom: 60px; } .messageItem { display: flex; justify-content: flex-start; margin-bottom: 12px; &.userMessage { justify-content: flex-end; } } .messageBubble { max-width: 85%; padding: 12px 16px; border-radius: 5px 20px 20px 20px; background-color: #f8f9fa; color: #333; border: 1px solid #e9ecef; &.userBubble { border-radius: 20px 5px 20px 20px; background: linear-gradient(90deg, #667eea, #764ba2); color: white; border: none; } &.aiBubble { border-radius: 5px 20px 20px 20px; background-color: #f8f9fa; color: #333; border: 1px solid #e9ecef; } } .messageContent { font-size: 14px; line-height: 1.5; } .messageMeta { display: flex; justify-content: space-between; align-items: center; margin-top: 6px; font-size: 11px; color: #6c757d; } .actionButton { // 样式已由antd-mobile组件自身处理 } .inputContainer { padding: 12px 16px; background-color: white; border-top: 1px solid #e9ecef; position: fixed; bottom: 0; height: 80px; width: 100%; z-index: 999; } .inputWrapper { display: flex; gap: 8px; align-items: flex-end; } .inputField { flex: 1; padding: 12px 16px !important; border-radius: 20px !important; border: 1px solid #e9ecef !important; font-size: 14px !important; } .sendButton { border-radius: 20px !important; padding: 12px 16px !important; } .sidebarContainer { width: 280px; height: 100vh; background-color: #f8f9fa; } .sidebarHeader { padding: 16px; background-color: white; border-bottom: 1px solid #e9ecef; } .sidebarTitle { margin: 0; font-size: 16px; } .presetItem { background-color: white !important; margin: 8px 16px !important; border-radius: 8px !important; } .clearItem { background-color: white !important; margin: 8px 16px !important; border-radius: 8px !important; } .cursor { display: inline-block; width: 4px; height: 16px; background-color: #333; margin-left: 4px; animation: blink 1s infinite; } @keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }