"use strict"; cc._RF.push(module, 'caaa0TUfDhKV6fHAHA9DtOY', 'cmp.mail.test.wnd'); // Scripts/mod/mail/cmp/cmp.mail.test.wnd.js "use strict"; var BridgeWindow = require("bridge.window"); var FxTogs = require("nx.fx.togs"); var SvcList = require("nx.fx.sv.expand"); var mod = require("mail.mod"); var MailEvent = require("mail_event"); cc.Class({ "extends": BridgeWindow, properties: { nodTog: { "default": null, type: FxTogs }, nodCnt: { "default": null, type: SvcList }, nodInfo: { "default": null, type: cc.Node } }, onLoad: function onLoad() { this.mod = mod.getInstance(); if (!this.mod) { this.delayClose(); } this.select_index = 0; // //刷新邮件 this.bindGEvent(MailEvent.UPDATE_ITEM, this.freshMailList.bind(this)); // //刷新公告 this.bindGEvent(MailEvent.UPDATE_NOTICE, this.freshMailList.bind(this)); // //读取公告 this.bindGEvent(MailEvent.READ_INFO_NOTICE, this.showNoticeInfo.bind(this)); // //读取邮件 this.bindGEvent(MailEvent.OPEN_INFO_WIN, this.showMailInfo.bind(this)); this.bindGEvent(MailEvent.FRESH_ITEM, this.dealMailStatus.bind(this)); }, onOpenConfigs: function onOpenConfigs(_param) { this.nodTog.posTog = this.onTogMenu.bind(this); this.nodTog.togTo(0); this.onTogMenu(0); }, onPreClosed: function onPreClosed() { this.nodCnt.rebuild([]); }, onTogMenu: function onTogMenu(_idx) { var _this = this; var id = parseInt(_idx); this.choice = id; var mails = id == 0 ? this.mod.getAllMailArray() : this.mod.getNoticeArray(); nx.gui.setActive(this.nodInfo, "", id == 1 ? nx.dt.arrNEmpty(mails) : nx.dt.arrNEmpty(mails)); nx.gui.setActive(this.nodCnt.node, "lay", id == 1 ? nx.dt.arrNEmpty(mails) : true); var cmp = nx.gui.getComponent(this.nodCnt.node, "scrollCon", cc.ScrollView); if (cmp) { cmp.scrollToTop(0.01); } this.nodCnt.rebuild(mails); var chd = nx.gui.find(this.nodCnt.bindSCV, "mask/content").children; this.scheduleOnce(function () { _this.nodCnt.addFocus(0); if (chd[0]) { chd[0].svItem ? _this.onFocusChange(chd[0].svItem) : _this.onFocusChange({}); } }, 0.1); // this.dealOp(); }, onFocusChange: function onFocusChange(_item) { // 空 if (nx.dt.objEmpty(_item) || nx.dt.objEmpty(_item.mdata)) { return; } var chd = nx.gui.find(this.nodCnt.bindSCV, "mask/content").children; // this.list.cleanFocus(); for (var i = 0; i < chd.length; i++) { var nod = chd[i]; if (nod.svItem) { if (i == _item.index) { nod.svItem.onFocus(); // break; } else { nod.svItem.outFocus(); } } } // 聚焦 // this.list.cleanFocus(); // this.list.addFocus( _item.index ); this.select_index = _item.index; if (_item.mdata.status >= 0) { //邮件 this.mod.requireMailItem(_item.mdata.id, _item.mdata.srv_id, this.info_win); } else if (_item.mdata.flag >= 0) { //公告 this.mod.readNotice(_item.mdata.id); } }, showMailInfo: function showMailInfo(_data) { this.readMail = _data; var cmp = nx.gui.getComponent(this.nodInfo, "", "cmp.mail.info"); if (cmp) { cmp.setData(_data); } nx.gui.setActive(this.nodInfo, "", true); // this.dealMailStatus(); }, dealMailStatus: function dealMailStatus() { var _this2 = this; var chd = nx.gui.find(this.nodCnt.bindSCV, "mask/content").children; // this.list.cleanFocus(); var mails = this.choice == 0 ? this.mod.getAllMailArray() : this.mod.getNoticeArray(); var change = {}; mails.forEach(function (_mail) { if (_mail.id == _this2.readMail.id) { change = _mail; } }); for (var i = 0; i < chd.length; i++) { var nod = chd[i]; if (nod.svItem && nx.dt.objNEmpty(change)) { if (change.id == nod.svItem.mdata.id) { nod.svItem.rebind(i, change); // break; } } } // this.dealOp(); }, freshMailList: function freshMailList() { this.onTogMenu(this.choice); }, touchGetAll: function touchGetAll() { this.mod.getAllGoods(); }, touchDel: function touchDel() { var mails = this.choice == 0 ? this.mod.getAllMailArray() : this.mod.getNoticeArray(); var readMails = []; mails.forEach(function (_mail) { if (_mail.status == 2 || _mail.status == 1 && nx.dt.arrEmpty(_mail.assets)) { readMails.push(_mail); } }); if (nx.dt.arrNEmpty(readMails)) { var list = this.mod.getHasReadNonRewardList(); this.mod.deletMailSend(list); } else { nx.tbox("NoneMailDel"); } }, showNoticeInfo: function showNoticeInfo(_id) { var notice_msg = this.mod.getNoticeMessage(_id); if (notice_msg) { this.nodInfo.getComponent("cmp.mail.info").setData(notice_msg); } } }); cc._RF.pop();