<template>
	<view class="comments-page">
		<navbar title="评论详情" leftClick @leftClick="$utils.navigateBack" />
		<!-- 书本名称 -->
		<view class="book-title-area">
			<view class="book-title-label">书本名称</view>
			<view class="book-title">《{{ bookTitle }}》</view>
		</view>
		<!-- 主评论卡片 -->
		<view class="comment-card" v-if="comment.hanHaiMember">
			<view class="comment-header">
				<image class="avatar" :src="comment.hanHaiMember.headImage" mode="aspectFill" />
				<view class="user-info">
					<text class="username">{{ comment.hanHaiMember.nickName }}</text>
				</view>
			</view>
			<view class="comment-content">{{ comment.comment }}</view>
			<view class="comment-footer">
				<text class="comment-time">{{ comment.createTime }}</text>
			</view>
		</view>
		<!-- 全部评论列表 -->
		<view class="all-reply-area">
			<view class="all-reply-header">回复 · {{ comment.children.length }}</view>
			<view class="reply-list">
				<view class="reply-item" v-for="(item, idx) in comment.children" :key="idx">
					<image class="reply-avatar" :src="item.hanHaiMember.headImage" mode="aspectFill" />
					<view class="reply-main">
						<view class="reply-username">{{ item.hanHaiMember.nickName }}</view>
						<view class="reply-content">{{ item.comment }}</view>
						<view class="reply-time">{{ item.createTime }}</view>
					</view>
				</view>
				<uv-empty mode="list" v-if="comment.children.length == 0"></uv-empty>
			</view>
		</view>
		<!-- 底部回复按钮 -->
		<view class="reply-footer">
			<button class="submit-btn" @click="goToRespond">回复评论</button>
		</view>
	</view>
</template>

<script>
	import navbar from '@/components/base/navbar.vue'
	export default {
		components: {
			navbar
		},
		data() {
			return {
				bookTitle: '',
				comment: {},
				id : 0,
			}
		},
		onLoad({id}) {
			this.id = id
		},
		onShow() {
			this.getData()
		},
		methods: {
			async getData(){
				this.comment = await this.$fetch('getCommentDetail', {
					commentId : this.id,
				})
				this.bookTitle = this.comment.commonShop.name
			},
			goToRespond() {
				uni.navigateTo({
					url: '/pages_order/comment/respondComments?id=' + this.id
				})
			},
		}
	}
</script>

<style scoped lang="scss">
	.comments-page {
		min-height: 100vh;
		background: #f8f8f8;
		display: flex;
		flex-direction: column;
	}

	.book-title-area {
		background: #fff;
		margin: 24rpx 24rpx 0 24rpx;
		border-radius: 16rpx;
		padding: 24rpx 24rpx 0 24rpx;
	}

	.book-title-label {
		color: #bdbdbd;
		font-size: 24rpx;
		margin-bottom: 4rpx;
	}

	.book-title {
		font-size: 28rpx;
		color: #222;
		margin-bottom: 16rpx;
		border-bottom: 1px solid #ededed;
		padding-bottom: 8rpx;
	}

	.comment-card {
		background: #fff;
		margin: 24rpx;
		border-radius: 16rpx;
		padding: 24rpx 24rpx 0 24rpx;
		box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.03);
		margin-bottom: 0;
	}

	.comment-header {
		display: flex;
		align-items: center;
		margin-bottom: 8rpx;
	}

	.avatar {
		width: 56rpx;
		height: 56rpx;
		border-radius: 50%;
		margin-right: 16rpx;
	}

	.user-info {
		display: flex;
		flex-direction: column;
	}

	.username {
		font-size: 26rpx;
		color: #222;
		font-weight: 500;
	}

	.comment-content {
		font-size: 26rpx;
		color: #333;
		margin-bottom: 12rpx;
	}

	.comment-footer {
		display: flex;
		align-items: center;
		font-size: 22rpx;
		color: #bdbdbd;
		padding-bottom: 20rpx;
	}

	.comment-time {
		color: #bdbdbd;
		margin-top: 18rpx;
	}

	.all-reply-area {
		background: #fff;
		margin: 0 24rpx 0 24rpx;
		border-radius: 16rpx;
		padding: 24rpx 24rpx 16rpx 24rpx;
		margin-top: 24rpx;
	}

	.all-reply-header {
		color: #222;
		font-size: 28rpx;
		font-weight: 500;
		margin-bottom: 16rpx;
	}

	.reply-list {
		margin-top: 40rpx;
		display: flex;
		flex-direction: column;
		gap: 50rpx;
	}

	.reply-item {

		display: flex;
		align-items: flex-start;
	}

	.reply-avatar {
		width: 44rpx;
		height: 44rpx;
		border-radius: 50%;
		margin-right: 16rpx;
		flex-shrink: 0;

	}

	.reply-main {

		flex: 1;
		display: flex;
		flex-direction: column;

	}

	.reply-username {
		font-size: 24rpx;
		color: #222;
		font-weight: 500;
		margin-bottom: 4rpx;

	}

	.reply-content {
		font-size: 24rpx;
		color: #333;
		margin-bottom: 6rpx;
		word-break: break-all;
	}

	.reply-time {
		font-size: 20rpx;
		color: #bdbdbd;
	}

	.reply-footer {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 90rpx;
		background: #fff;
		padding: 24rpx 32rpx 32rpx 32rpx;
		box-shadow: 0 -2rpx 12rpx rgba(0, 0, 0, 0.03);
		z-index: 10;
	}

	.submit-btn {
		width: 100%;
		height: 80rpx;
		background: #0a225f;
		color: #fff;
		font-size: 30rpx;
		border-radius: 40rpx;
		font-weight: 500;
		letter-spacing: 2rpx;
	}
</style>