Uni-App 實現資訊滾動


項目需要實現資訊的滾動,使用了Swiper組件,實現了首頁頭部的資訊滾動,簡單地做下筆記

效果

實現說明

主要是使用了Swiper可以自動滾動的特性來實現,左邊是一個圖片,右邊則是Swpier,且姜Swpier的滾動方向設置為垂直,然后就是樣式的調整

對了,我是從接口中請求到的一個列表數據,各位看代碼的時候記得調整一下

代碼

<template>
	<view>
		<view class="u-flex content">
			<u-image @click="gotoList" class="icon" width="80" height="80"
				src="https://img2020.cnblogs.com/blog/1210268/202110/1210268-20211018193858671-1201041615.png">
			</u-image>

			<swiper class="flex-1" :autoplay="true" :interval="2000" :circular="true"
				style="height: 90rpx;padding: 10rpx;" :duration="1000" :vertical="true">
				<swiper-item v-for="(item,i) in noticeList" :key="i">
					<view @click="toNoticeDetail(item.noticeId)">
						<view class="u-line-1 u-m-b-10 fontBlack">
							{{item.noticeTitle}}
						</view>
						<view class="fontGrey u-line-1" style="width: 100%;">
							發布時間:{{item.issuedTime}} 來源:{{item.issuedBy}}
						</view>
					</view>
				</swiper-item>
			</swiper>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				noticeList: [],
				pageSize: 3,
				pageNum: 1,
				total: null
			}
		},
		mounted() {
			this.getNoticeList()
		},
		methods: {
			gotoList() {
				uni.navigateTo({
					url: "/pagesA/notice_list/notice_list"
				})
			},
			getNoticeList() {
				let url = "/dev-api/WechatTzggApi/list"
				let param = {
					pageSize: this.pageSize,
					pageNum: this.pageNum,
					issuedType: 1,
					status: 0
				}
				let that = this
				this.$http.get(url, param).then(res => {
					uni.hideLoading()
					if (res.code == 200) {
						let rows = res.rows
						rows.forEach(item => {
							if (item.issuedTime != null) {
								let index = item.issuedTime.indexOf(" ")
								if (index != -1) {
									item.issuedTime = item.issuedTime.substring(0, index)
								}
							}
						})
						that.noticeList.push(...rows)
					}
					console.log("通知公告列表數據...", res);
				}).catch(err => {
					uni.hideLoading()
					console.log(err);
				})
			},
			toNoticeDetail(id) {
				uni.navigateTo({
					url: "/pagesA/notice_detail/notice_detail?id=" + id
				})
			}
		}
	}
</script>

<style lang="scss" scoped>
	.content {
		padding: 20rpx;
		// box-shadow: 0px 3rpx 15rpx rgba(0, 0, 0, 0.15);
		background-color: $white;
		margin: 20rpx;
		border-radius: 10rpx;
		display: flex;
	}

	.icon {
		padding: 10rpx;
	}

	.fontGrey {
		color: gray;
		font-size: 28rpx;
	}

	.fontBlack {
		font-size: 30rpx;
		color: $black;
	}
</style>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM