"use strict"; cc._RF.push(module, '7ab42uMxktP54+bqyufoXdb', 'prompt_model'); // Scripts/mod/prompt/prompt_model.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 这里填写详细说明,主要填写该模块的功能简要 //
Create: 2019-04-16 15:45:17 // -------------------------------------------------------------------- var PromptEvent = require("prompt_event"); var PromptModel = cc.Class({ "extends": BaseClass, ctor: function ctor() {}, properties: {}, initConfig: function initConfig() { this.prompt_list = []; this.auto_id = 0; }, addPromptData: function addPromptData(data) { var config = Config.notice_data.data_get[data.type]; if (config == null) { cc.log("==============> 添加小图标失败, 未配置该小图标数据, 类型为 ", data.type); return; } var prompt_vo = null; var obj = this.getSridByData(data); var cur_rid = obj.rid; var cur_srv_id = obj.srv_id; if (this.checkIsInList(data.type, cur_rid, cur_srv_id) == true) return; this.auto_id = this.auto_id + 1; var PromptVo = require("prompt_vo"); if (config.can_overly == 1) { prompt_vo = this.getPromptVoByType(data.type); if (prompt_vo == null) { prompt_vo = new PromptVo(data.type, this.auto_id); this.prompt_list.push(prompt_vo); } prompt_vo.update(data); } else { prompt_vo = new PromptVo(data.type, this.auto_id); prompt_vo.update(data); this.prompt_list.push(prompt_vo); } gcore.GlobalEvent.fire(PromptEvent.ADD_PROMPT_DATA, prompt_vo); }, getPromptVoByType: function getPromptVoByType(type) { for (var i = 0; i < this.prompt_list.length; ++i) { var v = this.prompt_list[i]; if (v.type == type) { return v; } } }, checkIsInList: function checkIsInList(type, rid, srv_id) { for (var i = 0; i < this.prompt_list.length; ++i) { var _vo = this.prompt_list[i]; if (_vo.type == type) { for (var k = 0; k < _vo.list.length; ++k) { var v = _vo.list[k]; var obj = _vo.getSridByData(v.data); var _rid = obj.rid; var _srv_id = obj.srv_id; var _rolename = obj.role_name; if (Utils.getNorKey(_rid, _srv_id) == Utils.getNorKey(rid, srv_id)) { return true; } } } } return false; }, getSridByData: function getSridByData(data) { var rid = 0, srv_id = "", role_name = ""; var bbs_id = 0; if (data && data.arg_uint32 && data.arg_uint32.length > 0) { for (var i = 0; i < data.arg_uint32.length; ++i) { var temp = data.arg_uint32[i]; if (temp) { if (temp.key == 1) { rid = temp.value; } else if (temp.key == 2) { bbs_id = temp.value; //留言板那边的..表示留言id } } } } if (data && data.arg_str && data.arg_str.length > 0) { for (var _i = 0; _i < data.arg_str.length; ++_i) { var _temp = data.arg_str[_i]; if (_temp) { if (_temp.key == 1) { srv_id = _temp.value; } else if (_temp.key == 2) { role_name = _temp.value; } } } } return { rid: rid, srv_id: srv_id, role_name: role_name, bbs_id: bbs_id }; }, getPromptList: function getPromptList() { return this.prompt_list; }, // -- 获取列表中是否有未气泡提示的消息 getNotBubblePrompt: function getNotBubblePrompt() { for (var k = 0; k < this.prompt_list.length; ++k) { var data = this.prompt_list[k]; if (data.is_show_bubble == false) { return data; } } }, //移除一个提示数据,根据类型和id移除 removePromptData: function removePromptData(type, id) { if (this.prompt_list.length > 0) { for (var i = 0; i < this.prompt_list.length; ++i) { if (vo.type == type && vo.id == id) { this.prompt_list.splice(i, 1); break; } } gcore.GlobalEvent.fire(PromptEvent.REMOVE_PROMPT_DATA); } }, //根据类型去删除提示数据【例如通过好友图标打开好友界面时候去清理提示数据】 removePromptDataByTpye: function removePromptDataByTpye(_type) { if (this.prompt_list.length > 0) { for (var i = 0; i < this.prompt_list.length; ++i) { var _vo2 = this.prompt_list[i]; if (_vo2.type == _type) { this.prompt_list.splice(i, 1); break; } } gcore.GlobalEvent.fire(PromptEvent.REMOVE_PROMPT_DATA); } }, //检测类型是有灯泡 checkPromptDataByTpye: function checkPromptDataByTpye(_type) { if (this.prompt_list.length > 0) { for (var i = 0; i < this.prompt_list.length; ++i) { var _vo3 = this.prompt_list[i]; if (_vo3.type == _type) { return true; } } } return false; } }); cc._RF.pop();