detail.uvue 1.9 KB
Newer Older
taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
<template>
	<view>
		<view class="banner">
			<image class="banner-img" :src="cover"></image>
			<text class="banner-title">{{title}}</text>
		</view>
		<view class="article-content">
			<text>{{htmlNodes}}</text>
		</view>
	</view>
</template>

<script>

	export default {
		data() {
			return {
				htmlNodes: "",
				pageVisible: false,
				title: '',
				cover : "",
				post_id : "",
			}
		},
		onLoad(event) {
			this.pageVisible = true;
			this.post_id = event["post_id"] ?? "";
			this.cover = event["cover"] ?? "";
29
			this.title = event["title"] ?? "";
taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
30 31 32 33 34 35 36 37 38
			this.getDetail();
		},
		onUnload() {
			this.pageVisible = false;
		},
		methods: {
			getDetail() {
				uni.request({
					url: 'https://unidemo.dcloud.net.cn/api/news/36kr/' + this.post_id,
39 40 41 42 43 44
					success: (data) => {
						if(this.pageVisible){
							if (data.statusCode == 200) {
								const result = data.data as UTSJSONObject
								this.htmlNodes = result["content"] as string;
							}
taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
						}
					},
					fail: () => {
						console.log('fail');
					}
				});
			},
		}
	}
</script>

<style>
	.banner {
		height: 360rpx;
		overflow: hidden;
		position: relative;
		background-color: #ccc;
	}

	.banner-img {
		width: 100%;
	}

	.banner-title {
		max-height: 84rpx;
		overflow: hidden;
		position: absolute;
		left: 30rpx;
		bottom: 30rpx;
		width: 90%;
		font-size: 32rpx;
		font-weight: 400;
		line-height: 42rpx;
		color: white;
		z-index: 11;
	}

	.article-meta {
		padding: 20rpx 40rpx;
		display: flex;
		flex-direction: row;
		justify-content: flex-start;
		color: gray;
	}

	.article-text {
		font-size: 26rpx;
		line-height: 50rpx;
		margin: 0 20rpx;
	}

	.article-author,
	.article-time {
		font-size: 30rpx;
	}

	.article-content {
		padding: 0 30rpx;
		overflow: hidden;
		font-size: 30rpx;
		margin-bottom: 30rpx;
	}
</style>