"use strict";
cc._RF.push(module, 'b97d9TdONJKjZbp53rr1p3g', 'mail_info_window');
// Scripts/mod/mail/view/mail_info_window.js
"use strict";
// --------------------------------------------------------------------
// @author: shiraho@syg.com(必填, 创建模块的人员)
// @description:
// 竖版邮件/公告详情
//
Create: new Date().toISOString()
// --------------------------------------------------------------------
var PathTool = require("pathtool");
var TimeTool = require("timetool");
var MailController = require("mail_controller");
var MailEvent = require("mail_event");
var MailInfoWindow = cc.Class({
"extends": BaseView,
ctor: function ctor() {
this.prefabPath = PathTool.getPrefabPath("mail", "mail_info_window");
this.win_type = WinType.Big;
this.data = null;
this.ctrl = MailController.getInstance();
this.model = MailController.getInstance().getModel();
this.goods_list = [];
},
openCallBack: function openCallBack() {
this.background = this.root_wnd.getChildByName("background");
this.background.scale = FIT_SCALE;
this.main_container = this.root_wnd.getChildByName("main_container");
this.main_panel = this.main_container.getChildByName("main_panel");
this.win_title = this.main_panel.getChildByName("win_title").getComponent(cc.Label);
this.win_title.string = Utils.TI18N("邮件");
this.title_container = this.main_panel.getChildByName("title_container");
this.title = this.title_container.getChildByName("title").getComponent(cc.Label);
this.time = this.title_container.getChildByName("time").getComponent(cc.Label);
this.icon = this.title_container.getChildByName("icon").getComponent(cc.Sprite);
this.info_container = this.main_panel.getChildByName("info_container");
this.content = this.info_container.getChildByName("ScrollView").getChildByName("view").getChildByName("content").getChildByName("RichText").getComponent(cc.RichText);
this.youxiao = this.info_container.getChildByName("youxiao").getComponent(cc.Label);
this.goods_container = this.info_container.getChildByName("goods_container");
this.goods_title = this.goods_container.getChildByName("goods_title").getComponent(cc.Label);
this.goods_title.string = "领取奖励";
this.goods_scroll = this.goods_container.getChildByName("ScrollView");
this.goods_scroll_content = this.goods_scroll.getChildByName("view").getChildByName("content");
this.goods_scroll_size = this.goods_scroll.getContentSize();
this.take_label = this.goods_container.getChildByName("take_label").getComponent(cc.Label);
this.take_label.node.active = false;
this.btn = this.main_panel.getChildByName("btn");
this.btn_label = this.btn.getChildByName("Label").getComponent(cc.Label);
this.btn_label_lo = this.btn.getChildByName("Label").getComponent(cc.LabelOutline);
this.btn_img = this.btn.getComponent(cc.Sprite);
this.close_btn = this.main_panel.getChildByName("close_btn");
this.onShow();
},
createPanel: function createPanel(panel) {
this.panel_bg = panel;
this.panel_bg.setParent(this.main_container);
},
registerEvent: function registerEvent() {
if (this.close_btn) {
this.close_btn.on(cc.Node.EventType.TOUCH_END, function () {
this.ctrl.openMailInfo(false);
}.bind(this));
}
if (this.btn) {
this.btn.on(cc.Node.EventType.TOUCH_END, function () {
if (this.data && this.data.status) {
//邮件
if (this.data.assets && this.data.items) {
if (Utils.getArrLen(this.data.assets) > 0 || Utils.getArrLen(this.data.items) > 0 && this.data.type == 1) {
//领取
this.ctrl.getGoods(this.data.id, this.data.srv_id);
} else if (Utils.getArrLen(this.data.assets) <= 0 || Utils.getArrLen(this.data.items) <= 0 && this.data.type == 1) {
var ids = [{
id: this.data.id,
srv_id: this.data.srv_id
}];
this.ctrl.deletMailSend(ids);
this.ctrl.openMailInfo(false);
}
}
}
}, this);
}
if (this.background) {
this.background.on(cc.Node.EventType.TOUCH_END, function () {
this.ctrl.openMailInfo(false);
}, this);
}
this.addGlobalEvent(MailEvent.GET_ITEM_ASSETS, function (key) {
if (this.data) {
var item_key = Utils.getNorKey(this.data.id || 0, this.data.srv_id || "");
if (key == item_key) {
this.removeAsset(key);
}
}
}, this);
},
//必要添加的数据传入方法
setData: function setData(data) {
this.data = data;
this.onShow();
},
onShow: function onShow() {
// return
if (this.data == null) return;
if (this.root_wnd == null) return;
var data = this.data; // var str2 = data.content;
// str2 = string.gsub(str2,"<","<");
// str2 = string.gsub(str2,">",">");
// str2 = string.gsub(str2, "'", "'")
// str2 = string.gsub(str2, """, '"')
// str2 = WordCensor.getInstance().relapceAssetsTag(str2);
// this.content.string = str2;
var str2 = data.content;
str2 = str2.replace(/</g, "<");
str2 = str2.replace(/>/g, ">");
str2 = str2.replace(/'/g, "'");
str2 = str2.replace(/"/g, '"');
str2 = StringUtil.parseStr(str2).string;
var color = Config.color_data.data_color16[58];
this.content.string = "" + str2 + "";
if (data.status != null) {
this.title.string = data.subject;
this.time.active = true;
this.youxiao.active = true;
if (data.assets && data.items) {
if (Utils.getArrLen(data.assets) > 0 || Utils.getArrLen(data.items) > 0 && data.type == 1) {
this.btn.active = true;
this.changeButtonStatus(true);
this.goods_container.active = true;
this.createGoodsList();
} else if (Utils.getArrLen(data.assets) <= 0 || Utils.getArrLen(data.items) <= 0 && data.type == 1) {
this.btn.active = true;
this.changeButtonStatus(false);
this.goods_container.active = false;
} else {
this.btn.active = false;
this.goods_container.active = false;
}
}
var show_time = TimeTool.getDayOrHour(gcore.SmartSocket.getTime() - this.data.send_time);
if (show_time != null) {
this.time.string = show_time + "前";
} else {
this.time.string = "";
}
show_time = TimeTool.getDayOrHour(data.time_out - gcore.SmartSocket.getTime());
if (show_time != null) {
this.youxiao.string = "有效期" + show_time;
} else {
this.youxiao.string = "";
}
this.changeIcon(data.status);
this.ctrl.read(data.id, data.srv_id);
} else if (data.flag != null) {
this.title.string = data.title;
this.btn.active = false;
this.goods_container.active = false;
this.time.node.active = false;
this.youxiao.node.active = false;
this.changeIcon(data.flag);
this.ctrl.readNotice(data.id);
}
},
removeAsset: function removeAsset() {
if (this.goods_list) {
for (var k in this.goods_list) {
if (this.goods_list[k] != null) {
this.goods_list[k].deleteMe();
this.goods_list[k] = null;
}
}
this.goods_list = null;
}
this.goods_container.active = false;
this.data.assets = {};
this.data.status = 2;
this.data.items = {};
this.changeIcon(this.data.status);
this.changeButtonStatus(false);
},
createGoodsList: function createGoodsList() {
if (this.data.status == 2) {
//领了的就不创建了
return;
}
var show_list = [];
for (var k in this.data.assets) {
var v = this.data.assets[k];
if (Utils.deepCopy(Utils.getItemConfig(v.label || v.base_id)).id != null) show_list.push(this.data.assets[k]);
}
for (var k in this.data.items) {
var v = this.data.items[k];
if (Utils.deepCopy(Utils.getItemConfig(v.label || v.base_id)).id != null) show_list.push(this.data.items[k]);
}
if (this.data.items.length > 0) {
this.take_label.string = "占用背包空间:" + this.data.items.length;
this.take_label.node.active = true;
}
var max_width = Math.max((BackPackItem.Width + 10) * show_list.length, this.goods_scroll_size.width);
this.goods_scroll_content.setContentSize(cc.size(max_width, this.goods_scroll_size.height));
for (var i = 0; i < show_list.length; i++) {
var v = show_list[i];
var config = Utils.deepCopy(Utils.getItemConfig(v.label || v.base_id));
config.bid = v.label || v.base_id;
if (config.id != null) {
config.num = v.val || v.quantity;
var item = ItemsPool.getInstance().getItem("backpack_item");
item.setParent(this.goods_scroll_content);
item.initConfig(false, 1, false, false);
if (max_width > this.goods_scroll_size.width) {
item.setPosition(i * (BackPackItem.Width + 8) - max_width / 2 + BackPackItem.Width / 2, 0);
} else {
item.setPosition(i * (BackPackItem.Width + 8) - (show_list.length - 1) * BackPackItem.Width / 2, 0);
}
item.show();
item.setData(config);
this.goods_list[i] = item;
}
}
},
changeButtonStatus: function changeButtonStatus(status) {
if (status == true) {
this.loadRes(PathTool.getCommonIcomPath("common_1017"), function (sf_obj) {
this.btn_img.spriteFrame = sf_obj;
}.bind(this));
this.btn_label.string = "领取";
this.btn_label_lo.color = new cc.Color(0x6c, 0x2b, 0x00, 0xff);
} else {
this.btn_label.string = "删除";
this.btn_label_lo.color = new cc.Color(0x2b, 0x61, 0x0d, 0xff);
this.loadRes(PathTool.getCommonIcomPath("common_1018"), function (sf_obj) {
this.btn_img.spriteFrame = sf_obj;
}.bind(this));
}
},
changeIcon: function changeIcon(status) {
if (status != null) {
if (status == 1) {
//已读
if (this.data.assets && this.data.items && (Utils.getArrLen(this.data.assets) > 0 || Utils.getArrLen(this.data.items) > 0)) {
//读了没领
this.loadRes(PathTool.getUIIconPath("mail", "mail_icon4"), function (res_object) {
this.res_object = res_object;
this.icon.spriteFrame = res_object;
}.bind(this));
} else {
this.loadRes(PathTool.getUIIconPath("mail", "mail_icon3"), function (res_object) {
this.res_object = res_object;
this.icon.spriteFrame = res_object;
}.bind(this));
}
} else if (status == 2) {
//领了
this.loadRes(PathTool.getUIIconPath("mail", "mail_icon3"), function (res_object) {
this.res_object = res_object;
this.icon.spriteFrame = res_object;
}.bind(this));
} else if (status == 0) {
//未读
if (this.data.assets && this.data.items && (Utils.getArrLen(this.data.assets) > 0 || Utils.getArrLen(this.data.items) > 0)) {
this.loadRes(PathTool.getUIIconPath("mail", "mail_icon2"), function (res_object) {
this.res_object = res_object;
this.icon.spriteFrame = res_object;
}.bind(this));
} else {
this.loadRes(PathTool.getUIIconPath("mail", "mail_icon1"), function (res_object) {
this.res_object = res_object;
this.icon.spriteFrame = res_object;
}.bind(this));
}
}
}
},
close_callback: function close_callback() {
if (this.goods_list != null) {
for (var k in this.goods_list) {
if (this.goods_list[k] != null) {
this.goods_list[k].deleteMe();
this.goods_list[k] = null;
}
}
this.goods_list = null;
}
this.ctrl.openMailInfo(false);
},
onHide: function onHide() {},
onDelete: function onDelete() {}
});
module.exports = MailInfoWindow;
cc._RF.pop();