You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
2.7 KiB
125 lines
2.7 KiB
<template>
|
|
<view>
|
|
<view>
|
|
<uni-card v-for="item in datas" @click="toDetail(item)">
|
|
<view class="uni-flex uni-row" style="align-items: center;">
|
|
<text style="flex: 1;">{{item.content}}</text>
|
|
<text
|
|
:style="'padding-left: 8px;'+(item.status==='未读'?'color:#01D393':'color:#999999')">{{item.status}}</text>
|
|
</view>
|
|
</uni-card>
|
|
<uni-load-more :status="loadStatus" @clickLoadMore="loadMore" :content-text="contentText" />
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import helper from '../../common/helper';
|
|
export default {
|
|
data() {
|
|
return {
|
|
datas: [],
|
|
token: '',
|
|
loadStatus: 'loading',
|
|
pageNum: 1,
|
|
contentText: {
|
|
contentdown: '查看更多',
|
|
contentrefresh: '加载中',
|
|
contentnomore: '没有更多了'
|
|
}
|
|
}
|
|
},
|
|
onNavigationBarButtonTap(e) {
|
|
if (e.index === 0) {
|
|
this.readAll();
|
|
}
|
|
},
|
|
onShow(e) {
|
|
uni.getStorage({
|
|
key: 'token',
|
|
success: (token) => {
|
|
this.token = token.data;
|
|
this.datas = [];
|
|
this.requestData();
|
|
},
|
|
fail(err) {},
|
|
complete: () => {}
|
|
})
|
|
},
|
|
methods: {
|
|
readAll() {
|
|
uni.showModal({
|
|
content: '确定将所有消息标记为已读?',
|
|
title: '提示',
|
|
success: (res) => {
|
|
if (res.confirm) {
|
|
uni.request({
|
|
header: {
|
|
Authorization: `Bearer ${this.token}`
|
|
},
|
|
method: 'PUT',
|
|
url: `${helper.serverUrl}/message/readAll`,
|
|
success: (resp) => {
|
|
console.log(resp)
|
|
this.datas = [];
|
|
this.pageNum = 1;
|
|
this.requestData();
|
|
}
|
|
})
|
|
} else if (res.cancel) {}
|
|
}
|
|
})
|
|
},
|
|
toDetail(item) {
|
|
uni.request({
|
|
header: {
|
|
Authorization: `Bearer ${this.token}`
|
|
},
|
|
method: 'PUT',
|
|
url: `${helper.serverUrl}/message/read/${item.id}`
|
|
})
|
|
const pages = getCurrentPages();
|
|
const prevPage = pages[pages.length - 2];
|
|
uni.navigateBack({
|
|
success: () => {
|
|
prevPage.$vm.showFfzy(item.sourceId)
|
|
}
|
|
})
|
|
},
|
|
loadMore(e) {
|
|
if (e.detail.status !== 'no-more') {
|
|
this.pageNum = this.pageNum + 1;
|
|
this.requestData();
|
|
}
|
|
},
|
|
requestData() {
|
|
this.loadStatus = 'loading';
|
|
uni.request({
|
|
url: `${helper.serverUrl}/message/list`,
|
|
data: {
|
|
pageNum: this.pageNum,
|
|
pageSize: 10
|
|
},
|
|
header: {
|
|
Authorization: `Bearer ${this.token}`
|
|
},
|
|
success: (resp) => {
|
|
console.log(resp)
|
|
if (resp.data.rows) {
|
|
this.datas = [...this.datas, ...resp.data.rows];
|
|
if (this.datas.length >= resp.data.totalCount) {
|
|
this.loadStatus = 'no-more'
|
|
} else {
|
|
this.loadStatus = 'more'
|
|
}
|
|
}
|
|
}
|
|
})
|
|
}
|
|
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
</style> |