xusd
7 days ago 998218675eb243d43912c203174a6b72b299c0f8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
// 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);
    },
});