yunque9/lua_probject/base_project/Game/View/NewGroup/MngView/GroupMemberOperateView.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