<template>
	<view class="review-page">
		<!-- 顶部导航栏 -->
		<navbar title="写书评" leftClick @leftClick="$utils.navigateBack" />
		<view class="review-content">
			<view class="book-title-label">书本名称</view>
			<view class="book-title">《{{ bookTitle }}》</view>
			<view class="form-area flex-grow">
				<view class="form-label-row">
					<text class="required-star">*</text>
					<text class="form-label">书评内容</text>
				</view>
				<textarea v-model="form.content" class="review-textarea custom-placeholder full-textarea"
					placeholder="请输入书评内容" />
			</view>
		</view>
		<view class="review-footer">
			<view class="footer-divider"></view>
			<button class="submit-btn" @click="submitReview">发布</button>
		</view>
	</view>
</template>

<script>
	import navbar from '@/components/base/navbar.vue'
	export default {
		components: {
			navbar
		},
		data() {
			return {
				bookTitle: '',
				form: {
					content: ''
				},
				rules: {
					content: [{
						required: true,
						message: '请输入书评内容',
						trigger: ['blur', 'change']
					}]
				}
			}
		},
		onLoad(options) {
			// 通过路由参数获取书名
			this.bookTitle = options.title || '未知书名'
		},
		methods: {
			goBack() {
				uni.navigateBack()
			},
			submitReview() {
				this.$refs.reviewForm.validate().then(() => {
					// 提交逻辑，实际开发中可调用API
					uni.showToast({
						title: '发布成功',
						icon: 'success'
					})
					setTimeout(() => {
						uni.navigateBack()
					}, 1000)
				}).catch(() => {})
			}
		}
	}
</script>

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

	.review-content {
		background: #fff;

		margin: 24rpx 24rpx 0 24rpx;
		border-radius: 16rpx;
		padding: 32rpx 24rpx 24rpx 24rpx;
		display: flex;
		flex-direction: column;
		flex: 1;
		min-height: 0;
		padding-bottom: 140rpx;
		margin-top: calc(var(--status-bar-height, 0px) + 100rpx);
	}

	.flex-grow {
		flex: 1 1 0;
		display: flex;
		flex-direction: column;
		min-height: 0;
	}

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

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

	.form-area {
		margin-top: 18rpx;
	}

	.form-label-row {
		display: flex;
		align-items: center;
		margin-bottom: 8rpx;
	}

	.required-star {
		color: #e23d3d;
		font-size: 22rpx;
		margin-right: 4rpx;
		line-height: 1;
	}

	.form-label {
		color: #222;
		font-size: 26rpx;
		font-weight: 400;
	}

	.review-textarea {
		width: 100%;
		min-height: 320rpx;
		border: none;
		background: transparent;
		font-size: 28rpx;
		color: #333;
		resize: none;
		margin-top: 0;
		outline: none;
	}

	.review-textarea.custom-placeholder::placeholder {
		color: #d2d2d2;
		font-size: 26rpx;
	}

	.full-textarea {
		flex: 1;
		min-height: 0;
		max-height: none;
		box-sizing: border-box;
		margin-bottom: 0;
	}

	.review-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;
	}

	.footer-divider {
		width: 100%;
		height: 2rpx;
		background: #f2f2f2;
		margin-bottom: 24rpx;
	}

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