维基小程序
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.
 
 
 

163 lines
3.2 KiB

<template>
<view>
<view v-if="list[0]">
<view class="msg-head">
<text>全部消息</text>
<button type="default" class="all-read" @click="allRead">全部已读</button>
</view>
<view class="collection-box" v-for="(item,index) in list" :key="index" @click="jumpMessage(item.messageId,index)">
<text class="collection-title">{{item.content}}</text>
<text class="collection-time">{{item.createdAt}}</text>
<text class="collection-isread" v-if="item.readStatus === 1">已读</text>
<text class="collection-read" v-else>未读</text>
</view>
</view>
<view v-else class="noData">
暂时没有系统消息
</view>
</view>
</template>
<script>
import { queryMsg } from 'api/queryMsg'
import { updateAllSta } from 'api/updateAllSta'
export default {
onShareAppMessage(res) {
if (res.from === 'button') {// 来自页面内分享按钮
console.log(res.target)
}
return {
title: '',
path: '/pages/MyPages/MessagePage'
}
},
data() {
return {
pageNum:1,
pageSize:15,
hasNextPage:true,
list:[]
}
},
async onLoad(){
const that = this
const params={
param:{
pageNum:that.pageNum,
pageSize:that.pageSize
}
}
const data = await queryMsg(params)
console.log(data)
that.hasNextPage = data.hasNextPage
that.list = data.list
},
onReachBottom: function () {
this.pageNum ++
},
watch:{
async pageNum(val){
const that = this
if(that.hasNextPage === true){
const params={
param:{
pageNum:val,
pageSize:that.pageSize
}
}
const data = await queryMsg(params)
console.log(data)
that.hasNextPage = data.hasNextPage
that.list = that.list.concat(data.list)
}else{
uni.showToast({
title:'到底了',
icon:'none'
})
}
}
},
methods: {
jumpMessage(id,index){
uni.navigateTo({
url:`/pages/MessagePage/MessagePage?id=${id}`
})
this.list[index].readStatus = 1
},
allRead(){
const that = this
let arr = []
for(let i=0;i<that.list.length;i++){
arr.push(that.list[i].messageId)
}
console.log(arr)
async function main(){
try{
const params = {
param:{
}
}
await updateAllSta(params)
}catch(err){
//TODO handle the exception
console.log(err)
}
}
main()
for(let i=0;i<that.list.length;i++){
that.list[i].readStatus = 1
// console.log(that)
}
}
}
}
</script>
<style lang="scss" scoped>
.collection-box{
height: 40px;
display: flex;
align-items: center;
padding-left: 10px;
background-color: $white;
margin-bottom: 6px;
}
.collection-title{
flex: 4;
white-space:nowrap;
overflow: hidden;
text-overflow:ellipsis;
-webkit-line-clamp: 1;
}
.collection-time{
flex: 2;
text-align: center;
}
.collection-read{
flex: 1;
text-align: center;
}
.collection-isread{
flex: 1;
text-align: center;
color: $grey;
}
.msg-head{
display: flex;
height: 40px;
align-items: center;
justify-content: space-between;
padding: 10px;
}
.all-read{
margin: 0;
font-size: 12px;
}
.noData{
margin-top: 300upx;
color: $gray;
text-align: center;
}
</style>