186 lines
4.7 KiB
Vue
186 lines
4.7 KiB
Vue
<template>
|
|
<view>
|
|
<view>
|
|
<u-tabs :list="list" :is-scroll="false" :current="current" @change="change"></u-tabs>
|
|
<u-cell-group v-if="current == 0">
|
|
<view v-for="(item,index) in lists" :key="index">
|
|
<u-cell-item :arrow="false" v-if="item.status =='UN_READY'" style="position: relative;"
|
|
@click="linkMsgDetail(item)">
|
|
<template slot="label">
|
|
<view style="display: inline-block;
|
|
width: 100%;
|
|
height: auto;
|
|
font-family: Gibson;
|
|
font-size: 25rpx;
|
|
word-break: break-all;
|
|
text-overflow: ellipsis;
|
|
word-wrap: break-word;
|
|
white-space: pre-wrap;">
|
|
<view style="color:black;font-size:30rpx;font-weight:500;">{{item.title}}</view>
|
|
<view>{{item.content}}</view>
|
|
<view style="width:400rpx;padding: 10rpx 0;">{{item.createTime}}</view>
|
|
</view>
|
|
</template>
|
|
<!-- <button style="width:100rpx;height:60rpx;float:right;font-size:20rpx;line-height:60rpx;background:#000000;color:white;">未读</button> -->
|
|
</u-cell-item>
|
|
</view>
|
|
|
|
</u-cell-group>
|
|
<u-cell-group v-if="current == 1">
|
|
<view v-for="(item,index) in lists" :key="index">
|
|
<u-cell-item :arrow="false" v-if="item.status == 'ALREADY_READY'" style="position: relative;"
|
|
@click="linkMsgDetail(item)">
|
|
<template slot="label">
|
|
<view style="display: inline-block;
|
|
width: 100%;
|
|
height: auto;
|
|
font-family: Gibson;
|
|
font-size: 25rpx;
|
|
word-break: break-all;
|
|
text-overflow: ellipsis;
|
|
word-wrap: break-word;
|
|
|
|
white-space: pre-wrap;">
|
|
<view style="color:black;font-size:30rpx;font-weight:500;">{{item.title}}</view>
|
|
<view>{{item.content}}</view>
|
|
<view style="width:400rpx;padding: 10rpx 0;">{{item.createTime}}</view>
|
|
</view>
|
|
</template>
|
|
<!-- <button style="width:100rpx;height:60rpx;float:right;font-size:20rpx;line-height:60rpx;background:#F3F3FA;color:black;">已读</button> -->
|
|
</u-cell-item>
|
|
</view>
|
|
</u-cell-group>
|
|
</view>
|
|
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
messages,
|
|
editMessages
|
|
} from "@/api/message.js"
|
|
export default {
|
|
data() {
|
|
return {
|
|
params: {
|
|
pageSize: 20,
|
|
pageNumber: 1,
|
|
memberId: "",
|
|
messageId: "",
|
|
status:"UN_READY"
|
|
},
|
|
loadText: {
|
|
loadmore: '轻轻上拉',
|
|
loading: '努力加载中',
|
|
nomore: '实在没有了'
|
|
},
|
|
list: [{
|
|
name: "未读"
|
|
}, {
|
|
name: "已读"
|
|
}],
|
|
current: 0,
|
|
lists: [],
|
|
status: "loadmore"
|
|
}
|
|
},
|
|
onShow() {
|
|
this.getMessage()
|
|
},
|
|
onReachBottom() {
|
|
this.params.pageNumber++;
|
|
this.statuss = "loading";
|
|
this.getMessage()
|
|
},
|
|
methods: {
|
|
linkMsgDetail(v) {
|
|
|
|
if (v.status == 'UN_READY') {
|
|
let params = {}
|
|
params.messageId = v.memberId
|
|
editMessages(v.id, params).then(res => {
|
|
if (res.data.success) {
|
|
console.log( this.lists)
|
|
this.lists.forEach((item,index)=>{
|
|
console.log(item)
|
|
if(item.id == v.id){
|
|
this.lists.splice(index, 1)
|
|
}
|
|
})
|
|
}
|
|
})
|
|
}
|
|
|
|
// uni.navigateTo({
|
|
// url:`/pages/tabbar/home/messageDetail?data=${encodeURIComponent(JSON.stringify(v))}`
|
|
// })
|
|
|
|
|
|
},
|
|
/**
|
|
* 返回
|
|
*/
|
|
back() {
|
|
if (getCurrentPages().length == 1) {
|
|
uni.switchTab({
|
|
url: "/pages/tabbar/home/index",
|
|
});
|
|
} else {
|
|
uni.navigateBack();
|
|
}
|
|
},
|
|
change(e) {
|
|
console.log(e)
|
|
this.current = e;
|
|
if (e == 0) {
|
|
this.params.status = "UN_READY"
|
|
this.params.pageNumber = 1;
|
|
} else if (e == 1) {
|
|
this.params.status = "ALREADY_READY"
|
|
this.params.pageNumber = 1;
|
|
}
|
|
this.lists = []
|
|
this.getMessage()
|
|
},
|
|
getMessage() {
|
|
this.params.memberId = this.$options.filters.isLogin().id;
|
|
|
|
messages(this.params).then(res => {
|
|
console.log(res)
|
|
if (res.data.success) {
|
|
if (res.data.result.records == '') {
|
|
console.log(11111)
|
|
this.status = "nomore"
|
|
}
|
|
res.data.result.records.forEach(item => {
|
|
this.lists.push(item)
|
|
let obj = {};
|
|
this.lists = this.lists.reduce(
|
|
(cur, next) => {
|
|
//对象去重
|
|
if (next.id != undefined) {
|
|
obj[next.id] ?
|
|
"" :
|
|
(obj[next.id] = true && cur.push(next));
|
|
}
|
|
console.log(cur);
|
|
return cur;
|
|
},
|
|
[]
|
|
)
|
|
})
|
|
|
|
}
|
|
})
|
|
}
|
|
},
|
|
}
|
|
</script>
|
|
<style>
|
|
.foot {
|
|
position: fixed;
|
|
bottom: 0;
|
|
}
|
|
</style>
|