"use strict";
|
cc._RF.push(module, '7ab42uMxktP54+bqyufoXdb', 'prompt_model');
|
// Scripts/mod/prompt/prompt_model.js
|
|
"use strict";
|
|
// --------------------------------------------------------------------
|
// @author: xxx@syg.com(必填, 创建模块的人员)
|
// @description:
|
// 这里填写详细说明,主要填写该模块的功能简要
|
// <br/>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();
|