230 lines
6.9 KiB
JavaScript
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();
|