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

702 lines
24 KiB
Lua
Raw Normal View History

-- 牌友圈成员列表
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 GroupStatMember = import('.GroupStatMember')
local GroupMngFagPackView = import('../GroupMngFagPackView')
local GroupPartnerRewardsView = import(".GroupPartnerRewardsView")
local MngPermission = import('.MngPermission')
local GroupMngPiLaoZhi = {
numberMap = { {}, {} },
backTable = {},
pageNum = 20,
start = 1,
page = 1
}
local M = GroupMngPiLaoZhi
setmetatable(M, { __index = BaseWindow })
local gid
function GroupMngPiLaoZhi.new(group_id, blur_view)
local self = setmetatable({}, { __index = M })
self.class = 'GroupMngPiLaoZhi'
self.group_id = group_id
self.curGroup = DataManager.groups:get(self.group_id)
self.member_data = {}
self.online = 2
2025-06-06 01:11:41 +08:00
self.stype = 1
self:FillView()
return self
end
function M:initData()
if self._view:GetController('page').selectedIndex == 0 then
self:GetMemberData(0)
elseif self._view:GetController('page').selectedIndex == 1 then
self:GetMemberData(0)
--self:GetJoinsData()
end
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_GroupPiLaoZhi')
local rtype = self._view:GetChild("n132")
rtype.visible = false
rtype.onChanged:Set(function()
if tostring(self.online) == rtype.value then
return
end
self.online = tonumber(rtype.value)
self:GetMemberData(0)
--printlog("aaaaaaaa222222222222222222222222222222")
end)
local rtype = self._view:GetChild("n136")
rtype.onClick:Set(function()
self:GetMemberData(0)
self._ctr_search.selectedIndex = 0
--printlog("aaaaaaaa222222222222222222222222222222")
end)
-- 初始化成员列表
self.lst_member = self._view:GetChild('lst_member')
self.lst_member:SetVirtual()
self.lst_member.itemRenderer = function(index, obj)
self:OnRenderItem(index, obj)
end
-- self.lst_member.scrollPane.onPullUpRelease:Set(
-- function()
-- --printlog("aaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbb ",self.lst_member.numItems)
-- self:GetMemberData(self.lst_member.numItems)
-- end
-- )
-- 初始化搜索成员列表
self.lst_member_find = self._view:GetChild('lst_member_find')
self.lst_member_find:SetVirtual()
self.lst_member_find.itemRenderer = function(index, obj)
self:OnRenderItemFind(index, obj)
end
self.lst_rewards = self._view:GetChild('lst_member2')
self.lst_rewards:SetVirtual()
self.lst_rewards.itemRenderer = function(index, obj)
self:OnRenderItemMy(index, obj)
end
--local n50=self._view:GetChild('n50')
--print(n50)
--n50.displayObject.gameObject.transform.localPosition.x=214
--print(n50.displayObject.gameObject.transform.localPosition.x)
-- 搜索玩家
self._ctr_search = self._view:GetController('search')
self._view:GetChild('btn_search').onClick:Set(
function()
ViewUtil.ShowModalWait(nil)
local text = self._view:GetChild('tex_id').text
local qid, qnick
if text == "" then
ViewUtil.CloseModalWait()
ViewUtil.ErrorTip(nil, '输入不能为空')
return
end
qid = tonumber(text) or 0
qnick = 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._ctr_search.selectedIndex = 1
ViewUtil.CloseModalWait()
2025-07-05 23:46:13 +08:00
self._data_searchMember = res.Data.members[1]
self.lst_member_find.numItems = #res.Data.members
end
end,
qnick
)
end
)
local btn_back = self._view:GetChild('btn_back')
btn_back.onClick:Set(
function()
print("ling btn_back", #self.backTable)
if #self.backTable > 1 then
table.remove(self.backTable)
local tempIndex = self.backTable[#self.backTable]
local tempTable = self.numberMap[tempIndex[1]][tempIndex[2]]
self.lst_member_find.numItems = #tempTable
else
self._ctr_search.selectedIndex = 0
self.lst_member.numItems = self:GetChildNumForPage()
end
end
)
local group = DataManager.groups:get(self.group_id)
local perm_array = MngPermission.getPermData(group.permission)
self._view:GetChild('btn_less').onClick:Set(function()
if self.start >= 2 then
self.start = self.start - 1
self.lst_member.numItems = self:GetChildNumForPage()
self._view:GetChild('text_ye').text = string.format("%d/%d", self.start, self.page)
else
ViewUtil.ErrorMsg(self._view, nil, "当前页数不能减少")
end
end)
self._view:GetChild('btn_add').onClick:Set(function()
if self.start < self.page then
self.start = self.start + 1
self._view:GetChild('text_ye').text = string.format("%d/%d", self.start, self.page)
self.lst_member.numItems = self:GetChildNumForPage()
else
ViewUtil.ErrorMsg(self._view, nil, "当前页数不能增加")
end
end)
self._view:GetChild('btn_piLaoZhi1').onClick:Set(function()
local fgCtr = ControllerManager.GetController(NewGroupController)
2025-06-06 01:11:41 +08:00
fgCtr:FG_GetRewards(self.group_id, DataManager.SelfUser.account_id, group.lev,
function(res)
ViewUtil.CloseModalWait()
if self._is_destroy then
return
end
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, "获取合伙人奖励失败")
else
self.rewards = res.Data.rewards
self.lst_rewards.numItems = #self.rewards
end
end)
end)
self._view:GetChild('btn_piLaoZhi2').onClick:Set(function()
self:GetMemberData(0)
end)
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_GetRewards(self.group_id, DataManager.SelfUser.account_id, group.lev,
function(res)
ViewUtil.CloseModalWait()
if self._is_destroy then
return
end
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, "获取合伙人奖励失败")
else
self.rewards = res.Data.rewards
2025-06-19 23:14:44 +08:00
if not self.rewards then
ViewUtil.ErrorTip(nil, "玩法为空")
return
end
self.lst_rewards.numItems = #self.rewards
end
end)
-- self:GetMemberData(0)
end
-- 快速访问
function M:navigation()
self._view:GetController('page').selectedIndex = 2
self:initData()
end
-- 获取成员数据
function M:GetMemberData(index)
--print("11111111111111111111")
--print(debug.traceback())
-- local iClear = false
-- local rtype = self._view:GetChild("n132").value
-- if tostring(self.online) ~= rtype then
-- iClear = true
-- end
local group = DataManager.groups:get(self.group_id)
if index == 0 then
group:clearMember()
end
ViewUtil.ShowModalWait(nil, "亲友圈成员较多,请稍后")
local fgCtr = ControllerManager.GetController(NewGroupController)
2025-06-19 23:14:44 +08:00
self.member_data = {}
self:RecursionGetMenberData(fgCtr, 0)
end
function M:RecursionGetMenberData(fgCtr, index)
fgCtr:FG_GroupMembers12(
self.group_id,
2025-06-19 23:14:44 +08:00
index * 67,
67,
self.stype,
self.online,
function(res)
if res.ReturnCode ~= 0 then
2025-06-19 23:14:44 +08:00
ViewUtil.CloseModalWait()
ViewUtil.ErrorTip(res.ReturnCode, '获取成员列表失败')
2025-06-19 23:14:44 +08:00
self:Destroy()
return
else
2025-06-19 23:14:44 +08:00
if res.Data.members and #res.Data.members > 0 then
local mumbers = res.Data.members
-- self.member_data = self.all_member_data
for i = 1, #mumbers do
local number = mumbers[i]
2025-06-21 15:25:30 +08:00
if number.lev < 3 or number.partnerLev ~= 0 then
table.insert(self.member_data, number)
end
2025-06-19 23:14:44 +08:00
end
self:RecursionGetMenberData(fgCtr, index + 1)
else
ViewUtil.CloseModalWait()
self.page = math.ceil(#self.member_data / self.pageNum)
self.lst_member.numItems = self:GetChildNumForPage()
self._view:GetChild('text_ye').text = string.format("%d/%d", self.start, self.page)
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+res.Data.otherHp)
end
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, index)
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'
obj:GetChild('tex_childId').text = index
ImageLoad.Load(member.portrait, obj:GetChild('btn_head')._iconObject, self.class)
-- obj.data = member.id
-- 显示玩家标签,合伙人、管理员
-- local ctr_type = obj:GetController('type')
local tex_lev = obj:GetChild('tex_lev')
if member.lev < 3 then
if member.lev == 1 then
tex_lev.text = "盟主"
else
tex_lev.text = "董事"
end
elseif member.partnerLev ~= 0 then
tex_lev.text = "董事"
else
tex_lev.text = "成员"
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
-- local now_time = os.date("*t",now)
-- local today = os.time({year=now_time.year, month=now_time.month, day=now_time.day, hour=0,min=0,sec=0})
-- local cha = math.ceil((today - member.last_time) / (24 * 60 *60))
-- if (cha > 0) then
-- obj:GetChild('tex_last_login').text = cha.."天前" --'最近登录\n' .. os.date('%Y/%m/%d', member.last_time)
-- else
-- obj:GetChild('tex_last_login').text = os.date('%Y/%m/%d', member.last_time)
-- end
--print("11111aaaaaaaaaaaaaaaaaaaa ",os.date('%Y/%m/%d', member.last_time))
obj:GetChild('tex_last_login').text = "最近登录:" .. 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
2025-06-30 08:39:00 +08:00
obj:GetChild('tex_zongchangci').text = member.parentId
2025-07-05 23:46:13 +08:00
-- obj:GetChild('tex_pername').text = member.parentId_nick or ""
obj:GetChild('tex_ruhui').text = os.date('%Y/%m/%d %H:%M:%S', member.join_time)
--上级
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:GetChildNumForPage()
-- 搜索出的玩家显示
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:GetChildNumForPage()
-- 搜索出的玩家显示
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:GetChildNumForPage()
self._view:GetController('search').selectedIndex = 0
else
self.lst_member.numItems = self:GetChildNumForPage()
if refresh then
self:FillItem(obj, member)
end
end
end,
function()
self:GetMemberData(0)
end
)
mflv:Show()
end
)
local btnBxx = obj:GetChild('btn_bxx')
btnBxx.visible = (not (member.lev == 3 and member.partnerLev == 0)) and
not (DataManager.SelfUser.account_id == member.uid)
--btnBxx.visible = not (DataManager.SelfUser.account_id == member.uid)
obj:GetChild('btn_bxx').onClick:Set(
function()
local ctrNum = 1
-- if not (member.lev == 3 and member.partnerLev == 0) then
-- ctrNum = 2
-- end
ctrNum = 2
local gmv = GroupMngFagPackView.new(self.curGroup.id, self._root_view, ctrNum, member.uid)
gmv:SetCallback(
function()
btnBxx.selected = false
end
)
gmv:Show()
end
)
local superBtn = obj:GetChild('super_btn')
-- superBtn.visible = group.lev == 1
local superBtnUp = obj:GetChild('superior_btn_up')
obj:GetChild("btn_zeng").onClick:Set(
function()
2025-06-06 01:11:41 +08:00
if member.uid == DataManager.SelfUser.account_id then
self._view:GetController('page').selectedIndex = 0
else
local prv = GroupPartnerRewardsView.new(self.group_id, member.uid, member.lev)
prv:Show()
end
end
)
obj:GetChild("super_btn").onClick:Set(
function()
ViewUtil.ShowModalWait(nil)
local text = member.uid
local tempNumberList = self.numberMap[1][text]
if tempNumberList == nil then
tempNumberList = {}
for j = 1, #self.member_data do
local number = self.member_data[j]
if number.parentId == text then
table.insert(tempNumberList, number)
end
end
self.numberMap[1][text] = tempNumberList
end
self._view:GetChild('tex_id').text = ''
self._view:GetController('search').selectedIndex = 1
ViewUtil.CloseModalWait()
table.insert(self.backTable, { 1, text })
self.lst_member_find.numItems = #tempNumberList
end
)
end
function M:FillItem2(obj, group, member, refresh, index)
obj:GetChild('tex_childId').text = group:getPlayName(member.pid)
obj:GetChild('tex_lev').text = group.lev == 1 and d2ad(member.cur_value / 2) or d2ad(member.cur_value)
end
function M:OnRenderItem(index, obj)
--printlog("aaaaaaaaaawwwwwwwwwwwwwwwwwwwwwwwwwwww ",index)
local i = (self.start - 1) * self.pageNum + index + 1
local member = self.member_data[i]
if member then
self:FillItem(obj, member, false, i)
end
end
function M:OnRenderItemFind(index, obj)
--printlog("aaaaaaaaaawwwwwwwwwwwwwwwwwwwwwwwwwwww ",index)
2025-07-05 23:46:13 +08:00
local member = self._data_searchMember
if member then
2025-07-05 23:46:13 +08:00
self:FillItem(obj, member, false, index + 1)
end
end
function M:OnRenderItemMy(index, obj)
local member = self.rewards[index + 1]
local group = DataManager.groups:get(self.group_id)
if member then
self:FillItem2(obj, group, member, true, index + 1)
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
function M:GetChildNumForPage()
local numberNum = #self.member_data
if self.start * self.pageNum > numberNum then
return numberNum - (self.start - 1) * self.pageNum
end
return self.pageNum
end
2025-06-09 13:25:05 +08:00
function M:Destroy()
BaseWindow.Destroy(self)
end
return M