与牧同行-小程序用户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

454 lines
6.5 KiB

.forum-page {
min-height: 100vh;
background-color: #f8f8f8;
position: relative;
}
/* 帖子详情容器 */
.post-detail-container {
height: 100vh;
box-sizing: border-box;
}
/* 帖子主体 */
.post-main {
background-color: white;
padding: 40rpx 30rpx;
margin-bottom: 20rpx;
}
.post-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 30rpx;
}
.user-info {
display: flex;
align-items: center;
}
.avatar {
width: 80rpx;
height: 80rpx;
border-radius: 50%;
margin-right: 20rpx;
}
.user-detail {
display: flex;
flex-direction: column;
}
.username {
font-size: 32rpx;
font-weight: bold;
color: #333;
margin-bottom: 8rpx;
}
.post-time {
font-size: 26rpx;
color: #999;
}
.post-status .solved-badge {
background-color: #07c160;
color: white;
font-size: 24rpx;
padding: 8rpx 16rpx;
border-radius: 20rpx;
}
/* 帖子内容 */
.post-content {
margin-bottom: 30rpx;
}
.post-title {
font-size: 36rpx;
font-weight: bold;
color: #333;
margin-bottom: 24rpx;
line-height: 1.4;
}
.post-desc {
font-size: 30rpx;
color: #555;
line-height: 1.6;
margin-bottom: 30rpx;
}
/* 帖子图片 */
.post-images {
margin: 30rpx 0;
}
.images-container {
display: flex;
flex-wrap: wrap;
gap: 20rpx;
}
.post-image {
width: 220rpx;
height: 220rpx;
border-radius: 12rpx;
flex-shrink: 0;
}
/* 回复区域 */
.replies-section {
background-color: white;
border-radius: 20rpx 20rpx 0 0;
padding: 40rpx 30rpx;
margin: 0;
}
.section-title {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 30rpx;
padding-bottom: 20rpx;
border-bottom: 2rpx solid #f0f0f0;
}
.title-text {
font-size: 34rpx;
font-weight: bold;
color: #333;
}
.reply-count {
font-size: 28rpx;
color: #07c160;
font-weight: bold;
}
/* 回复列表 */
.reply-list {
margin-top: 10rpx;
}
.reply-item {
padding: 30rpx 0;
border-bottom: 1rpx solid #f8f8f8;
}
.reply-item:last-child {
border-bottom: none;
}
.reply-user {
display: flex;
align-items: center;
margin-bottom: 20rpx;
}
.reply-avatar {
width: 64rpx;
height: 64rpx;
border-radius: 50%;
margin-right: 20rpx;
}
.reply-user-info {
display: flex;
flex-direction: column;
}
.reply-username {
font-size: 28rpx;
color: #333;
margin-bottom: 6rpx;
font-weight: 500;
}
.reply-time {
font-size: 24rpx;
color: #999;
}
.reply-content {
font-size: 30rpx;
color: #444;
line-height: 1.5;
margin-left: 84rpx;
margin-bottom: 20rpx;
}
/* 回复操作 */
.reply-actions {
display: flex;
align-items: center;
margin-left: 84rpx;
margin-top: 20rpx;
gap: 40rpx;
}
.reply-action {
display: flex;
align-items: center;
color: #999;
font-size: 24rpx;
padding: 4rpx 8rpx;
}
.reply-action-icon {
width: 28rpx;
height: 28rpx;
margin-right: 8rpx;
}
.reply-action-text {
font-size: 24rpx;
color: #666;
}
/* 评论列表 */
.comment-list {
margin-left: 84rpx;
margin-top: 20rpx;
background-color: #fafafa;
border-radius: 12rpx;
padding: 20rpx;
}
.comment-item {
padding: 20rpx 0;
}
.comment-item:not(:last-child) {
border-bottom: 1rpx solid #eee;
}
.comment-user {
display: flex;
align-items: center;
margin-bottom: 12rpx;
}
.comment-avatar {
width: 48rpx;
height: 48rpx;
border-radius: 50%;
margin-right: 15rpx;
}
.comment-user-info {
display: flex;
flex-direction: column;
}
.comment-username {
font-size: 26rpx;
color: #666;
margin-bottom: 4rpx;
}
.comment-time {
font-size: 22rpx;
color: #999;
}
.comment-content {
font-size: 28rpx;
color: #555;
line-height: 1.4;
margin-left: 63rpx;
}
.comment-to {
color: #07c160;
font-weight: 500;
}
/* 评论操作 */
.comment-actions {
margin-left: 63rpx;
margin-top: 12rpx;
}
.comment-action {
font-size: 24rpx;
color: #999;
padding: 4rpx 8rpx;
}
/* 空回复状态 */
.empty-replies {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 100rpx 0;
text-align: center;
}
.empty-reply-text {
font-size: 28rpx;
color: #999;
}
.bottom-placeholder {
height: 160rpx;
}
/* 底部输入栏 */
.bottom-input-container {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background-color: white;
border-top: 1rpx solid #eee;
padding: 20rpx 30rpx;
box-shadow: 0 -4rpx 20rpx rgba(0, 0, 0, 0.05);
z-index: 100;
transition: transform 0.3s ease;
}
.input-wrapper {
display: flex;
align-items: center;
gap: 20rpx;
}
.reply-input {
flex: 1;
background-color: #f8f8f8;
border-radius: 40rpx;
padding: 10rpx 30rpx;
font-size: 30rpx;
}
.send-btn {
background-color: #07c160;
color: white;
font-size: 28rpx;
padding: 20rpx 40rpx;
line-height: normal;
border-radius: 40rpx;
margin: 0;
min-width: 120rpx;
transition: background-color 0.3s;
}
.send-btn[disabled] {
background-color: #cccccc;
color: white;
}
/* 回复对象显示 */
.reply-target {
display: flex;
justify-content: space-between;
align-items: center;
background-color: #f0f0f0;
border-radius: 20rpx;
padding: 16rpx 24rpx;
margin-top: 15rpx;
animation: slideIn 0.3s ease;
}
@keyframes slideIn {
from {
opacity: 0;
transform: translateY(-10rpx);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.target-text {
font-size: 26rpx;
color: #07c160;
font-weight: 500;
}
.clear-target {
font-size: 36rpx;
color: #999;
padding: 0 10rpx 4rpx 20rpx;
}
/* 图片预览 */
.preview-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.95);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
z-index: 1000;
}
.preview-swiper {
width: 100%;
height: 70vh;
}
.preview-image {
width: 100%;
height: 100%;
}
.preview-indicator {
position: absolute;
bottom: 60rpx;
color: white;
font-size: 28rpx;
background-color: rgba(0, 0, 0, 0.5);
padding: 10rpx 24rpx;
border-radius: 20rpx;
}
/* 加载提示 */
.loading {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 60rpx 0;
color: #999;
font-size: 28rpx;
}
.loading-icon {
width: 60rpx;
height: 60rpx;
margin-bottom: 20rpx;
animation: rotate 1s linear infinite;
}
@keyframes rotate {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
/* 移除按钮边框 */
button::after {
border: none;
}
/* 滚动条样式 */
::-webkit-scrollbar {
width: 0;
height: 0;
color: transparent;
}