514 lines
21 KiB
Lua
514 lines
21 KiB
Lua
local GroupNumberInputView = import(".GroupNumberInputView")
|
|
local GroupMemberFagLogView = import(".GroupMemberFagLogView")
|
|
local GroupSetPermissionView = import(".GroupSetPermissionView")
|
|
local GroupBanSameTableView = import(".GroupBanSameTableView")
|
|
local MngPermission = import(".MngPermission")
|
|
local GroupSetTagView = import("../GroupSetTagView")
|
|
local GroupSetMemberInfoDiaoduView = import('.GroupSetMemberInfoDiaoduView')
|
|
local GroupPartnerBanPlaysView = import(".GroupPartnerBanPlaysView")
|
|
local GroupPartnerRewardsView = import(".GroupPartnerRewardsView")
|
|
|
|
|
|
-- 牌友圈成员体力值记录
|
|
local GroupMemberOperateView = {}
|
|
|
|
local M = GroupMemberOperateView
|
|
|
|
function GroupMemberOperateView.new(group_id, member, callBack, callBack1)
|
|
setmetatable(M, { __index = BaseWindow })
|
|
local self = setmetatable({}, { __index = M })
|
|
self.class = "GroupMemberOperateView"
|
|
self._close_destroy = true
|
|
-- self._blur_view = blur_view
|
|
--print("GroupMemberOperateView==============")
|
|
--pt(member)
|
|
self.member = member
|
|
self.group_id = group_id
|
|
self.callBack = callBack
|
|
self.callBack1 = callBack1
|
|
self:init("ui://NewGroup/Win_PlayerInfo")
|
|
return self
|
|
end
|
|
|
|
-- 管理员权限
|
|
local MngPermissionList = {
|
|
DeleteMember = 1, -- 删除成员
|
|
AddMember = 2, --添加成员
|
|
SetFag = 3, --设置体力值
|
|
BanPlaying = 4, --禁止游戏
|
|
BanSameTable = 5 --禁止同桌
|
|
}
|
|
|
|
local function CheckPermission(lev, permission)
|
|
if lev == 2 and not permission then
|
|
ViewUtil.ErrorTip(nil, "您无权操作!如有需要请联系盟主。", 1)
|
|
return false
|
|
end
|
|
return true
|
|
end
|
|
|
|
function M:init(url)
|
|
BaseWindow.init(self, url)
|
|
|
|
local member = self.member
|
|
local group = DataManager.groups:get(self.group_id)
|
|
--print("DataManager.groups:get(self.group_id)")
|
|
--pt(group)
|
|
local perm_array = MngPermission.getPermData(group.permission)
|
|
|
|
local btn_close = self._view:GetChild("btn_close")
|
|
btn_close.onClick:Set(function()
|
|
self:Destroy()
|
|
end)
|
|
|
|
self._view:GetChild("tex_id").text = "ID:" .. member.uid
|
|
|
|
self._view:GetChild("tex_name").text = ViewUtil.stringEllipsis(member.nick)
|
|
self._view:GetChild("btn_head").icon = "ui://Common/Head0"
|
|
ImageLoad.Load(member.portrait, self._view:GetChild("btn_head")._iconObject, self.class)
|
|
|
|
-- obj.data = member.id
|
|
-- 显示玩家标签,合伙人、管理员
|
|
local ctr_type = self._view:GetController("type")
|
|
if member.lev < 3 then
|
|
ctr_type.selectedIndex = member.lev
|
|
elseif member.partnerLev ~= 0 then
|
|
ctr_type.selectedIndex = 3
|
|
else
|
|
ctr_type.selectedIndex = 0
|
|
end
|
|
|
|
local ctr_superior = self._view:GetController("show_superior")
|
|
if member.superior then
|
|
ctr_superior.selectedIndex = 2
|
|
if #member.superior > 0 then
|
|
local lst_superior = self._view:GetChild("lst_superior")
|
|
lst_superior:RemoveChildrenToPool()
|
|
for i = 1, #member.superior do
|
|
local item = lst_superior:AddItemFromPool()
|
|
item:GetChild("tex_id").text = member.superior[i]
|
|
-- item:GetChild("tex_num").text = tostring(#member.superior - i + 1) .. "级"
|
|
end
|
|
end
|
|
elseif member.parentId ~= 0 then
|
|
self._view:GetChild("tex_superior_id").text = member.parentId
|
|
if group.owner == member.parentId or member.uid == DataManager.SelfUser.account_id then
|
|
ctr_superior.selectedIndex = 0
|
|
else
|
|
ctr_superior.selectedIndex = 1
|
|
end
|
|
elseif member.lev == 3 then
|
|
self._view:GetChild("tex_superior_id").text = ""
|
|
ctr_superior.selectedIndex = 3
|
|
else
|
|
ctr_superior.selectedIndex = 0
|
|
self._view:GetChild("tex_superior_id").text = ""
|
|
end
|
|
|
|
local fgCtr = ControllerManager.GetController(NewGroupController)
|
|
self._view:GetChild("btn_deploy").onClick:Set(function()
|
|
local gniv = GroupNumberInputView.new(nil, function(num)
|
|
ViewUtil.ShowModalWait()
|
|
local parent_id = tonumber(num)
|
|
fgCtr:FG_FindMember(self.group_id, parent_id, function(res)
|
|
if self._is_destroy then
|
|
return
|
|
end
|
|
if res.ReturnCode ~= 0 then
|
|
ViewUtil.CloseModalWait()
|
|
ViewUtil.ErrorTip(res.ReturnCode, "找不到成员")
|
|
elseif res.Data.partnerLev == 0 then
|
|
ViewUtil.CloseModalWait()
|
|
ViewUtil.ErrorTip(res.ReturnCode, "目标不是合伙人")
|
|
else
|
|
fgCtr:FG_DeployMember(self.group_id, member.uid, parent_id, function(res1)
|
|
ViewUtil.CloseModalWait()
|
|
if (res1.ReturnCode == 0) then
|
|
member.parentId = parent_id
|
|
self._view:GetChild("tex_superior_id").text = parent_id
|
|
ctr_superior.selectedIndex = 1
|
|
ViewUtil.ShowBannerOnScreenCenter("调配玩家成功")
|
|
else
|
|
ViewUtil.ErrorTip(res1.ReturnCode, "调配玩家失败")
|
|
end
|
|
end)
|
|
end
|
|
end)
|
|
end, 0, nil, "ui://NewGroup/Win_AddFriend")
|
|
gniv:Show()
|
|
end)
|
|
local vipbtn = self._view:GetChild("btn_vip")
|
|
if vipbtn ~= nil then
|
|
if (group.lev < member.lev) or (group.lev == 3 and group.partnerLev > 0 and member.uid ~= DataManager.SelfUser.account_id) or (group.lev < 3 and member.uid == DataManager.SelfUser.account_id) then
|
|
vipbtn.visible = true
|
|
vipbtn.selected = member.isvip == 1 and true or false
|
|
vipbtn.onClick:Set(function()
|
|
local selected = vipbtn.selected and 1 or 0
|
|
fgCtr:FG_GroupSetVip(self.group_id, member.uid, selected, function(res1)
|
|
if self._is_destroy then
|
|
return
|
|
end
|
|
ViewUtil.CloseModalWait()
|
|
if res1.ReturnCode == 0 then
|
|
member.isvip = selected
|
|
self.callBack()
|
|
else
|
|
vipbtn.selected = not vipbtn.selected
|
|
ViewUtil.ErrorTip(res1.ReturnCode, "设置vip失败")
|
|
end
|
|
end)
|
|
end)
|
|
else
|
|
vipbtn.visible = false
|
|
end
|
|
end
|
|
|
|
-- 管理功能列表
|
|
local lst_mng = self._view:GetChild("lst_mng")
|
|
lst_mng:RemoveChildrenToPool()
|
|
-- 删除按钮
|
|
local option = group.option or 0
|
|
if (group.partnerLev > 0 and member.uid ~= DataManager.SelfUser.account_id and bit:_and(option, 1) == 1) or group.lev < member.lev then
|
|
local btn_del = lst_mng:AddItemFromPool()
|
|
btn_del.icon = "ui://NewGroup/mng_del"
|
|
btn_del.onClick:Set(function()
|
|
if not CheckPermission(group.lev, perm_array[MngPermissionList.DeleteMember]) then
|
|
return
|
|
end
|
|
local _curren_msg = MsgWindow.new(nil, "确定删除该成员吗?", MsgWindow.MsgMode.OkAndCancel)
|
|
_curren_msg.onOk:Add(function()
|
|
ViewUtil.ShowModalWait()
|
|
fgCtr:FG_GroupRemoveMember(self.group_id, member.uid, function(res1)
|
|
if self._is_destroy then
|
|
return
|
|
end
|
|
ViewUtil.CloseModalWait()
|
|
if res1.ReturnCode == 0 then
|
|
self.callBack(true)
|
|
ViewUtil.ShowBannerOnScreenCenter("已成功删除玩家")
|
|
self:Destroy()
|
|
else
|
|
ViewUtil.ErrorTip(res1.ReturnCode, "删除成员失败")
|
|
end
|
|
end)
|
|
end)
|
|
_curren_msg:Show()
|
|
end)
|
|
end
|
|
|
|
-- 禁止游戏
|
|
--
|
|
if (group.lev < member.lev) or (group.lev == 3 and group.partnerLev > 0 and member.uid ~= DataManager.SelfUser.account_id) then
|
|
--if group.lev == 1 and member.lev > 1 and member.partnerLev >0 and member.uid ~= DataManager.SelfUser.account_id then
|
|
local btn_ban = lst_mng:AddItemFromPool()
|
|
local pic = member.ban == 1 and "mng_del_ban" or "mng_ban"
|
|
btn_ban.icon = "ui://NewGroup/" .. pic
|
|
btn_ban.onClick:Set(function()
|
|
if not CheckPermission(group.lev, perm_array[MngPermissionList.BanPlaying]) then
|
|
return
|
|
end
|
|
|
|
local str = member.ban == 1 and "确定恢复娱乐吗?" or "确定禁止娱乐吗?"
|
|
local _curren_msg = MsgWindow.new(nil, str, MsgWindow.MsgMode.OkAndCancel)
|
|
_curren_msg.onOk:Add(function()
|
|
ViewUtil.ShowModalWait()
|
|
local val = 1 - member.ban
|
|
fgCtr:FG_BanMember(self.group_id, member.uid, val, 1, function(res1)
|
|
if self._is_destroy then
|
|
return
|
|
end
|
|
ViewUtil.CloseModalWait()
|
|
if res1.ReturnCode == 0 then
|
|
member.ban = val
|
|
pic = member.ban == 1 and "mng_del_ban" or "mng_ban"
|
|
btn_ban.icon = "ui://NewGroup/" .. pic
|
|
self.callBack()
|
|
else
|
|
ViewUtil.ErrorTip(res1.ReturnCode, "禁止娱乐失败!")
|
|
end
|
|
end)
|
|
end)
|
|
_curren_msg:Show()
|
|
end)
|
|
end
|
|
|
|
--print("group.type=====================")
|
|
--print(group.type)
|
|
--pt(group)
|
|
if member.partnerLev > 0 and group.type == 2 and member.uid ~= DataManager.SelfUser.account_id then
|
|
local btn_ban = lst_mng:AddItemFromPool()
|
|
local pic = member.group_ban == 1 and "mng_del_ban_group" or "mng_ban_group"
|
|
btn_ban.icon = "ui://NewGroup/" .. pic
|
|
--printlog("jefe member.partnerLev",member.partnerLev)
|
|
--if member.partnerLev==1 then
|
|
btn_ban.onClick:Set(function()
|
|
-- if not CheckPermission(group.lev, perm_array[MngPermissionList.BanPlaying]) then
|
|
-- return
|
|
-- end
|
|
|
|
|
|
local str = member.group_ban == 1 and "确定恢复该合伙人整组娱乐吗?" or "确定禁止该合伙人整组娱乐吗?"
|
|
local _curren_msg = MsgWindow.new(nil, str, MsgWindow.MsgMode.OkAndCancel)
|
|
_curren_msg.onOk:Add(function()
|
|
ViewUtil.ShowModalWait()
|
|
local val = member.group_ban == 1 and 0 or 1
|
|
fgCtr:FG_BanMember(self.group_id, member.uid, val, 2, function(res1)
|
|
if self._is_destroy then
|
|
return
|
|
end
|
|
ViewUtil.CloseModalWait()
|
|
if res1.ReturnCode == 0 then
|
|
member.group_ban = val
|
|
pic = member.group_ban == 1 and "mng_del_ban_group" or "mng_ban_group"
|
|
btn_ban.icon = "ui://NewGroup/" .. pic
|
|
self.callBack()
|
|
else
|
|
ViewUtil.ErrorTip(res1.ReturnCode, val == 1 and "禁止整组娱乐失败!" or "恢复整组娱乐失败!")
|
|
end
|
|
end)
|
|
end)
|
|
_curren_msg:Show()
|
|
end)
|
|
-- end
|
|
end
|
|
-- 禁止同桌
|
|
-- if group.lev < 3 then
|
|
-- local btn_ban_table = lst_mng:AddItemFromPool()
|
|
-- btn_ban_table.icon = "ui://NewGroup/mng_ban_table"
|
|
-- btn_ban_table.onClick:Set(function()
|
|
-- if not CheckPermission(group.lev, perm_array[MngPermissionList.BanSameTable]) then
|
|
-- return
|
|
-- end
|
|
-- ViewUtil.ShowModalWait()
|
|
-- fgCtr:FG_GetBanTable(self.group_id, member.uid, function(res)
|
|
-- ViewUtil.CloseModalWait()
|
|
-- if res.ReturnCode == 0 then
|
|
-- local btv = GroupBanSameTableView.new(self.blur_view, self.group_id, member.uid, res.Data)
|
|
-- btv:Show()
|
|
-- else
|
|
-- ViewUtil.ErrorTip(res.ReturnCode,"获取禁止同桌列表失败!")
|
|
-- end
|
|
-- end)
|
|
-- end)
|
|
-- end
|
|
-- 合伙人设置 临时从禁止同桌修改
|
|
if group.lev < 3 then
|
|
local btn_ban_table = lst_mng:AddItemFromPool()
|
|
btn_ban_table.icon = "ui://NewGroup/mng_ban_table"
|
|
btn_ban_table.onClick:Set(function()
|
|
local prv = GroupPartnerRewardsView.new(self.group_id, member.uid, member.partnerLev)
|
|
prv:Show()
|
|
end)
|
|
end
|
|
|
|
|
|
if group.lev == 1 and member.lev > 1 and member.partnerLev > 0 and member.uid ~= DataManager.SelfUser.account_id then
|
|
--if false then
|
|
local btn_set_mng = lst_mng:AddItemFromPool()
|
|
btn_set_mng.icon = "ui://NewGroup/zhengzu"
|
|
btn_set_mng.onClick:Set(
|
|
function()
|
|
ViewUtil.ShowModalWait()
|
|
fgCtr:FG_GetBanMemberHB(self.group_id, member.uid, function(res)
|
|
ViewUtil.CloseModalWait()
|
|
--pt(res)
|
|
if res.ReturnCode == 0 then
|
|
local diaoduView = GroupSetMemberInfoDiaoduView.new(self.group_id, member.uid)
|
|
diaoduView:SetCurrentState(res.Data.group_black + 1, res.Data)
|
|
else
|
|
ViewUtil.ErrorTip(res.ReturnCode, "获取整组调度失败!")
|
|
end
|
|
end)
|
|
end)
|
|
end
|
|
|
|
|
|
|
|
-- 设置管理员
|
|
if group.lev == 1 and member.lev > 1 and member.partnerLev >= 0 then
|
|
local btn_set_mng = lst_mng:AddItemFromPool()
|
|
local pic = member.lev == 2 and "mng_del_mng" or "mng_set_mng"
|
|
btn_set_mng.icon = "ui://NewGroup/" .. pic
|
|
btn_set_mng.onClick:Set(function()
|
|
local str = member.lev == 3 and "确定设置玩家为副盟主吗?" or "确定取消玩家副盟主身份吗?"
|
|
local _curren_msg = MsgWindow.new(nil, str, MsgWindow.MsgMode.OkAndCancel)
|
|
_curren_msg.onOk:Add(function()
|
|
ViewUtil.ShowModalWait()
|
|
local val = 4 - member.lev
|
|
fgCtr:FG_SetManager(self.group_id, member.uid, val, function(res1)
|
|
if self._is_destroy then
|
|
return
|
|
end
|
|
ViewUtil.CloseModalWait()
|
|
if res1.ReturnCode == 0 then
|
|
member.lev = val + 1
|
|
self.callBack()
|
|
if val == 1 then
|
|
ctr_superior.selectedIndex = 0
|
|
else
|
|
ctr_superior.selectedIndex = 3
|
|
end
|
|
self:Destroy()
|
|
else
|
|
ViewUtil.ErrorTip(res1.ReturnCode, "设置副群主失败!")
|
|
end
|
|
end)
|
|
end)
|
|
_curren_msg:Show()
|
|
end)
|
|
end
|
|
|
|
|
|
if ((group.lev < 3 and member.parentId == 0) or (group.type == 2 and member.parentId == DataManager.SelfUser.account_id)) and member.partnerLev == 0 and member.lev == 3 then
|
|
local btn_set_partner = lst_mng:AddItemFromPool()
|
|
local pic = member.partnerLev == 0 and "mng_set_partner" or "mng_del_partner"
|
|
btn_set_partner.icon = "ui://NewGroup/" .. pic
|
|
btn_set_partner.onClick:Set(function()
|
|
local str = member.partnerLev == 0 and "确定设置玩家为合伙人吗?" or "确定取消玩家合伙人身份吗?"
|
|
local _curren_msg = MsgWindow.new(nil, str, MsgWindow.MsgMode.OkAndCancel)
|
|
_curren_msg.onOk:Add(function()
|
|
ViewUtil.ShowModalWait()
|
|
local val = member.partnerLev > 0 and 2 or 1
|
|
fgCtr:FG_SetPartner(self.group_id, member.uid, val, function(res1)
|
|
if self._is_destroy then
|
|
return
|
|
end
|
|
ViewUtil.CloseModalWait()
|
|
if res1.ReturnCode == 0 then
|
|
member.parentId = res1.Data.parentId
|
|
member.partnerLev = res1.Data.partnerLev
|
|
self.callBack()
|
|
ctr_superior.selectedIndex = 1
|
|
|
|
self:Destroy()
|
|
else
|
|
ViewUtil.ErrorTip(res1.ReturnCode, "设置合伙人失败失败!")
|
|
end
|
|
end)
|
|
end)
|
|
_curren_msg:Show()
|
|
end)
|
|
end
|
|
|
|
if ((group.lev < 3 and member.parentId == 0) or (group.type == 2 and member.parentId == DataManager.SelfUser.account_id)) and member.partnerLev == 0 and member.lev == 2 then
|
|
local btn_set_permission = lst_mng:AddItemFromPool()
|
|
btn_set_permission.icon = "ui://NewGroup/mng_set_permission"
|
|
btn_set_permission.onClick:Set(function()
|
|
local gspv = GroupSetPermissionView.new(self.blur_view, self.group_id, member)
|
|
gspv:Show()
|
|
end)
|
|
end
|
|
|
|
local btn_fag_info = lst_mng:AddItemFromPool()
|
|
btn_fag_info.icon = "ui://NewGroup/mng_fag"
|
|
btn_fag_info.onClick:Set(function()
|
|
local mflv = GroupMemberFagLogView.new(self.group_id, member)
|
|
mflv:Show()
|
|
end)
|
|
|
|
if group.lev == 1 and member.partnerLev > 0 and group.type == 2 then
|
|
local btn_move = lst_mng:AddItemFromPool()
|
|
btn_move.icon = "ui://NewGroup/mng_move"
|
|
btn_move.onClick:Set(function()
|
|
local gniv = GroupNumberInputView.new(nil, function(num)
|
|
local parent_id = tonumber(num)
|
|
if parent_id == member.parentId then
|
|
ViewUtil.ErrorTip(nil, "已经在该合伙人名下")
|
|
return
|
|
elseif parent_id == member.id then
|
|
ViewUtil.ErrorTip(nil, "目标的上级不能是自己")
|
|
return
|
|
elseif parent_id == DataManager.SelfUser.account_id then
|
|
self:MovePartner(parent_id, member, self._view)
|
|
return
|
|
end
|
|
ViewUtil.ShowModalWait()
|
|
local fgCtr = ControllerManager.GetController(NewGroupController)
|
|
fgCtr:FG_FindMember(self.group_id, parent_id, function(res)
|
|
if self._is_destroy then
|
|
return
|
|
end
|
|
if res.ReturnCode ~= 0 then
|
|
ViewUtil.CloseModalWait()
|
|
ViewUtil.ErrorTip(res.ReturnCode, "找不到成员")
|
|
elseif res.Data.partnerLev == 0 then
|
|
ViewUtil.CloseModalWait()
|
|
ViewUtil.ErrorTip(res.ReturnCode, "目标不是合伙人")
|
|
else
|
|
self:MovePartner(parent_id, member, self._view)
|
|
end
|
|
end)
|
|
end, 0, nil, "ui://NewGroup/Win_AddFriend")
|
|
gniv:Show()
|
|
end)
|
|
end
|
|
|
|
if member.parentId == DataManager.SelfUser.account_id then
|
|
local btn_set_tag = lst_mng:AddItemFromPool()
|
|
btn_set_tag.icon = "ui://NewGroup/mng_set_tag"
|
|
btn_set_tag.onClick:Set(function()
|
|
local stv = GroupSetTagView.new(self.group_id, member, function(refresh)
|
|
if refresh then
|
|
self.callBack()
|
|
end
|
|
end)
|
|
stv:Show()
|
|
end)
|
|
end
|
|
|
|
if group.lev == 1 then
|
|
local btn_banplays = lst_mng:AddItemFromPool()
|
|
btn_banplays.icon = "ui://NewGroup/mng_ban_plays"
|
|
btn_banplays.onClick:Set(function()
|
|
local banplays = GroupPartnerBanPlaysView.new(self.group_id, member.uid)
|
|
banplays:Show()
|
|
end)
|
|
end
|
|
|
|
if group.lev == 1 then
|
|
local btn_qiangzhi = lst_mng:AddItemFromPool()
|
|
btn_qiangzhi.icon = "ui://NewGroup/mng_qiangzhi"
|
|
btn_qiangzhi.onClick:Set(function()
|
|
local msg_tip = MsgWindow.new(self._root_view, "确定全部提取吗?", MsgWindow.MsgMode.OnlyOk)
|
|
msg_tip.onOk:Add(function(...)
|
|
ViewUtil.ShowModalWait()
|
|
fgCtr:FG_TakeHp1(self.group_id, member.uid, function(res)
|
|
ViewUtil.CloseModalWait()
|
|
if self._is_destroy then
|
|
return
|
|
end
|
|
if res.ReturnCode ~= 0 then
|
|
ViewUtil.ErrorTip(res.ReturnCode, "提取失败")
|
|
else
|
|
ViewUtil.ErrorTip(res.ReturnCode, "提取成功")
|
|
self:Destroy()
|
|
if self.callBack1 then
|
|
self.callBack1()
|
|
end
|
|
end
|
|
end)
|
|
msg_tip:Close()
|
|
end)
|
|
msg_tip:Show()
|
|
end)
|
|
end
|
|
end
|
|
|
|
function M:MovePartner(parent_id, member, obj)
|
|
local fgCtr = ControllerManager.GetController(NewGroupController)
|
|
fgCtr:FG_MovePartner(self.group_id, member.uid, parent_id, function(res1)
|
|
ViewUtil.CloseModalWait()
|
|
if (res1.ReturnCode == 0) then
|
|
member.parentId = parent_id
|
|
member.partnerLev = res1.Data.partnerLev
|
|
obj:GetChild("tex_superior_id").text = parent_id
|
|
obj:GetController("show_superior").selectedIndex = 1
|
|
ViewUtil.ShowBannerOnScreenCenter("转移成功")
|
|
else
|
|
ViewUtil.ErrorTip(res1.ReturnCode, "转移失败")
|
|
end
|
|
end)
|
|
end
|
|
|
|
return M
|