項目需要實現資訊的滾動,使用了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>
