178 lines
3.7 KiB
Vue
178 lines
3.7 KiB
Vue
<template>
|
|
<view class="dingyue-box">
|
|
<!-- 标题 -->
|
|
<view class="dl-title">
|
|
订阅
|
|
</view>
|
|
<!-- 操作按钮 -->
|
|
<view class="dl-opt-box">
|
|
<view class="dl-menu-box">
|
|
<view v-for="(item,index) in menus" @click="itemClick(index,item)" class="dl-menu"
|
|
:class="index==menuIndex?'dl-menu click':'dl-menu'">{{item}}</view>
|
|
</view>
|
|
<view class="seting" @click="goSet()">
|
|
<image src="@/static/set.png" mode="aspectFit"></image>
|
|
设置
|
|
</view>
|
|
</view>
|
|
<!-- 通告列表 -->
|
|
<view class="dl-body">
|
|
<view class="dl-item-box">
|
|
<scroll-view style="height: 100%;" scroll-y="true" @scrolltolower="onReachBottomCus" refresher-enabled
|
|
@refresherrefresh="onRefresherrefresh" :refresher-triggered="isTriggered">
|
|
<notice-item v-if="dataList.length>0" :dataList="dataList" @goDetail="goDetail()"></notice-item>
|
|
<view style="text-align: center" v-if="dataList.length==0">
|
|
<image class="" src="@/static/images/nothing.png"></image>
|
|
</view>
|
|
</scroll-view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import noticeItem from '@/pages/components/notice-item.vue'
|
|
export default {
|
|
components: {
|
|
noticeItem
|
|
},
|
|
data() {
|
|
return {
|
|
menus: ['订阅', '关注'],
|
|
menuIndex: 0,
|
|
dataList: ['', '', '', ''],
|
|
queryParams: {
|
|
pageNum: 1,
|
|
pageSize: 10,
|
|
}
|
|
}
|
|
},
|
|
methods: {
|
|
/**
|
|
* 菜单点击
|
|
* @param {Object} index
|
|
* @param {Object} item
|
|
*/
|
|
itemClick(index, item) {
|
|
if ('订阅' == item) {
|
|
//全部
|
|
} else if ('关注' == item) {
|
|
//关注
|
|
}
|
|
this.menuIndex = index
|
|
},
|
|
/**
|
|
* 上滑加载数据
|
|
*/
|
|
onReachBottomCus() {
|
|
//判断 如果页码*页容量大于等于总条数,提示该页数据加载完毕
|
|
if (this.queryParams.pageNum * this.queryParams.pageSize >= this.total) {
|
|
toast("没有更多数据了")
|
|
return
|
|
}
|
|
//页码+1,调用获取数据的方法获取第二页数据
|
|
this.queryParams.pageNum++
|
|
},
|
|
/**
|
|
* 下拉刷新数据
|
|
*/
|
|
onRefresherrefresh() {
|
|
this.isTriggered = true
|
|
this.queryParams.pageNum = 1
|
|
this.total = 0
|
|
},
|
|
/**
|
|
* 去订阅设置页面
|
|
*/
|
|
goSet() {
|
|
this.$tab.navigateTo(`/pages/notice/subscribe-set`)
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
.dingyue-box {
|
|
padding-top: var(--status-bar-height);
|
|
width: 100%;
|
|
color: #363636;
|
|
background-color: white;
|
|
font-size: 38rpx;
|
|
height: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
position: relative;
|
|
|
|
.dl-title {
|
|
font-size: 32rpx;
|
|
width: 100%;
|
|
position: relative;
|
|
text-align: center;
|
|
font-weight: bold;
|
|
z-index: 10;
|
|
padding: 62rpx 0 15rpx 15rpx;
|
|
border-bottom: 1px solid #F4F4F4;
|
|
}
|
|
|
|
.dl-opt-box {
|
|
width: 100%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
|
|
.dl-menu-box {
|
|
display: flex;
|
|
flex: 1;
|
|
align-items: center;
|
|
justify-content: initial;
|
|
width: 100%;
|
|
padding-top: 20rpx;
|
|
|
|
.dl-menu {
|
|
width: 80rpx;
|
|
font-size: 30rpx;
|
|
margin: 0 20rpx;
|
|
padding-bottom: 15rpx;
|
|
text-align: center;
|
|
}
|
|
|
|
.click {
|
|
color: #FF434E;
|
|
font-weight: bold;
|
|
border-bottom: 2px solid #FF434E;
|
|
}
|
|
}
|
|
|
|
.seting {
|
|
font-size: 30rpx;
|
|
width: 180rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
|
|
image {
|
|
width: 30rpx;
|
|
height: 30rpx;
|
|
margin-right: 10rpx;
|
|
}
|
|
}
|
|
}
|
|
|
|
.dl-body {
|
|
flex: 1;
|
|
width: 100%;
|
|
height: 100%;
|
|
background-color: #EEEEEE;
|
|
padding: 20rpx 20rpx 0 20rpx;
|
|
|
|
.dl-item-box {
|
|
height: calc(100vh - var(--status-bar-height) - var(--window-bottom) - 357rpx);
|
|
isplay: flex;
|
|
flex-direction: column;
|
|
padding-top: 15rpx;
|
|
}
|
|
}
|
|
}
|
|
</style> |