Files
fc/dev/project/assets/Scripts/mod/friend/cmp/cmp.friend.checkinfo.js
T
2026-05-23 22:10:14 +08:00

267 lines
8.1 KiB
JavaScript

var PathTool = require("pathtool");
var FriendConst = require("friend_const");
var RoleEvent = require("role_event");
var RoleController = require("role_controller");
var HeroVo = require("hero_vo");
var BattleController = require("battle_controller");
var FriendController = require("friend_controller");
var ChatController = require("chat_controller");
var ChatConst = require("chat_const");
const ChatEvent = require("chat_event");
var BridgeWindow = require("bridge.window");
const { SCENE_TAG } = require( "define" );
//查看好友
cc.Class({
extends: BridgeWindow,
properties: {
friend_btn_label:{
default:null,
type:cc.Label
},
black_btn_label:{
default:null,
type:cc.Label
},
name_lb:{
default:null,
type:cc.Label
},
rank_lb:{
default:null,
type:cc.Label
},
guild_lb:{
default:null,
type:cc.Label
},
vip_label:{
default:null,
type:cc.Label
},
fight_label:{
default:null,
type:cc.Label
},
scrollCon_content:{
default:null,
type:cc.Node
},
head:{
default:null,
type:cc.Node
},
fabPlayer:{
default:null,
type:cc.Prefab
},
nodUID: { default : null, type: cc.Node },
nodSRV: { default : null, type: cc.Node },
},
// LIFE-CYCLE CALLBACKS:
onLoad () {
this.ctrl = FriendController.getInstance();
this.model = this.ctrl.getModel();
this.item_list = {};
//头像
if (this.player_head == null) {
this.player_head = cc.instantiate(this.fabPlayer);
this.player_head.parent = this.head;
}
this.bindGEvent(RoleEvent.DISPATCH_PLAYER_VO_EVENT,this.dispatchPlayer.bind(this));
},
dispatchPlayer(data){
if (data.rid == this.rid && data.srv_id == this.srv_id){
this.updateData(data);
}
},
start () {
},
onDisable: function(){
if( nx.bridge.prompt ) {
nx.bridge.prompt.delPrompt(6);
}
},
onPreClosed(){
},
onOpenConfigs(data){
if (data == null) return
this.rid = data.rid;
this.srv_id = data.srv_id;
this.flag = data.flag;
this.channel = data.channel; //从聊天窗口打开时需要显示@按钮
if (data && data.rid != null && data.srv_id != null) {
RoleController.getInstance().requestRoleInfo(data.rid, data.srv_id)
}
},
updateData: function (data) {
this.data = data;
this.name_lb.string = Utils.transformNameByServ(data.name, data.srv_id);
let cmp = this.player_head.getComponent("cmp.common.header");
cmp.setData(data);
nx.gui.setString( this.nodUID, "txt", data.rid );
let sid = data.srv_id.split( "_" );
nx.gui.setString( this.nodSRV, "", data.srv_id == "robot" ? "[" + nx.text.format( "Srever", 1 ) +"]" : "[" + nx.text.format( "Srever", sid[1] ) + "]" );
// this.player_head.setHeadRes(data.face_id);
// this.player_head.setLev(data.lev);
// let RC = RoleController.getInstance();
// this.role = RC ? RC.getRoleVo() : null;
// if( !this.role ) {
// return;
// }
// // 基本信息
// // UID
// nx.gui.setString( this.nodUID, "txt", this.role.rid );
if (data.gname != "")
nx.gui.setString( this.guild_lb, "", data.gname );
// //头像框
// var vo = gdata("avatar_data", "data_avatar", [data.avatar_bid]);
// if (vo) {
// var res_id = vo.res_id || 0;
// var res = PathTool.getHeadcircle(res_id);
// this.plcheckayer_head.setFrameRes(res);
// }
this.vip_label.string = data.vip_lev;
this.fight_label.string = data.power;
if (this.model.isFriend(data.srv_id, data.rid))
this.friend_btn_label.string = nx.text.getKey("friend_str14");
else
this.friend_btn_label.string = nx.text.getKey("friend_str7");
if (this.model.isBlack(data.rid, data.srv_id))
this.black_btn_label.string = nx.text.getKey("friend_str15");
else
this.black_btn_label.string = nx.text.getKey("friend_str16");
this.createPartnerList(data.partner_list);
},
createPartnerList: function (list) {
var temp = [];
for (var k in list) {
var v = list[k]
var vo = new HeroVo();
vo.updateHeroVo(v);
temp.push(vo);
}
var p_list_size = temp.length;
// var total_width = p_list_size * 112 + (p_list_size - 1) * 10;
// var max_width = Math.max(total_width, 725);
// this.scrollCon_content.setContentSize(cc.size(max_width, 725));
nx.gui.gocChildren( this.scrollCon_content, "", temp.length );
let nodes = this.scrollCon_content.children;
for (let i = 0; i < nodes.length; i++) {
let node = nodes[i];
if( temp[i] ){
let data = nx.dt.objClone( temp[i] );
let pfg = game.configs.partner_data.data_partner_base[temp[i].bid];
data.camp_type = pfg.camp_type;
data.rrid = nx.dt.objClone( this.data.rid ) ;
data.srv_idd = nx.dt.objClone( this.data.srv_id );
if( node ){
let cmp = nx.gui.getComponent( node, "", "cmp.item.base" );
if( cmp ){
cmp.setData( data );
}
}
}
}
},
touchClose(){
this.ctrl.openFriendCheckPanel(false);
},
touchGlory(){
this.ctrl.openFriendGloryWindow(true, this.data);
},
touchFriend(){
if (this.model.isFriend(this.data.srv_id, this.data.rid)) {
ChatController.getInstance().openChatPanel(ChatConst.Channel.Friend,"friend",this.data)
this.ctrl.openFriendCheckPanel(false);
} else {
this.ctrl.openFriendCheckPanel(false);
this.ctrl.addOther(this.data.srv_id, this.data.rid);
}
},
touchPk(){
if (this.data) {
if (!BattleController.getInstance().getWatchReplayStatus() && !BattleController.getInstance().getModel().getFightStatus()) {
this.close();
nx.bridge.closePanel( "WndRank" );
nx.bridge.closePanel( "WndRankInfo" );
nx.bridge.closePanel( "WndFriend" );
nx.bridge.cleanWindowsByTag( SCENE_TAG.popup );
BattleController.getInstance().csBattlePk(this.data.rid,this.data.srv_id)
} else {
nx.tbox(nx.text.getKey("friend_str13"));
}
}
},
touchBlack(){
if (this.model.isBlack(this.data.rid, this.data.srv_id)) {
ChatController.getInstance().closeChatPanel()
this.ctrl.openFriendCheckPanel(false);
nx.bridge.createPanel( "WndFriend", {type:FriendConst.Type.BlackList});
} else {
this.ctrl.addToBlackList(this.data.rid, this.data.srv_id);
this.ctrl.openFriendCheckPanel(false);
}
},
touchReport(){
if(!this.data)return;
let role_lv_cfg = game.configs.role_data.data_role_const.role_reported_lev_limit
let role_vo = RoleController.getInstance().getRoleVo() || {}
let lev = role_vo.lev || 0
if(role_lv_cfg && lev < role_lv_cfg.val){
nx.tbox( role_lv_cfg.val + nx.text.getKey("friend_str17") )
return
}
let info = {
rid : this.data.rid,
srv_id : this.data.srv_id,
showname : this.data.name,
}
nx.bridge.createPanel( "FriendCheckReport", info );
},
touchAtPeople(){
if(!this.data)return;
gcore.GlobalEvent.fire(ChatEvent.CHAT_AT_ONCE_PEOPLE,this.data.name,this.data.srv_id,this.data.rid);
},
// update (dt) {},
});