|  |  |  | <template> | 
					
						
							|  |  |  | 	<view class="bg"> | 
					
						
							|  |  |  | 		<img :src="showImg(headImg)" class="topImg" /> | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		<div class="article-container"> | 
					
						
							|  |  |  | 			<view @click="viewDetail(item)" v-for="(item,index) in list" :key="index" class="item"> | 
					
						
							|  |  |  | 				<image class="img" :src="showImg(item.image)" mode="aspectFill"></image> | 
					
						
							|  |  |  | 				<view class="content flex-column"> | 
					
						
							|  |  |  | 					<view class="title text-overflowRows">{{item.title}}</view> | 
					
						
							|  |  |  | 					<view class="text-overflow" style="font-size: 24rpx;color: #848484;">{{item.subtitle}}</view> | 
					
						
							|  |  |  | 					<view class="subtitle flex-between"> | 
					
						
							|  |  |  | 						<view style="color: #000000;"> | 
					
						
							|  |  |  | 							<image style="width: 48rpx;height:48rpx" :src="showImg(item.author_img)" mode=""></image> | 
					
						
							|  |  |  | 							{{item.author}} | 
					
						
							|  |  |  | 						</view> | 
					
						
							|  |  |  | 						<view> | 
					
						
							|  |  |  | 							<image @click="likeAricle(item)" v-if="item.is_like" :src="showImg('/uploads/20250513/00b5680ca4b62479a59b40786979e3e2.png')" mode=""></image> | 
					
						
							|  |  |  | 							<image @click="likeAricle(item)" v-else :src="showImg('/uploads/20250513/99e8d59b9692ae73b3204a6cec79611b.png')" mode=""></image> | 
					
						
							|  |  |  | 							<text style="padding-right: 36rpx;">{{handleNum(item.star)}}</text> | 
					
						
							|  |  |  | 							<image :src="showImg('/uploads/20250513/71acef9a784095e9ba17c88580506705.png')" mode=""></image> | 
					
						
							|  |  |  | 							{{handleNum(item.view)}} | 
					
						
							|  |  |  | 						</view> | 
					
						
							|  |  |  | 					</view> | 
					
						
							|  |  |  | 				</view> | 
					
						
							|  |  |  | 			</view> | 
					
						
							|  |  |  | 		</div> | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 	</view> | 
					
						
							|  |  |  | </template> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <script> | 
					
						
							|  |  |  | 	export default { | 
					
						
							|  |  |  | 		data() { | 
					
						
							|  |  |  | 			return { | 
					
						
							|  |  |  | 				list: [], | 
					
						
							|  |  |  | 				finished: false, | 
					
						
							|  |  |  | 				headImg: '' | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 		onReady() { | 
					
						
							|  |  |  | 			this.getArticleByType() | 
					
						
							|  |  |  | 			this.getHeadImg(10212).then(res => {this.headImg = res}) | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 		methods: { | 
					
						
							|  |  |  | 			// 游记攻略
 | 
					
						
							|  |  |  | 			getArticleByType() { | 
					
						
							|  |  |  | 				this.Post({ | 
					
						
							|  |  |  | 					type_id: 1, | 
					
						
							|  |  |  | 					offset: this.list.length, | 
					
						
							|  |  |  | 					limit: 10 | 
					
						
							|  |  |  | 				},'/api/Article/getArticleByType').then(res => { | 
					
						
							|  |  |  | 					if (res.data.length < 10) { | 
					
						
							|  |  |  | 						this.finished = true | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 					this.list = [...this.list, ...res.data] | 
					
						
							|  |  |  | 				}) | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 			likeAricle (item) { | 
					
						
							|  |  |  | 				 | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 			viewDetail(item) { | 
					
						
							|  |  |  | 				if (item.url) { | 
					
						
							|  |  |  | 					uni.navigateTo({ | 
					
						
							|  |  |  | 						url:"/subPackages/webPage/webPage?url="+encodeURIComponent(item.url) | 
					
						
							|  |  |  | 					}) | 
					
						
							|  |  |  | 					return | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				uni.navigateTo({ | 
					
						
							|  |  |  | 					url:'/subPackages/letter/detail?id='+item.id | 
					
						
							|  |  |  | 				}) | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 			handleNum (num) { | 
					
						
							|  |  |  | 				if (num<=0) { return 0 } | 
					
						
							|  |  |  | 				if (num>=1000) { | 
					
						
							|  |  |  | 					return (num/1000).toFixed(1)+'k' | 
					
						
							|  |  |  | 				}  | 
					
						
							|  |  |  | 				return num | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 		//下拉触底事件
 | 
					
						
							|  |  |  | 		onReachBottom() { | 
					
						
							|  |  |  | 			setTimeout(() => { | 
					
						
							|  |  |  | 				if (!this.finished) this.getArticleByType(); | 
					
						
							|  |  |  | 			}, 1000); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | </script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <style lang="scss" scoped> | 
					
						
							|  |  |  | 	.bg { | 
					
						
							|  |  |  | 		width: 750rpx; | 
					
						
							|  |  |  | 		min-height: 100vh; | 
					
						
							|  |  |  | 		background: #FFFFFF; | 
					
						
							|  |  |  | 		padding-bottom: 50rpx; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	.topImg { | 
					
						
							|  |  |  | 		width: 100%; | 
					
						
							|  |  |  | 		height: 380rpx; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	.article-container{ | 
					
						
							|  |  |  | 		margin-top: -22rpx; | 
					
						
							|  |  |  | 		width: 100%; | 
					
						
							|  |  |  | 		background: #FFFFFF; | 
					
						
							|  |  |  | 		border-radius: 24rpx ; | 
					
						
							|  |  |  | 		position: relative; | 
					
						
							|  |  |  | 		padding: 32rpx; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	.item { | 
					
						
							|  |  |  | 		width: 100%; | 
					
						
							|  |  |  | 		height: 198rpx; | 
					
						
							|  |  |  | 		margin-bottom:30rpx; | 
					
						
							|  |  |  | 		display: flex; | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		.img { | 
					
						
							|  |  |  | 			width: 208rpx; | 
					
						
							|  |  |  | 			height: 198rpx; | 
					
						
							|  |  |  | 			border-radius: 24rpx; | 
					
						
							|  |  |  | 			flex-shrink: 0; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		.content { | 
					
						
							|  |  |  | 			width: 370rpx; | 
					
						
							|  |  |  | 			flex: 1; | 
					
						
							|  |  |  | 			height: 198rpx; | 
					
						
							|  |  |  | 			padding: 12rpx 0 0 24rpx; | 
					
						
							|  |  |  | 			justify-content: space-between; | 
					
						
							|  |  |  | 			 | 
					
						
							|  |  |  | 			.title { | 
					
						
							|  |  |  | 				font-weight: 400; | 
					
						
							|  |  |  | 				font-size: 28rpx; | 
					
						
							|  |  |  | 				color: #000000; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			 | 
					
						
							|  |  |  | 			.subtitle { | 
					
						
							|  |  |  | 				font-weight: 500; | 
					
						
							|  |  |  | 				font-size: 27rpx; | 
					
						
							|  |  |  | 				color: #848484; | 
					
						
							|  |  |  | 				 | 
					
						
							|  |  |  | 				image { | 
					
						
							|  |  |  | 					width: 32rpx; | 
					
						
							|  |  |  | 					height: 32rpx; | 
					
						
							|  |  |  | 					margin-right: 6rpx; | 
					
						
							|  |  |  | 					vertical-align: middle; | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | </style> |