changhong/lua_probject/base_project/Game/View/NewGroup/MngView/GroupMngMemberInviteView.lua

458 lines
15 KiB
Lua
Raw Normal View History

2025-05-24 14:29:14 +08:00
-- 牌友圈成员列表
local GroupNumberInputView = import('.GroupNumberInputView')
local GroupMemberFagLogView = import('.GroupMemberFagLogView')
local GroupSetPermissionView = import('.GroupSetPermissionView')
local GroupBanSameTableView = import('.GroupBanSameTableView')
local GroupMemberOperateView = import('.GroupMemberOperateView')
local GroupAddMemberInfoView = import('.GroupAddMemberInfoView')
local MngPermission = import('.MngPermission')
local GroupMngMemberInviteView = {}
local M = GroupMngMemberInviteView
setmetatable(M, { __index = BaseWindow })
2025-05-24 14:29:14 +08:00
local gid
function GroupMngMemberInviteView.new(group_id, blur_view)
local self = setmetatable({}, { __index = M })
2025-05-24 14:29:14 +08:00
self.class = 'GroupMngMemberInviteView'
self.group_id = group_id
self.member_data = {}
self:FillView()
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:FillView()
BaseWindow.init(self, 'ui://NewGroup/View_GroupMemberInviteAlone')
2025-05-24 14:29:14 +08:00
local group = DataManager.groups:get(self.group_id)
local perm_array = MngPermission.getPermData(group.permission)
self.tex_num = self._view:GetChild('tex_num')
self:ClearNumTex()
local cnt = self._view.numChildren - 1
for i = 0, 9 do
local obj = self._view:GetChild('btn_' .. i)
obj.onClick:Add(handler(self, self.OnNumButtonAction))
i = i + 1
end
local btn_ok = self._view:GetChild('btn_ok')
btn_ok.onClick:Set(
function()
if not CheckPermission(group.lev, perm_array[2]) then
return
end
if self._texnum_str == '' then
return
end
ViewUtil.ShowModalWait()
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:GetAddMember(
self.group_id,
tonumber(self._texnum_str),
function(response)
printlog("响应获取添加玩家==》》》")
pt(response)
ViewUtil.CloseModalWait()
if (response.ReturnCode and response.ReturnCode == 0) then
GroupAddMemberInfoView.new(self.group_id, tonumber(self._texnum_str)):SetAddMember(response.Data)
self:ClearNumTex()
--ViewUtil.ShowBannerOnScreenCenter('添加成功!', 1)
else
ViewUtil.ErrorTip(123456, '获取玩家失败')
end
end
)
end
)
local btn_del = self._view:GetChild('btn_del')
btn_del.onClick:Add(handler(self, self.OnNumButtonAction))
end
-- 快速访问
function M:navigation()
self._view:GetController('page').selectedIndex = 2
self:initData()
end
-- 获取成员数据
function M:GetMemberData(index)
--print("11111111111111111111")
--print(debug.traceback())
local group = DataManager.groups:get(self.group_id)
if index == 0 then
group:clearMember()
end
ViewUtil.ShowModalWait(nil)
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_GroupMembers11(
self.group_id,
index,
6,
false,
1,
function(res)
ViewUtil.CloseModalWait()
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, '获取成员列表失败')
else
self.member_data = group.members
self.lst_member.numItems = group.member_num
if index == 0 then
self._view:GetChild('tex_memb_num').text = res.Data.member_num
self._view:GetChild('tex_total_hp').text = d2ad(res.Data.hp_num1)
end
end
end
)
end
-- 修改体力值
local function __change_fag(gid, pid, is_add, cur_hp, callback)
local gniv =
GroupNumberInputView.new(
nil,
function(num)
num = ad2d((is_add and num or -num))
ViewUtil.ShowModalWait()
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_ChangeFag(
gid,
pid,
num,
function(res1)
ViewUtil.CloseModalWait()
-- if gniv._is_destroy then
-- return
-- end
if (res1.ReturnCode == 0) then
callback(res1.Data)
else
ViewUtil.ErrorTip(res1.ReturnCode, '更改积分失败!')
end
end
)
-- item:GetChild("tex_fag").text = (self_user or show_fag) and num or show_fag_str
end,
is_add and 1 or 2,
cur_hp and d2ad(cur_hp) or nil
)
gniv:Show()
end
-- 填充成员对象
function M:FillItem(obj, member, refresh)
local group = DataManager.groups:get(self.group_id)
obj:GetChild('tex_name').text = ViewUtil.stringEllipsis(member.nick)
obj:GetChild('btn_head').icon = 'ui://Common/Head0'
ImageLoad.Load(member.portrait, obj:GetChild('btn_head')._iconObject, self.class)
-- obj.data = member.id
-- 显示玩家标签,合伙人、管理员
local ctr_type = obj: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 tex_fag = obj:GetChild('tex_fag')
tex_fag.text = d2ad(member.hp)
obj:GetChild('tex_id').text = '' .. member.uid
--obj:GetChild("tex_cost_count").text = d2ad(member.last_hp_cost)
if member.online == 1 then
obj:GetChild('tex_last_login').text = '在线'
else
if member.last_time ~= 0 then
obj:GetChild('tex_last_login').text = '最近登录\n' .. os.date('%Y/%m/%d', member.last_time)
else
obj:GetChild('tex_last_login').text = '加入时间\n' .. os.date('%Y/%m/%d', member.join_time)
end
end
--上级
obj:GetChild('tex_shangjiName').text = member.parentId_nick or ""
if member.parentId == 0 then
obj:GetChild('tex_shangjiID').text = ""
else
obj:GetChild('tex_shangjiID').text = member.parentId
end
local perm_array = MngPermission.getPermData(group.permission)
-- 体力值操作按钮事件
if group.lev < 3 or member.parentId == DataManager.SelfUser.account_id then
obj:GetController('fag').selectedIndex = 1
else
obj:GetController('fag').selectedIndex = 0
end
obj:GetChild("btn_tag").title = member.score
local fgCtr = ControllerManager.GetController(NewGroupController)
local p = group:getMember(member.uid)
local mp = group:getMember(DataManager.SelfUser.account_id)
obj:GetChild('btn_fag_add').onClick:Set(
function()
if not CheckPermission(group.lev, perm_array[MngPermissionList.SetFag]) then
return
end
__change_fag(
self.group_id,
member.uid,
true,
nil,
function(data)
local hp = data.hp
member.hp = hp
if p then
p.hp = hp
if mp and mp ~= p then
local mhp = data.mhp
mp.hp = mhp
end
end
self.lst_member.numItems = #self.member_data
-- 搜索出的玩家显示
if self._view:GetController('search').selectedIndex == 1 then
obj:GetChild('tex_fag').text = d2ad(hp)
end
end
)
end
)
obj:GetChild('btn_fag_minus').onClick:Set(
function()
if not CheckPermission(group.lev, perm_array[MngPermissionList.SetFag]) then
return
end
__change_fag(
self.group_id,
member.uid,
false,
member.hp,
function(data)
local hp = data.hp
member.hp = hp
if p then
p.hp = hp
if mp and mp ~= p then
local mhp = data.mhp
mp.hp = mhp
end
end
self.lst_member.numItems = #self.member_data
-- 搜索出的玩家显示
if self._view:GetController('search').selectedIndex == 1 then
obj:GetChild('tex_fag').text = d2ad(hp)
end
end
)
end
)
obj:GetChild('btn_score_detail').onClick:Set(
function()
local mflv = GroupMemberFagLogView.new(self.group_id, member)
mflv:Show()
end
)
obj:GetChild('btn_operate').onClick:Set(
function()
local mflv =
GroupMemberOperateView.new(
self.group_id,
member,
function(delete)
if delete ~= nil and delete == true then
local group = DataManager.groups:get(self.group_id)
self.member_data = group.members
self.lst_member.numItems = #self.member_data
self._view:GetController('search').selectedIndex = 0
else
self.lst_member.numItems = self.lst_member.numItems
if refresh then
self:FillItem(obj, member)
end
end
end
)
mflv:Show()
end
)
obj:GetChild("super_btn").onClick:Set(
function()
ViewUtil.ShowModalWait(nil)
local text = member.uid
local qid, qnick
if text == "" then
ViewUtil.CloseModalWait()
ViewUtil.ErrorTip(nil, '输入不能为空')
return
end
qid = tonumber(text) or 0
qnick = tostring(text)
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_FindMember(
self.group_id,
qid,
function(res)
ViewUtil.CloseModalWait()
if self._is_destroy then
return
end
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, '找不到成员')
else
self._view:GetChild('tex_id').text = ''
self._view:GetController('search').selectedIndex = 1
local item_result = self._view:GetChild('lst_member_find')
item_result:RemoveChildrenToPool()
for j = 1, #res.Data.members do
local tem = item_result:AddItemFromPool()
self:FillItem(tem, res.Data.members[j], true)
end
end
end,
qnick,
1
)
end
)
end
function M:OnRenderItem(index, obj)
local member = self.member_data[index + 1]
if member then
self:FillItem(obj, member)
end
end
--获取申请列表
function M:GetJoinsData()
local group = DataManager.groups:get(self.group_id)
if group.joins > 0 then
ViewUtil.ShowModalWait()
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_GroupJoins(
self.group_id,
function(res)
ViewUtil.CloseModalWait()
if (res.ReturnCode == 0) then
local joins = res.Data.joins
group.joins = #joins
if #joins == 0 then
group.update_joins = true
end
self:FillJoinList(joins)
else
ViewUtil.ErrorTip(res.ReturnCode, '获取申请列表失败!')
self:FillJoinList({})
end
end
)
else
self:FillJoinList({})
end
end
--填充申请
function M:FillJoinList(data)
local lst_joins = self._view:GetChild('lst_joins')
lst_joins:RemoveChildrenToPool()
for i = 1, #data do
local item = lst_joins:AddItemFromPool()
item:GetChild('tex_name').text = ViewUtil.stringEllipsis(data[i].nick)
item:GetChild('tex_id').text = data[i].id
local btn_head = item:GetChild('btn_head')
ImageLoad.Load(data[i].portrait, btn_head._iconObject)
item:GetChild('btn_yes').onClick:Set(
function()
self:VerifyPlayerJoin(data[i].id, true)
end
)
item:GetChild('btn_no').onClick:Set(
function()
self:VerifyPlayerJoin(data[i].id, false)
end
)
end
end
function M:VerifyPlayerJoin(id, allow)
ViewUtil.ShowModalWait()
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_GroupVerifyJoin(
self.group_id,
id,
allow,
function(res)
ViewUtil.CloseModalWait()
if (res.ReturnCode == 0) then
self:GetJoinsData()
else
ViewUtil.ErrorTip(res.ReturnCode, '操作申请失败')
end
end
)
end
function M:OnNumButtonAction(context)
local typer = string.sub(context.sender.name, 5)
if typer == 'del' then
if (self._currenIndex > 0) then
self._currenIndex = self._currenIndex - 1
self._texnum_str = string.sub(self._texnum_str, 0, self._currenIndex)
self.tex_num.text = self._texnum_str
end
else
if (self._currenIndex < 6) then
self._currenIndex = self._currenIndex + 1
self._texnum_str = self._texnum_str .. typer
self.tex_num.text = self._texnum_str
end
end
end
function M:ClearNumTex()
self._texnum_str = ''
self._currenIndex = 0
self.tex_num.text = self._texnum_str
end
return M