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