import { inputSync, nextTick, doAfterLogin, getComponent, } from "../../../../../utils/tools"; import { wxRequestPost, wxRedirectTo, wxNavigateTo, } from "../../../../../utils/promise-wx-api"; import words from "../../../../../config/words"; const app = getApp(); let $loading; let $modal; const routes = { demand: "/subpages/points/pages/demand/detail", event: "/subpages/index/pages/report/detail/index", ic_event: "", }; Page({ data: { words, resubscribeShow: false, templateId: "", customerId: "", gridId: "", gridName: "", // 消息列表 list: { loading: false, page: 1, pageSize: 10, isNone: false, state: "", data: [ // { // messageContent: // "哈哈哈哈哈哈哈哈哈哈,哈哈哈哈哈,哈哈哈哈哈哈哈哈哈哈,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈。哈哈哈哈哈哈哈哈哈哈哈哈,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈", // readFlag: "unread", // id: "62109", // title: "您有一条xxxx消息", // createdTime: "2011/11/11 11:11", // unbold: false // }, // { // messageContent: // "哈哈哈哈哈,哈哈哈哈哈,哈哈哈哈哈哈哈哈哈哈,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈。哈哈哈哈哈哈哈哈哈哈哈哈", // readFlag: "read", // id: "11", // title: "您有一条xxxx消息", // createdTime: "2011/11/11 11:11", // unbold: false // } ], }, }, // 初始化组件实例赋值 iniComponentVar() { $loading = getComponent("#loading"); $modal = getComponent("#modal"); }, async onLoad() { this.iniComponentVar(); }, async onShow() { $loading.show(); await doAfterLogin(); const { customerId, gridId, currentGridName } = app.globalData; this.setData({ customerId, gridId, gridName: currentGridName, }); await this.getApiData(); $loading.hide(); }, onReady() { this.requestMsg = this.selectComponent("#requestMsg"); }, onReachBottom() { this.getList(); }, resubscribe(e) { console.log("eee", e); this.setData({ resubscribeShow: e.detail.hasShow, templateId: e.detail.templateId, }); }, inputSync, shiftUnbold(e) { const { currentTarget: { dataset: { id }, }, } = e; console.log("切换展开", id); const { list } = this.data; list.data = list.data.map((item) => { console.log(item.id); if (item.id == id) { item.unbold = !item.unbold; } return item; }); this.setData({ list }); }, toInfo(e) { const { currentTarget: { dataset: { id, target }, }, } = e; console.log("切换阅读", id); const currItem = this.data.list.data.find((item) => item.id == id); if (!currItem) return; if (currItem.messageType && currItem.messageType == "demand") { wxNavigateTo(routes[currItem.messageType], { id: target, showRate: 0, source: "my", }); } else if (currItem.messageType && currItem.messageType == "event") { wxNavigateTo(routes[currItem.messageType], { eventId: target, listResource: "my", }); } else if (currItem.messageType && currItem.messageType == "antiepidemic") { wxNavigateTo("../fangyi-info/index", { noticeId: currItem.targetId, }); } else if (currItem.messageType && currItem.messageType == "ic_event") { wxNavigateTo("/subpages/mine/pages/myReportEvent/detail/index", { eventId: currItem.targetId, // status: 'processing' }); } else if (currItem.messageType && currItem.messageType == "nucleic") { wxNavigateTo("/subpages/epidemicmap/pages/index/index", { type: '1' }); } else if (currItem.messageType && currItem.messageType == "vaccines") { wxNavigateTo("/subpages/epidemicmap/pages/index/index", { type: '2' }); } else { wx.setStorageSync("messageInfo", currItem); wxNavigateTo("../info/index", {}); } }, // 阅读 async read(e) { const { currentTarget: { dataset: { id, target }, }, } = e; console.log("切换阅读", id); const currItem = this.data.list.data.find((item) => item.id == id); if (!currItem || currItem.readFlag == "read") return; const { data: { data: { code }, }, msg, } = await wxRequestPost( "resi/mine/mymessage/readmsg", { messageId: id, }, { // isMock: true, isQuiet: true, } ); wx.hideLoading(); if (msg === "success" && code === 0) { const { list } = this.data; list.data = list.data.map((item) => { if (item.id == id) { item.readFlag = "read"; } return item; }); this.setData({ list }); if (currItem.messageType) { if (currItem.messageType == "demand") { wxNavigateTo(routes[currItem.messageType], { id: target, showRate: 0, source: "my", }); } else if (currItem.messageType == "event") { wxNavigateTo(routes[currItem.messageType], { eventId: target, listResource: "my", }); } // wxNavigateTo(routes[currItem.messageType], { // id: target, // showRate: 0, // source: 'my' // }) } } }, // 删除已读 async readDel() { const { customerId, gridId, list } = this.data; const { data: { data: { code }, }, msg, } = await wxRequestPost( "message/usermessage/delreadmsg", { // customerId, // gridId }, { // isMock: true, isQuiet: false, } ); wx.hideLoading(); if (msg == "success" && code == 0) { list.data = []; list.page = 1; list.isNone = false; list.loading = false; this.setData({ list, }); this.getApiData(); // wx.showToast({ // title: words.message.readAllSuccess, // duration: 1500 // }); } }, // 阅读全部 async readAll() { const { customerId, gridId } = this.data; const { data: { data: { code }, }, msg, } = await wxRequestPost( "resi/mine/mymessage/readallmsg", { customerId, gridId, }, { // isMock: true, isQuiet: false, } ); wx.hideLoading(); if (msg === "success" && code === 0) { const { list } = this.data; list.data = list.data.map((item) => { item.readFlag = "read"; return item; }); this.setData({ list }); wx.showToast({ title: words.message.readAllSuccess, duration: 1500, }); } }, async getApiData() { this.getList(); }, // 重置评论列表 resetList() { let { list } = this.data; list.data = []; list.page = 1; list.isNone = false; this.setData({ list }); }, // 获取评论列表 async getList() { const { customerId, gridId, list } = this.data; // 如果正在加载或没有更多,返回 if (list.loading || list.isNone) return; list.loading = true; this.setData({ list }); const { data: { data: { code, data }, }, msg, } = await wxRequestPost( "resi/mine/mymessage/getmymessage", { gridId, customerId, pageNo: list.page, pageSize: list.pageSize, }, { // isMock: true } ); list.loading = false; if (msg === "success" && code === 0) { let newList = data .map((item) => { item.unbold = false; return item; }) .filter( (item) => list.data.findIndex((sItem) => sItem.id === item.id) === -1 ); console.log("newList---", newList); if (list.page == 1) list.data = newList; else list.data = list.data.concat(newList); console.log("list.data---", list.data); list.page = list.page + 1; if (data.length < list.pageSize) { list.isNone = true; } } this.setData({ list }); }, handleMsg() { if (!this.data.resubscribeShow) this.requestMsg.handleMsg(); }, handleRemsg() { wx.showModal({ title: "提示", content: "是否激活订阅站内信提醒", confirmText: "是", cancelText: "否", success: async (res) => { if (res.confirm) this.reSubscribe(); }, fail: (err) => { console.log("err", err); wx.showToast(err); }, }); }, async reSubscribe() { const { customerId, templateId } = this.data; const { data: { data: { code }, }, msg, } = await wxRequestPost( "message/wxmpmessage/activationsubscribe", { customerId, clientType: "resi", alwaysVisit: "no", templateId, }, { // isMock: true, isQuiet: false, } ); wx.hideLoading(); if (msg === "success" && code === 0) { wx.showToast({ title: "激活成功", icon: "none", duration: 1500, }); this.requestMsg.initTemplateList(); this.setData({ resubscribeShow: false, }); } }, });