admin
2020-12-22 28a4cfadc0a78d1bfec093e0694f420aaf3a725c
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
var help = require('/util/help.js');
var api = require('/util/api.js');
var $this;
Page({
  data: {
    /* 列表数据开始 */
    list: [],
    showLoading: false,
    page: 1,
    total: 0,
    showEmptyDefault: false,
    isRequesting: false,//是否正在请求中
    showFooter: false,
    /* 列表数据结束 */
  },
  onLoad() {
    help.setPageNavBar("消息记录");
    $this = this;
  },
  onPullDownRefresh() {
    console.log('onPullDownRefresh', new Date());
    my.showToast({
      content: "下拉刷新触发"
    });
    this.requestUserMsgList(1);
  },
 
  /**
   * 转为为富文本数据
   * @param {*} list 
   * @param {*} callback 
   */
  convertToRichText(list, callback) {
    for (var i = 0; i < list.length; i++) {
      for (var j = 0; j < list[i].contentList.length; j++) {
        help.loadRichTextNode(list[i].contentList[j].content, function (res) {
          list[i].contentList[j].content = res;
          if (i == list.length - 1 && j == list[i].contentList.length) {
            callback(list);
          }
        });
      }
    }
  },
 
  /**
   * 清除未读消息
   */
  onClearUnRead() {
    $this.requestSetMsgRead();
  },
 
  /**
   * 设置消息已读
   */
  requestSetMsgRead() {
    api.setMsgRead({
      showErrorToast: true,
      showLoading: true,
      success: function (res) {
        if (res.code == 0) {
          my.showToast({
            content: '清除成功'
          })
        }
      }
 
    });
 
  },
  //请求活动
  requestUserMsgList(page, first) {
    $this.setData({
      page: page,
      isRequesting: true,
      showEmptyDefault: false
    });
    api.getUserMsgList({
      page: page,
      showErrorToast: true,
      showLoading: first,
      success: function (res) {
        console.log(res)
        if (res.code == 0) {
          var list = res.data.data;
          //数据预处理
          $this.convertToRichText(list, function (list) {
            //设置列表数据
            if (list != null && list.length > 0) {
              var totalList = $this.data.list.concat(list);
              if (page == 1) {
                totalList = list;
              }
              $this.setData({
                total: res.data.count,
                list: totalList,
                showFooter: totalList.length >= res.data.count
              })
            }
            //设置空列表默认显示
            if (page == 1 && (list == null || list.length == 0)) {
              $this.setData({
                showEmptyDefault: true
              })
            }
          });
        }
      },
      fail: function () {
        //请求失败需要将页码减1
        if ($this.data.page > 1) {
          $this.setData({
            page: $this.data.page - 1
          });
        }
      },
      complete: function () {
        my.stopPullDownRefresh();
        setTimeout(() => {
          $this.setData({
            isRequesting: false,
            showLoading: false
          });
        }, 1000);
      }
    });
 
  },
  //下拉刷新
  onPullDownRefresh() {
    this.requestUserMsgList(1, false);
  },
  //到达底部
  async scrollMytrip() {
    if (this.data.isRequesting)
      return;
    try {
      console.log('scrollMytrip:');
      const { page, list, } = this.data;
      // 判断是否还有数据需要加载
      if (list.length < this.data.total) {
        //开启加载
        this.setData({ showLoading: true });
        const newPage = page + 1;
        $this.requestUserMsgList(newPage);
      }
    } catch (e) {
      this.setData({ showLoading: false });
      console.log('scrollMytrip执行异常:', e);
    }
  },
});