"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();