"use strict"; cc._RF.push(module, 'b96dac/EDFG75H5O8q2FTTt', 'cmp.friend.item'); // Scripts/mod/friend/cmp/cmp.friend.item.js "use strict"; var PathTool = require("pathtool"); var FriendController = require("friend_controller"); var FriendConst = require("friend_const"); var FriendVo = require("friend_vo"); var TimeTool = require("timetool"); var SvcItem = require("nx.fx.sv.expand.item"); var HomeModel = require("home.mod"); cc.Class({ "extends": SvcItem, properties: { role_name: { "default": null, type: cc.Label }, role_power: { "default": null, type: cc.Label }, is_online: { "default": null, type: cc.Node }, is_offline: { "default": null, type: cc.Node }, head_img: { "default": null, type: cc.Sprite }, add_label: { "default": null, type: cc.Label }, head_con: { "default": null, type: cc.Node }, del_btn: { "default": null, type: cc.Button }, img_btn: { "default": null, type: cc.Button }, rev_img_btn: { "default": null, type: cc.Button }, add_btn: { "default": null, type: cc.Button }, allow_btn: { //好友申请 "default": null, type: cc.Node }, remove_btn: { //黑名单移除按钮 "default": null, type: cc.Node }, nds: { "default": null, type: cc.Node }, btns: { "default": null, type: cc.Node }, fabPlayer: { "default": null, type: cc.Prefab } }, // LIFE-CYCLE CALLBACKS: onLoad: function onLoad() { this.is_del = false; }, rebind: function rebind(_idx, _data, _key) { this._super(_idx, _data, _key); this.open_type = Number(_key) || FriendConst.Type.MyFriend; //头像 if (!this.play_head) { this.play_head = cc.instantiate(this.fabPlayer); this.play_head.parent = this.head_con; var cmp = this.play_head.getComponent("cmp.common.header"); cmp.addCallBack(function () { FriendController.getInstance().openFriendCheckPanel(true, this.vo); }.bind(this)); } // 刷新 this.setData(this.mdata); }, start: function start() {}, onFocus: function onFocus() {}, outFocus: function outFocus() {}, //私聊 touchPrivateChat: function touchPrivateChat() { if (!this.vo) return; if (this.my_friend) { //私聊 var ChatController = require("chat_controller"); var ChatConst = require("chat_const"); var vo = { avatar_bid: this.vo.avatar_bid, career: this.vo.career, dun_id: this.vo.dun_id, face_id: this.vo.face_id, gid: this.vo.gid, gift_status: this.vo.gift_status, gname: this.vo.gname, group_id: this.vo.group_id, gsrv_id: this.vo.gsrv_id, intimacy: this.vo.intimacy, is_awake: this.vo.is_awake, is_cross: this.vo.is_cross, is_draw: this.vo.is_draw, is_moshengren: this.vo.is_moshengren, is_online: this.vo.is_online, is_present: this.vo.is_present, is_used: this.vo.is_used, is_vip: this.vo.is_vip, lev: this.vo.lev, login_out_time: this.vo.login_out_time, login_time: this.vo.login_time, main_partner_id: this.vo.main_partner_id, name: this.vo.name, partner_bid: this.vo.partner_bid, partner_lev: this.vo.partner_lev, partner_star: this.vo.partner_star, power: this.vo.power, rid: this.vo.rid, sex: this.vo.sex, srv_id: this.vo.srv_id, talk_time: this.vo.talk_time }; ChatController.getInstance().openChatPanel(ChatConst.Channel.Friend, "friend", vo); nx.bridge.closePanel("WndFriend"); } }, touchAdd: function touchAdd() { if (!this.vo) return; if (this.apply_panel) { FriendController.getInstance().accept(this.vo.srv_id, this.vo.rid, 1); } }, touchHome: function touchHome() { nx.bridge.createPanel("WndHome", { srv_id: this.mdata.srv_id, rid: this.mdata.rid }); nx.bridge.closePanel("WndFriend"); }, //拒绝好友申请 touchRefuse: function touchRefuse() { if (!this.vo) return; FriendController.getInstance().accept(this.vo.srv_id, this.vo.rid, 0); }, //黑名单移除 touchRemove: function touchRemove() { if (!this.vo) return; FriendController.getInstance().deleteBlackList(this.vo.rid, this.vo.srv_id); }, touchAllow: function touchAllow() { if (!this.vo) return; nx.gui.setLocked(this.allow_btn, "", true); nx.gui.getComponent(this.allow_btn, "", cc.Button); // bt.interactable = false; FriendController.getInstance().addOther(this.vo.srv_id, this.vo.rid); }, touchDel: function touchDel() { if (!this.vo) return; if (this.apply_panel) { FriendController.getInstance().accept(this.vo.srv_id, this.vo.rid, 0); } else if (this.my_friend) { FriendController.getInstance().delOther(this.vo.srv_id, this.vo.rid); } }, touchInfo: function touchInfo() { if (!this.vo) return; FriendController.getInstance().sender_13316(0, this.vo.rid, this.vo.srv_id); }, touchInfo2: function touchInfo2() { if (!this.vo) return; FriendController.getInstance().sender_13316(1, this.vo.rid, this.vo.srv_id); }, setData: function setData(data) { if (nx.dt.objEmpty(data)) { return; } this.unBindEvent(); this.vo = data; if (this.vo == null) return; var data = this.vo; gcore.Timer.set(function () { this.updateMessage(); }.bind(this), 60, 1); var cmp = this.play_head.getComponent("cmp.common.header"); cmp.setData(data); if (data.name != null) { this.role_name.string = data.name || ""; } if (data.lev != null) { this.role_power.string = data.lev; } nx.gui.setActive(this.role_power.node.parent, "", data.lev); this.updateOnlineTime(); this.addVoBindEvent(); }, // 更新在线时间 updateOnlineTime: function updateOnlineTime() { if (!this.vo) return; var str = ""; if (this.vo.is_online != null && this.vo.is_online == 0) { this.is_online.active = false; this.is_offline.active = true; } else { this.is_online.active = true; this.is_offline.active = false; } }, addVoBindEvent: function addVoBindEvent() { // 直接用数据去监听这样避免了刷新的频繁 if (this.vo && this.vo != null && this.vo.bind) { if (this.item_update_event == null) { this.item_update_event = this.vo.bind(FriendVo.UPDATE_FRIEND_ATTR_LOGIN_OUT_TIME, function (vo) { this.updateOnlineTime(); }, this); } } }, unBindEvent: function unBindEvent() { if (this.vo) { if (this.item_update_event != null) { this.vo.unbind(this.item_update_event); this.item_update_event = null; } this.vo = null; } }, //根据类型创建显隐相关控件 updateMessage: function updateMessage() { this.nds.active = false; this.btns.active = true; for (var i in this.nds.children) { var btn = nx.gui.getComponent(this.nds.children[i], "img", cc.Button); btn.interactable = true; this.nds.children[i].active = true; } for (var _i in this.btns.children) { var btn2 = this.btns.children[_i].getComponent(cc.Button); btn2.interactable = true; this.btns.children[_i].active = false; } this.hideAllPanel(); if (this.open_type == FriendConst.Type.MyFriend) { this.is_del = this.vo.del_status || false; this.updateMyFriend(); } else if (this.open_type == FriendConst.Type.ApplyList) { this.is_del = false; this.updateApplyPanel(); } else if (this.open_type == FriendConst.Type.BlackList) { this.is_del = false; this.updateBlackPanel(); } else if (this.open_type == FriendConst.Type.Find) { this.is_del = false; this.updateRecommendPanel(); } }, hideAllPanel: function hideAllPanel() { if (this.my_friend) this.my_friend = false; // if (this.award_panel) // this.award_panel = false; if (this.apply_panel) this.apply_panel = false; if (this.black_panel) this.black_panel = false; if (this.del_friend_btn) this.del_friend_btn = false; if (this.recommend_panel) this.recommend_panel = false; }, //更新好友列表的控件 updateMyFriend: function updateMyFriend() { if (!this.my_friend) { //赠送按钮 this.my_friend = true; // this.nds.children[3].active = false; this.btns.active = false; } this.nds.active = true; if (this.vo == null) return; if (this.vo.is_present != null && this.vo.is_present == 1) { this.img_btn.interactable = false; } else { this.img_btn.interactable = true; } if (this.vo.is_draw != null && this.vo.is_draw == 1) { nx.mTip.openTip("bar.friend.rev", true); this.rev_img_btn.interactable = true; } else { this.rev_img_btn.interactable = false; } if (this.vo.is_home != null && this.vo.is_home == 1) { //开启家园 this.nds.children[3].active = true; } else { this.nds.children[3].active = false; } // if (this.is_del) // this.setDelStatus(this.is_del) }, //更新赠送的控件 updateAwardPanel: function updateAwardPanel() { // if (!this.award_panel) { // //友情点标志 // this.add_label.string = nx.text.getKey("friend_str30"); // this.award_panel = true; // this.nds.active = false; // } // this.del_btn.node.active = false; // if (!this.vo) // return // if (this.vo.is_present != null && this.vo.is_present == 1) { // this.add_btn.interactable = false; // } }, //更新申请列表的控件 updateApplyPanel: function updateApplyPanel() { if (!this.apply_panel) { this.del_btn.node.active = true; this.add_btn.node.active = true; this.apply_panel = true; // this.add_label.string = nx.text.getKey("friend_str31"); this.nds.active = false; } }, //更新黑名单的控件 updateBlackPanel: function updateBlackPanel() { if (!this.black_panel) { this.black_panel = true; this.nds.active = false; this.remove_btn.active = true; } }, //更新推荐好友的控件 updateRecommendPanel: function updateRecommendPanel() { if (!this.recommend_panel) { this.nds.active = false; this.allow_btn.active = true; nx.gui.setLocked(this.allow_btn, "", false); this.recommend_panel = true; } }, isHaveData: function isHaveData() { if (this.vo) return true;else return false; }, setDelStatus: function setDelStatus(bool) { if (bool) this.hideAllPanel(); this.is_del = bool; if (!this.button && !bool) return; if (this.button) { if (bool) { this.add_label.string = nx.text.getKey("friend_str4"); this.nds.active = false; } } if (!bool) this.updateMyFriend(); }, getData: function getData() { return this.vo; }, onDestroy: function onDestroy() { this.unBindEvent(); this.vo = null; } // update (dt) {}, }); cc._RF.pop();