// 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); }, });