// pages/notice/notice.js const notificationservice = require('../../../service/notificationservice'); const moment = require('../../../utils/moment.min'); const util = require('../../../utils/util.js'); const app = getApp(); Page({ /** * 页面的初始数据 */ data: { currentTab: 0, tabList: [ { name: '工作通知', }, { name: '风险预警', }, { name: '系统通知', }, ], unReadList: [0, 0, 0], pageList: [[], [], []], showNoticeDetail: false, showTitle: '', showContent: '', confirmBtn: { content: '知道了', variant: 'base' }, }, //计算swiper高度方法(在切换的时候调用) tabsHeight(element) { let that = this; let query = wx.createSelectorQuery(); //必须要先创建一个查询 query .select(element) .boundingClientRect(function (rect) { that.setData({ pageheight: rect.height + 'px', }); }) .exec(); }, swichNav: function (e) { var that = this; if (this.data.currentTab === e.target.dataset.current) { return false; } else { that.setData({ currentTab: e.target.dataset.current, navScrollLeft: e.target.dataset.current >= 4 ? e.target.dataset.current * 60 : 0, //判断当前选中的个数是否是第5个 }); that.tabsHeight('.page' + e.target.dataset.current); //查询哪一个元素 } }, bindChange: function (e) { var that = this; that.setData({ currentTab: e.detail.current, navScrollLeft: e.detail.current >= 4 ? e.detail.current * 60 : 0, //判断当前选中的个数是否是第5个 }); // that.tabsHeight('.page'+e.target.dataset.current); //查询哪一个元素 }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.tabsHeight('.page0'); this.getNotice(); }, onReachBottom() { if (this.cPage && this.tPage) { if (this.cPage < this.tPage) { this.getNotice(this.cPage + 1); } } }, getNotice(cPage = 1) { var that = this; notificationservice.getNotification( app.globalData.accessToken.userId, cPage, { onHead(header) { that.cPage = parseInt(header.currentPage); that.tPage = parseInt(header.totalPage); console.log(`cPage:${that.cPage}, tPage:${that.tPage}`); }, success(res) { const { pageList, unReadList } = that.data; res.forEach(r => { r.updateTime = moment(r.updateTime).format('YYYY年MM月DD日'); switch (r.typeId) { // 系统通知 case '1': if (!r.hasRead) unReadList[2]++; pageList[2].push(r); break; // 工作通知 case '2': if (!r.hasRead) unReadList[0]++; pageList[0].push(r); break; // 预警警示 case '3': if (!r.hasRead) unReadList[1]++; pageList[1].push(r); break; default: if (!r.hasRead) unReadList[2]++; pageList[2].push(r); break; } }); that.setData({ pageList, unReadList }); that.tabsHeight('.page0'); //刷新高度 }, }, 30, ); }, showDialog(e) { const { index } = e.currentTarget.dataset; const notice = this.data.pageList[index[0]][index[1]]; this.setData({ showNoticeDetail: true, showTitle: notice.title, showContent: notice.content, }); if (!notice.hasRead) { var that = this; const { unReadList } = this.data; notificationservice.updateReadState( app.globalData.accessToken.userId, [{ noticeId: notice.id, hasRead: true, hasSigned: true }], { success() { notice.hasRead = true; unReadList[index[0]]--; that.setData({ [`pageList[${index[0]}][${index[1]}]`]: notice, unReadList, }); }, }, ); } }, closeDialog() { this.setData({ showNoticeDetail: false }); }, });