<template>
	<view class="article-detail-index">
		<view class="lock-box" v-if="detail.isLock">
			<image src="../../static/lock.png" mode=""></image>
			<view>{{detail.chargeType == 1 ? '该文章需要付费阅读' : '该文章需要积分兑换'}}</view>
			<view class="lock-btn" @click="toUnlock">
				<text class="tips">￥{{detail.articleCharge}}</text>
				<text>立即解锁</text>
			</view>
		</view>
		<view :class="detail.isLock ? 'mask-box' : ''">
			<view class="article-title">{{detail.title}}</view>
			<view class="author-box acea-row row-middle">
				<view :class="detail.chargeType == 0 ? 'charge-type' : 'charge-type charge-type-price'">{{detail.chargeType == 0 ? '免费' : detail.chargeType == 1 ? '收费' : '积分兑换'}}</view>
				<view class="add-time">{{detail.addTime}}</view>
				<view>·{{detail.author}}</view>
			</view>
			<view class="d-line"></view>
			<view class="audio-box" v-if="detail.audio != ''">
				<luchAudio :src="detail.audio" :play.sync="aotuPlay" :author="detail.author" :name="detail.title"></luchAudio>
			</view>
			<view class="content-box">
				<rich-text class="content" :nodes="detail.content"></rich-text>
			</view>
		</view>
	</view>
</template>

<script>
import { getArticleDetails } from '@/api/knowledge';
import luchAudio from '@/components/luch-audio/luch-audio.vue';
export default{
	components: { luchAudio },
	data(){
		return {
			id:'',
			detail:null,
			aotuPlay: false,
			maskH:0
		}
	},
	onLoad(){
		this.id = this.$yroute.query.id;
		
	},
	onShow(){
		this.getDetail();
	},
	mounted() {
		
	},
	onShareAppMessage: function(res) {
		return {
			title: this.detail.title,
			imageUrl:this.detail.imageInput,
			path: '/pages/knowledge/detail?id=' + this.detail.id
		}
	},
	methods:{
		
		getDetail(){
			getArticleDetails(this.id).then((res)=>{
				// console.log(res)
				if(res.success){
					res.data.content = res.data.content.replace(/\<img/g, "<img style='width: 100%;'")
					this.detail = res.data
				}
			})
		},
		toUnlock(){
			this.$yrouter.push({
				path: '/pages/knowledge/unlock',
				query: {
					name: this.detail.title,
					chargeType: this.detail.chargeType,
					articleCharge:this.detail.articleCharge,
					id: this.id
				}
			})
		},
	}
}
</script>

<style lang="less" scoped>
.article-detail-index{
	width: 100%;
	min-height: 100%;
	box-sizing: border-box;
	padding: 32rpx;
	background: #fff;
	.lock-box{
		font-size: 32rpx;
		color: #333;
		font-weight: bold;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%,-50%);
		z-index: 99;
		image{
			width: 92rpx;
			height: 92rpx;
		}
		.lock-btn{
			width: 260rpx;
			height: 86rpx;
			background: #F99C10;
			border-radius: 44rpx;
			margin-top: 38rpx;
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			font-size: 28rpx;
			color: #fff;
			.tips{
				font-size: 24rpx;
			}
		}
	}
	.mask-box{
		width: 100%;
		height: 100vh;
		overflow: hidden;
		filter: blur(2px);
		position: absolute;
		top: 0;
		left: 0;
		user-select: none;
	}
	.mask-box::after{
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		content: '';
		display: block;
		background: rgba(255, 253, 253, 0.2);
	}
	.d-line{
		width: 100%;
		height: 1px;
		background: #ECECEC;
	}
	.article-title{
		font-size: 40rpx;
		font-weight: 500;
		color: #333333;
		line-height: 56rpx;
	}
	.author-box{
		font-size: 24rpx;
		color: #999;
		padding: 20rpx 0 30rpx;
		// border-bottom: 1px solid #ECECEC;
		.charge-type{
			min-width: 60rpx;
			height: 34rpx;
			line-height: 32rpx;
			text-align: center;
			border-radius: 4rpx;
			border: 1px solid #D7FFA4;
			background: #8FB85B;
			color: #D7FFA4;
			padding: 0 6rpx;
			font-size: 22rpx;
			margin-right: 20rpx;
			box-sizing: border-box;
		}
		.charge-type-price{
			background: #F99C10;
			color: #FFEDCC;
			border: 1px solid #F99C10;;
		}
	}
	.audio-box{
		margin: 30rpx 0 40rpx;
		audio{
			width: 100%;
		}
	}
	.content-box{
		width: 100%;
		overflow: hidden;
		margin-top: 40rpx;
	}
}
</style>
