119 lines
2.3 KiB
Vue
119 lines
2.3 KiB
Vue
<!-- 消息中心 -->
|
|
<template>
|
|
<view>
|
|
<view v-if="msgList.length" class="flex margin-lr padding-tb-sm u-border-bottom" v-for="(item,index) in msgList"
|
|
:key='index'>
|
|
<u-image src="@/me/static/message/xitong.png" width="82rpx" mode="widthFix"></u-image>
|
|
<view class="flex-sub margin-left">
|
|
<view class="flex justify-between">
|
|
<view class="text-bold text-lg">{{item.title}}</view>
|
|
<view class="text-gray">{{item.createAt}}</view>
|
|
</view>
|
|
<view class="text-gray">{{item.content}}</view>
|
|
</view>
|
|
</view>
|
|
<empty v-if="!msgList.length" title="暂无消息" :isShow="false"></empty>
|
|
<!-- <view class="page-box" v-if="!msgList.length">
|
|
<view class="centre">
|
|
<image src="../static/none.png" mode=""></image>
|
|
<view class="tips">
|
|
暂无消息
|
|
</view>
|
|
</view>
|
|
</view> -->
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import empty from '@/components/empty.vue'
|
|
export default {
|
|
components: {
|
|
empty
|
|
},
|
|
data() {
|
|
return {
|
|
page: 1,
|
|
limit: 10,
|
|
msgList: []
|
|
}
|
|
},
|
|
onLoad() {
|
|
this.getMsg()
|
|
},
|
|
methods: {
|
|
getMsg() {
|
|
uni.showLoading({
|
|
title: '加载中'
|
|
})
|
|
let data = {
|
|
page: this.page,
|
|
limit: this.limit,
|
|
state: 5
|
|
}
|
|
this.$u.api.message(data).then(res => {
|
|
if (res.code === 0) {
|
|
if (this.page === 1) {
|
|
this.msgList = res.data.list
|
|
uni.stopPullDownRefresh();
|
|
return
|
|
}
|
|
this.msgList = [...this.msgList, ...res.data.list]
|
|
} else {
|
|
uni.showToast({
|
|
title: res.msg,
|
|
duration: 1000,
|
|
icon: 'none'
|
|
});
|
|
}
|
|
uni.hideLoading()
|
|
uni.stopPullDownRefresh();
|
|
})
|
|
}
|
|
},
|
|
onReachBottom: function() {
|
|
this.page = this.page + 1;
|
|
this.getMsg()
|
|
},
|
|
onPullDownRefresh: function() {
|
|
this.page = 1;
|
|
// this.msgList = []
|
|
this.getMsg()
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
page {
|
|
background-color: white;
|
|
}
|
|
|
|
.centre {
|
|
text-align: center;
|
|
margin: 200rpx auto;
|
|
font-size: 32rpx;
|
|
|
|
image {
|
|
width: 360rpx;
|
|
height: 360rpx;
|
|
// margin-bottom: 20rpx;
|
|
margin: 0 auto 20rpx;
|
|
// border: 1px dotted #000000;
|
|
}
|
|
|
|
.tips {
|
|
font-size: 34rpx;
|
|
color: #5074FF;
|
|
margin-top: 20rpx;
|
|
}
|
|
|
|
.btn {
|
|
margin: 80rpx auto;
|
|
width: 600rpx;
|
|
border-radius: 32rpx;
|
|
line-height: 90rpx;
|
|
color: #ffffff;
|
|
font-size: 34rpx;
|
|
background: #5074FF;
|
|
}
|
|
}
|
|
</style> |