Files
fc/dev/project/library/imports/3c/3c3bb96f-400e-4000-b65d-0e0948acbb66.js
T
2026-05-24 10:21:26 +08:00

230 lines
6.9 KiB
JavaScript

"use strict";
cc._RF.push(module, '3c3bblvQA5AALZdDglIrLtm', 'cmp.guild.members.item');
// Scripts/mod/guild/member/cmps/cmp.guild.members.item.js
"use strict";
/******************************************************************
*
* 联盟成员项
*
******************************************************************/
var SVCItem = require("nx.fx.sv.expand.item");
var GuildConst = require("guild_const");
var GuildController = require("guild_controller");
var RoleController = require("role_controller");
// 工会职位
var GPT = GuildConst.PositionType;
// 职位颜色
var JobColors = [cc.Color.BLACK, cc.Color.ORANGE, cc.Color.GREEN, cc.Color.BLACK];
cc.Class({
"extends": SVCItem,
properties: {
nodBase: {
"default": null,
type: cc.Node
},
nodInfos: {
"default": null,
type: cc.Node
},
nodExpand: {
"default": null,
type: cc.Node
},
isExpand: {
"default": false,
displayName: "扩展模式"
}
},
// 数据重置
rebind: function rebind(_idx, _data, _key) {
this._super(_idx, _data, _key);
if (nx.dt.objEmpty(_data)) {
return;
}
this.freshBase();
// 隐藏扩展项
nx.gui.setActive(this.nodExpand, "", false);
},
// 更新
freshBase: function freshBase() {
// 头像
nx.bridge.setAvatarByFaceId(this.nodBase, "avatar/img", this.mdata.face);
nx.bridge.setAvatarFrame(this.nodBase, "avatar/frame", this.mdata.avatar_bid);
nx.gui.setString(this.nodBase, "avatar/level/txt", nx.text.format("LvNumber", this.mdata.lev));
// 基本信息
nx.gui.setString(this.nodBase, "name", this.mdata.name);
nx.gui.setString(this.nodInfos, "bp/txt", this.mdata.power);
nx.gui.setString(this.nodBase, "vip/txt", this.mdata.vip_lev);
// 入会时间
var txt = nx.bridge.time.toLocalString(this.mdata.join_time, true, false);
nx.gui.setString(this.nodInfos, "date", txt);
// 最后在线时间
if (this.mdata.online) {
nx.gui.setString(this.nodInfos, "time", nx.text.getKey("Online"));
nx.gui.setColor(this.nodInfos, "time", cc.Color.BLACK);
} else {
txt = nx.bridge.time.toDescAgo(this.mdata.login_time);
nx.gui.setString(this.nodInfos, "time", txt);
nx.gui.setColor(this.nodInfos, "time", cc.Color.RED);
}
// 职位
txt = nx.text.getKey("GuildJob" + this.mdata.post);
nx.gui.setString(this.nodInfos, "job", nx.text.format("GuildJobC", txt));
nx.gui.setColor(this.nodInfos, "job", JobColors[this.mdata.post]);
// 贡献
nx.gui.setString(this.nodInfos, "gx1", this.mdata.donate);
nx.gui.setString(this.nodInfos, "gx2", nx.text.format("GuildContributionToday", this.mdata.day_donate));
// 活跃度
nx.gui.setString(this.nodInfos, "active", this.mdata.active_lev);
// 操作栏
nx.gui.setActive(this.nodBase, "fold", this.isExpand && !this.mdata.is_self && this.getOps().length > 0);
if (this.isExpand) {
nx.gui.setActive(this.nodBase, "fold/fold", false);
nx.gui.setActive(this.nodBase, "fold/unfold", true);
}
},
// 收展切换
onTogFold: function onTogFold() {
if (!this.nodExpand || this.mdata.is_self) {
return;
}
var self = this;
var togExpand = function togExpand(_show) {
self.nodExpand.active = _show;
self.nodInfos.active = !_show;
nx.gui.setActive(self.nodBase, "fold/fold", _show);
nx.gui.setActive(self.nodBase, "fold/unfold", !_show);
};
// 隐藏
if (this.nodExpand.active || this.getOps().length == 0) {
togExpand(false);
return;
}
// 展示
togExpand(true);
// 按照职位区分操作
// 盟主
var role = RoleController.getInstance().getRoleVo();
if (role.position == GPT.Leader) {
nx.gui.setActive(this.nodExpand, "leader", true);
nx.gui.setActive(this.nodExpand, "kick", true);
if (this.mdata.post == GPT.Assistant) {
nx.gui.setActive(this.nodExpand, "assistant", false);
nx.gui.setActive(this.nodExpand, "unassistant", true);
} else {
nx.gui.setActive(this.nodExpand, "assistant", true);
nx.gui.setActive(this.nodExpand, "unassistant", false);
}
return;
}
// 副盟主
if (true) {
nx.gui.setActive(this.nodExpand, "leader", false);
nx.gui.setActive(this.nodExpand, "assistant", false);
nx.gui.setActive(this.nodExpand, "unassistant", false);
if (this.mdata.post == GPT.Leader) {
nx.gui.setActive(this.nodExpand, "kick", false);
} else {
nx.gui.setActive(this.nodExpand, "kick", true);
}
}
},
// 获取有效操作
getOps: function getOps() {
var ops = [];
var role = RoleController.getInstance().getRoleVo();
if (role.position == GPT.Leader) {
ops.push("leader");
ops.push("kick");
if (this.mdata.post == GPT.Assistant) {
ops.push("unassistant");
} else {
ops.push("assistant");
}
} else {
nx.gui.setActive(this.nodExpand, "leader", false);
nx.gui.setActive(this.nodExpand, "assistant", false);
nx.gui.setActive(this.nodExpand, "unassistant", false);
if (this.mdata.post != GPT.Leader && this.mdata.post != GPT.Assistant) {
ops.push("kick");
}
}
return ops;
},
// 转让盟主
onTouchTransLeader: function onTouchTransLeader() {
var self = this;
var GC = GuildController.getInstance();
var done = function done() {
GC.requestOperationPost(self.mdata.rid, self.mdata.srv_id, GPT.Leader, function (_ret, _data) {
if (!_ret) {
nx.tbox(_data);
return;
}
});
};
var msg = nx.text.format("GuildTransLeaderAsk", this.mdata.name);
nx.mbox(msg, ['cancel', 'confirm'], function (_key, _box) {
_box.close();
if (_key == 'confirm') {
done();
}
});
},
// 设副盟主
onTouchSetAssistant: function onTouchSetAssistant() {
var GC = GuildController.getInstance();
GC.requestOperationPost(this.mdata.rid, this.mdata.srv_id, GPT.Assistant, function (_ret, _data) {
if (!_ret) {
nx.tbox(_data);
return;
}
});
},
// 解除副盟主
onTouchFreeAssistant: function onTouchFreeAssistant() {
var GC = GuildController.getInstance();
GC.requestOperationPost(this.mdata.rid, this.mdata.srv_id, GPT.Member, function (_ret, _data) {
if (!_ret) {
nx.tbox(_data);
return;
}
});
},
// 踢出联盟
onTouchKick: function onTouchKick() {
var _this = this;
var GC = GuildController.getInstance();
var msg = nx.text.format("GuildKickMemberAsk", this.mdata.name);
nx.mbox(msg, ['cancel', 'confirm'], function (_key, _box) {
_box.close();
if (_key == 'confirm') {
GC.requestKickoutMember(_this.mdata.rid, _this.mdata.srv_id, function (_ret, _data) {
if (!_ret) {
nx.tbox(_data);
return;
}
});
}
});
}
});
cc._RF.pop();