// pages/messageCenter/index.js
|
const $$ = require('../../utils/util');
|
|
// 获取我的消息
|
function getMessageDataApi(submitData) {
|
return $$.request({ url: 'noticeParty/pageMyNotice', type: 'get', submitData, service: 'mediate' });
|
}
|
// 阅读我的消息,将消息标记为已读
|
function setMessageReadApi(submitData) {
|
return $$.request({ url: 'noticeParty/readNotice?id=' + submitData, type: 'get', service: 'mediate' });
|
}
|
|
Page({
|
/**
|
* 页面的初始数据
|
*/
|
data: {
|
imgUrl: $$.url.img,
|
tab: [
|
{ title: '未读', name: '1' },
|
{ title: '已读', name: '2' },
|
],
|
loading: false, // 滚动到底部分页的加载状态
|
search: {
|
page: 1,
|
size: 20,
|
readStatus: '1',
|
},
|
listData: [],
|
total: 0, // 数据总数
|
popup: {
|
show: false,
|
buttonText: '我知道了',
|
},
|
},
|
|
// 切换tab
|
handleChangeTab(e) {
|
this.getMessageData({ ...this.data.search, readStatus: e.detail.name, page: 1 });
|
},
|
|
// 点击查看信息
|
handleRead(e) {},
|
|
// 点击开启弹窗
|
handleOpenPopup(e) {
|
let item = e.currentTarget.dataset.item;
|
let index = e.currentTarget.dataset.index;
|
this.setData({ popup: { ...item, index, show: true, buttonText: item.visitUrl ? '前往操作' : '我知道了' } });
|
},
|
|
// 消息弹窗操作
|
async handleClickPopup() {
|
if (this.data.popup.visitUrl) {
|
this.setData({ popup: { show: false } });
|
wx.navigateTo({
|
url: '../../' + this.data.popup.visitUrl,
|
});
|
} else {
|
const res = await setMessageReadApi(this.data.popup.id);
|
if (res.type) {
|
if (this.data.listData[this.data.popup.index]) {
|
this.data.listData[this.data.popup.index].readStatus = '2';
|
}
|
this.setData({ listData: this.data.listData, popup: { show: false } });
|
}
|
}
|
},
|
|
// 关闭弹窗
|
handleClosePopup() {
|
this.setData({ popup: { show: false } });
|
},
|
|
// 滚动到底部获取数据
|
handlescrolltolower() {
|
if (this.data.listData.length >= this.data.total) {
|
return false;
|
}
|
if (!this.data.loading) {
|
this.data.loading = true;
|
this.setData({ loading: this.data.loading });
|
let submitData = { ...this.data.search };
|
submitData.page = submitData.page + 1;
|
this.getMessageData(submitData);
|
}
|
},
|
|
// 获取消息数据
|
async getMessageData(submitData) {
|
$$.showLoading();
|
const res = await getMessageDataApi(submitData);
|
$$.hideLoading();
|
if (this.data.loading) {
|
// 取消滚动底部的加载状态
|
this.setData({ loading: false });
|
}
|
if (res.type) {
|
if (submitData.page === 1) {
|
this.data.listData = res.data?.content || [];
|
} else {
|
this.data.listData = this.data.listData.concat(res.data?.content || []);
|
}
|
this.setData({
|
tab: this.data.tab.map((x) => {
|
if (x.name == submitData.readStatus) {
|
x.title = `${x.name === '1' ? '未读' : '已读'}(${res.data?.totalElements || 0})`;
|
}
|
return x;
|
}),
|
search: submitData,
|
listData: this.data.listData,
|
total: res.data?.totalElements || 0,
|
});
|
}
|
},
|
|
/**
|
* 生命周期函数--监听页面加载
|
*/
|
onLoad(options) {
|
this.getMessageData(this.data.search);
|
},
|
});
|