difenduandada
2024-12-31 34abe6963b344c882358274957f4b992456fee40
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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
 
                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/Scripts/mod/mail/mail_controller.js';
                    var __require = nodeEnv ? function (request) {
                        return cc.require(request);
                    } : function (request) {
                        return __quick_compile_project__.require(request, __filename);
                    };
                    function __define (exports, require, module) {
                        if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
cc._RF.push(module, 'cdcc1o/q79C3rQ5QVTLFu+1', 'mail_controller');
// Scripts/mod/mail/mail_controller.js
 
"use strict";
 
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
//      这里填写详细说明,主要填写该模块的功能简要
// <br/>Create: 2018-12-08 14:17:36
// --------------------------------------------------------------------
var MailController = cc.Class({
  "extends": BaseController,
  ctor: function ctor() {},
  // 初始化配置数据
  initConfig: function initConfig() {
    var MailModel = require("mail_model");
 
    this.model = new MailModel();
    this.model.initConfig();
  },
  // 返回当前的model
  getModel: function getModel() {
    return this.model;
  },
  // 注册监听事件
  registerEvents: function registerEvents() {// gcore.GlobalEvent.bind(EventId.EVT_ROLE_CREATE_SUCCESS, (function () { this.send10800(); }).bind(this));
  },
  // 注册协议接受事件
  registerProtocals: function registerProtocals() {
    //------邮件-----
    this.RegisterProtocal(10800, this.mailListHandler); //邮件列表
 
    this.RegisterProtocal(10801, this.getGoodsHandler); //提取单个邮件的附件
 
    this.RegisterProtocal(10802, this.getAllGoodsHandler); //一键提取附件
 
    this.RegisterProtocal(10803, this.handle10803); //新邮件推送
 
    this.RegisterProtocal(10804, this.delMailHandler); //删除没有附件的邮件
 
    this.RegisterProtocal(10805, this.readMailHandler); //读取邮件
  },
  // 打开邮件主界面
  openMailUI: function openMailUI(status) {
    if (status == true) {
      if (this.mail_ui == null) {
        var MailWindow = require("mail_window");
 
        this.mail_ui = new MailWindow();
      }
 
      this.mail_ui.open();
    } else {
      if (this.mail_ui) {
        this.mail_ui.close();
        this.mail_ui = null;
      }
    }
  },
  //打开邮件内容
  openMailInfo: function openMailInfo(bool, data) {
    if (bool == true) {
      if (this.mail_info == null) {
        var MailInfoWindow = require("mail_info_window");
 
        this.mail_info = new MailInfoWindow();
      }
 
      this.mail_info.open();
      this.mail_info.setData(data);
    } else {
      if (this.mail_info) {
        this.mail_info.close();
        this.mail_info = null;
      }
    }
  },
  //获取邮件信息
  send10800: function send10800() {
    this.SendProtocal(10800, {});
  },
  //初始化邮件列表
  mailListHandler: function mailListHandler(data) {
    this.model.initMailList(data.mail);
  },
  //新增一个邮件
  handle10803: function handle10803(data) {
    this.model.addMailItem(data.mail);
  },
  //请求删除一个邮件
  deletMailSend: function deletMailSend(ids) {
    var protocal = {};
    protocal.ids = ids;
    this.SendProtocal(10804, protocal);
  },
  //推送删除邮件
  delMailHandler: function delMailHandler(data) {
    message(data.msg);
    this.model.delMailItem(data.ids);
  },
  //读取一个邮件
  read: function read(bid, srv_id) {
    var protocal = {};
    protocal.id = bid;
    protocal.srv_id = srv_id;
    this.SendProtocal(10805, protocal);
  },
  //读取一个邮件状态之后
  readMailHandler: function readMailHandler(data) {
    if (data.code == 1) {
      this.model.readMailItem(data);
    }
  },
  //提取邮件附件
  getGoods: function getGoods(id, srv_id) {
    var protocal = {};
    protocal.id = id;
    protocal.srv_id = srv_id;
    this.SendProtocal(10801, protocal);
  },
  //提取邮件返回
  getGoodsHandler: function getGoodsHandler(data) {
    message(data.msg);
 
    if (data.code == 1) {
      this.model.getMailGood(data);
    }
  },
  //一键提取邮件
  getAllGoods: function getAllGoods() {
    this.SendProtocal(10802, {});
  },
  //一键提取返回
  getAllGoodsHandler: function getAllGoodsHandler(data) {
    message(data.msg);
    if (data.ids == null || Utils.next(data.ids) == null) return;
    this.model.getAllMailGood(data.ids);
  },
  //获取已经读取过的 且没有附件的邮件,用于一键删除
  getHasReadNonRewardList: function getHasReadNonRewardList() {
    return this.model.getHasReadNonRewardList();
  },
  getMailInfoView: function getMailInfoView() {
    if (this.mail_info) {
      return this.mail_info;
    }
 
    return null;
  }
});
module.exports = MailController;
 
cc._RF.pop();
                    }
                    if (nodeEnv) {
                        __define(__module.exports, __require, __module);
                    }
                    else {
                        __quick_compile_project__.registerModuleFunc(__filename, function () {
                            __define(__module.exports, __require, __module);
                        });
                    }
                })();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxtYWlsXFxtYWlsX2NvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiTWFpbENvbnRyb2xsZXIiLCJjYyIsIkNsYXNzIiwiQmFzZUNvbnRyb2xsZXIiLCJjdG9yIiwiaW5pdENvbmZpZyIsIk1haWxNb2RlbCIsInJlcXVpcmUiLCJtb2RlbCIsImdldE1vZGVsIiwicmVnaXN0ZXJFdmVudHMiLCJyZWdpc3RlclByb3RvY2FscyIsIlJlZ2lzdGVyUHJvdG9jYWwiLCJtYWlsTGlzdEhhbmRsZXIiLCJnZXRHb29kc0hhbmRsZXIiLCJnZXRBbGxHb29kc0hhbmRsZXIiLCJoYW5kbGUxMDgwMyIsImRlbE1haWxIYW5kbGVyIiwicmVhZE1haWxIYW5kbGVyIiwib3Blbk1haWxVSSIsInN0YXR1cyIsIm1haWxfdWkiLCJNYWlsV2luZG93Iiwib3BlbiIsImNsb3NlIiwib3Blbk1haWxJbmZvIiwiYm9vbCIsImRhdGEiLCJtYWlsX2luZm8iLCJNYWlsSW5mb1dpbmRvdyIsInNldERhdGEiLCJzZW5kMTA4MDAiLCJTZW5kUHJvdG9jYWwiLCJpbml0TWFpbExpc3QiLCJtYWlsIiwiYWRkTWFpbEl0ZW0iLCJkZWxldE1haWxTZW5kIiwiaWRzIiwicHJvdG9jYWwiLCJtZXNzYWdlIiwibXNnIiwiZGVsTWFpbEl0ZW0iLCJyZWFkIiwiYmlkIiwic3J2X2lkIiwiaWQiLCJjb2RlIiwicmVhZE1haWxJdGVtIiwiZ2V0R29vZHMiLCJnZXRNYWlsR29vZCIsImdldEFsbEdvb2RzIiwiVXRpbHMiLCJuZXh0IiwiZ2V0QWxsTWFpbEdvb2QiLCJnZXRIYXNSZWFkTm9uUmV3YXJkTGlzdCIsImdldE1haWxJbmZvVmlldyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsSUFBSUEsY0FBYyxHQUFHQyxFQUFFLENBQUNDLEtBQUgsQ0FBUztBQUMxQixh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LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGF1dGhvcjogeHh4QHN5Zy5jb20o5b+F5aGrLCDliJvlu7rmqKHlnZfnmoTkurrlkZgpXG4vLyBAZGVzY3JpcHRpb246XG4vLyAgICAgIOi/memHjOWhq+WGmeivpue7huivtOaYjizkuLvopoHloavlhpnor6XmqKHlnZfnmoTlip/og73nroDopoFcbi8vIDxici8+Q3JlYXRlOiAyMDE4LTEyLTA4IDE0OjE3OjM2XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG52YXIgTWFpbENvbnRyb2xsZXIgPSBjYy5DbGFzcyh7XG4gICAgZXh0ZW5kczogQmFzZUNvbnRyb2xsZXIsXG4gICAgY3RvcjogZnVuY3Rpb24gKCkge1xuICAgIH0sXG5cbiAgICAvLyDliJ3lp4vljJbphY3nva7mlbDmja5cbiAgICBpbml0Q29uZmlnOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBNYWlsTW9kZWwgPSByZXF1aXJlKFwibWFpbF9tb2RlbFwiKTtcbiAgICAgICAgdGhpcy5tb2RlbCA9IG5ldyBNYWlsTW9kZWwoKTtcbiAgICAgICAgdGhpcy5tb2RlbC5pbml0Q29uZmlnKCk7XG4gICAgfSxcblxuICAgIC8vIOi/lOWbnuW9k+WJjeeahG1vZGVsXG4gICAgZ2V0TW9kZWw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gICAgfSxcblxuICAgIC8vIOazqOWGjOebkeWQrOS6i+S7tlxuICAgIHJlZ2lzdGVyRXZlbnRzOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIGdjb3JlLkdsb2JhbEV2ZW50LmJpbmQoRXZlbnRJZC5FVlRfUk9MRV9DUkVBVEVfU1VDQ0VTUywgKGZ1bmN0aW9uICgpIHsgdGhpcy5zZW5kMTA4MDAoKTsgfSkuYmluZCh0aGlzKSk7XG4gICAgfSxcblxuICAgIC8vIOazqOWGjOWNj+iuruaOpeWPl+S6i+S7tlxuICAgIHJlZ2lzdGVyUHJvdG9jYWxzOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vLS0tLS0t6YKu5Lu2LS0tLS1cbiAgICAgICAgdGhpcy5SZWdpc3RlclByb3RvY2FsKDEwODAwLCB0aGlzLm1haWxMaXN0SGFuZGxlcik7ICAgICAgICAgIC8v6YKu5Lu25YiX6KGoXG4gICAgICAgIHRoaXMuUmVnaXN0ZXJQcm90b2NhbCgxMDgwMSwgdGhpcy5nZXRHb29kc0hhbmRsZXIpOyAgICAgICAgICAvL+aPkOWPluWNleS4qumCruS7tueahOmZhOS7tlxuICAgICAgICB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMTA4MDIsIHRoaXMuZ2V0QWxsR29vZHNIYW5kbGVyKTsgICAgICAgICAgLy/kuIDplK7mj5Dlj5bpmYTku7ZcbiAgICAgICAgdGhpcy5SZWdpc3RlclByb3RvY2FsKDEwODAzLCB0aGlzLmhhbmRsZTEwODAzKTsgICAgICAgICAgLy/mlrDpgq7ku7bmjqjpgIFcbiAgICAgICAgdGhpcy5SZWdpc3RlclByb3RvY2FsKDEwODA0LCB0aGlzLmRlbE1haWxIYW5kbGVyKTsgICAgICAgICAgLy/liKDpmaTmsqHmnInpmYTku7bnmoTpgq7ku7ZcbiAgICAgICAgdGhpcy5SZWdpc3RlclByb3RvY2FsKDEwODA1LCB0aGlzLnJlYWRNYWlsSGFuZGxlcik7ICAgICAgICAgIC8v6K+75Y+W6YKu5Lu2XG4gICAgfSxcblxuICAgIC8vIOaJk+W8gOmCruS7tuS4u+eVjOmdolxuICAgIG9wZW5NYWlsVUk6IGZ1bmN0aW9uIChzdGF0dXMpIHtcbiAgICAgICAgaWYgKHN0YXR1cyA9PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tYWlsX3VpID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB2YXIgTWFpbFdpbmRvdyA9IHJlcXVpcmUoXCJtYWlsX3dpbmRvd1wiKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1haWxfdWkgPSBuZXcgTWFpbFdpbmRvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5tYWlsX3VpLm9wZW4oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1haWxfdWkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1haWxfdWkuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1haWxfdWkgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8v5omT5byA6YKu5Lu25YaF5a65XG4gICAgb3Blbk1haWxJbmZvOiBmdW5jdGlvbiAoYm9vbCwgZGF0YSkge1xuICAgICAgICBpZiAoYm9vbCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tYWlsX2luZm8gPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHZhciBNYWlsSW5mb1dpbmRvdyA9IHJlcXVpcmUoXCJtYWlsX2luZm9fd2luZG93XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMubWFpbF9pbmZvID0gbmV3IE1haWxJbmZvV2luZG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm1haWxfaW5mby5vcGVuKCk7XG4gICAgICAgICAgICB0aGlzLm1haWxfaW5mby5zZXREYXRhKGRhdGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMubWFpbF9pbmZvKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYWlsX2luZm8uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1haWxfaW5mbyA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLy/ojrflj5bpgq7ku7bkv6Hmga9cbiAgICBzZW5kMTA4MDA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5TZW5kUHJvdG9jYWwoMTA4MDAsIHt9KTtcbiAgICB9LFxuXG4gICAgLy/liJ3lp4vljJbpgq7ku7bliJfooahcbiAgICBtYWlsTGlzdEhhbmRsZXI6IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgIHRoaXMubW9kZWwuaW5pdE1haWxMaXN0KGRhdGEubWFpbClcbiAgICB9LFxuXG4gICAgLy/mlrDlop7kuIDkuKrpgq7ku7ZcbiAgICBoYW5kbGUxMDgwMzpmdW5jdGlvbihkYXRhKXtcbiAgICAgICAgdGhpcy5tb2RlbC5hZGRNYWlsSXRlbShkYXRhLm1haWwpO1xuICAgIH0sXG5cbiAgICAvL+ivt+axguWIoOmZpOS4gOS4qumCruS7tlxuICAgIGRlbGV0TWFpbFNlbmQ6ZnVuY3Rpb24oaWRzKXtcbiAgICAgICAgdmFyIHByb3RvY2FsID0ge307XG4gICAgICAgIHByb3RvY2FsLmlkcyA9IGlkcztcbiAgICAgICAgdGhpcy5TZW5kUHJvdG9jYWwoMTA4MDQscHJvdG9jYWwpO1xuICAgIH0sXG5cbiAgICAvL+aOqOmAgeWIoOmZpOmCruS7tlxuICAgIGRlbE1haWxIYW5kbGVyOmZ1bmN0aW9uKGRhdGEpe1xuICAgICAgICBtZXNzYWdlKGRhdGEubXNnKTtcbiAgICAgICAgdGhpcy5tb2RlbC5kZWxNYWlsSXRlbShkYXRhLmlkcyk7XG4gICAgfSxcblxuICAgIC8v6K+75Y+W5LiA5Liq6YKu5Lu2XG4gICAgcmVhZDpmdW5jdGlvbihiaWQsc3J2X2lkKXtcbiAgICAgICAgdmFyIHByb3RvY2FsID0ge307XG4gICAgICAgIHByb3RvY2FsLmlkID0gYmlkO1xuICAgICAgICBwcm90b2NhbC5zcnZfaWQgPSBzcnZfaWQ7XG4gICAgICAgIHRoaXMuU2VuZFByb3RvY2FsKDEwODA1LHByb3RvY2FsKTtcbiAgICB9LFxuXG4gICAgLy/or7vlj5bkuIDkuKrpgq7ku7bnirbmgIHkuYvlkI5cbiAgICByZWFkTWFpbEhhbmRsZXI6ZnVuY3Rpb24oZGF0YSl7XG4gICAgICAgIGlmKGRhdGEuY29kZSA9PSAxKXtcbiAgICAgICAgICAgIHRoaXMubW9kZWwucmVhZE1haWxJdGVtKGRhdGEpXG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLy/mj5Dlj5bpgq7ku7bpmYTku7ZcbiAgICBnZXRHb29kczpmdW5jdGlvbihpZCxzcnZfaWQpe1xuICAgICAgICB2YXIgcHJvdG9jYWwgPSB7fTtcbiAgICAgICAgcHJvdG9jYWwuaWQgPSBpZDtcbiAgICAgICAgcHJvdG9jYWwuc3J2X2lkID0gc3J2X2lkO1xuICAgICAgICB0aGlzLlNlbmRQcm90b2NhbCgxMDgwMSxwcm90b2NhbClcbiAgICB9LFxuXG4gICAgLy/mj5Dlj5bpgq7ku7bov5Tlm55cbiAgICBnZXRHb29kc0hhbmRsZXI6ZnVuY3Rpb24oZGF0YSl7XG4gICAgICAgIG1lc3NhZ2UoZGF0YS5tc2cpO1xuICAgICAgICBpZihkYXRhLmNvZGUgPT0gMSl7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLmdldE1haWxHb29kKGRhdGEpXG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLy/kuIDplK7mj5Dlj5bpgq7ku7ZcbiAgICBnZXRBbGxHb29kczpmdW5jdGlvbigpe1xuICAgICAgICB0aGlzLlNlbmRQcm90b2NhbCgxMDgwMix7fSlcbiAgICB9LFxuXG4gICAgLy/kuIDplK7mj5Dlj5bov5Tlm55cbiAgICBnZXRBbGxHb29kc0hhbmRsZXI6ZnVuY3Rpb24oZGF0YSl7XG4gICAgICAgIG1lc3NhZ2UoZGF0YS5tc2cpO1xuICAgICAgICBpZihkYXRhLmlkcyA9PSBudWxsIHx8IFV0aWxzLm5leHQoZGF0YS5pZHMpID09IG51bGwpcmV0dXJuXG4gICAgICAgIHRoaXMubW9kZWwuZ2V0QWxsTWFpbEdvb2QoZGF0YS5pZHMpO1xuICAgIH0sXG5cbiAgICAvL+iOt+WPluW3sue7j+ivu+WPlui/h+eahCDkuJTmsqHmnInpmYTku7bnmoTpgq7ku7Ys55So5LqO5LiA6ZSu5Yig6ZmkXG4gICAgZ2V0SGFzUmVhZE5vblJld2FyZExpc3Q6ZnVuY3Rpb24oKXtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwuZ2V0SGFzUmVhZE5vblJld2FyZExpc3QoKTtcbiAgICB9LFxuXG4gICAgZ2V0TWFpbEluZm9WaWV3OmZ1bmN0aW9uKCl7XG4gICAgICAgIGlmKHRoaXMubWFpbF9pbmZvKXtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1haWxfaW5mb1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgfSxcblxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gTWFpbENvbnRyb2xsZXI7Il19