显示人数

master
罗家炜 2025-09-28 19:35:16 +08:00
parent 30bce22d7a
commit 36ee41b638
1 changed files with 109 additions and 190 deletions

View File

@ -231,106 +231,117 @@ function M:RecursionGetIndex(index, lev)
end end
end end
-- comment 搜索和非搜索通用的虚拟列表渲染逻辑
---@param index any 虚拟列表传输过来的子项索引
---@param obj any 虚拟列表传输过来的子项
function M:ListRenderer(index, obj)
local tempLev, tempIndex = self:RecursionGetIndex(index + 1, 1)
local dataInfo = self._data_record[tempLev][tempIndex]
local nameStr = ViewUtil.stringEllipsis(dataInfo.nick)
if dataInfo.hpall and dataInfo.hpall.total_member and (dataInfo.partnerLev ~= 0 or dataInfo.lev == 1) then
nameStr = string.format("%s(%d)", nameStr, dataInfo.hpall.total_member - 1)
end
obj:GetChild("tex_name").text = nameStr
obj:GetChild("tex_id").text = "ID:" .. dataInfo.uid
local tex_total_score = obj:GetChild("tex_total_score")
local ctr_show_total = obj:GetController("show_total")
if dataInfo.hpall then
tex_total_score.text = d2ad(dataInfo.hpall.hp)
ctr_show_total.selectedIndex = 1
else
ctr_show_total.selectedIndex = 0
end
obj:GetChild("tex_round_valid").text = d2ad((dataInfo.reward_tongji or dataInfo.reward_hp) + dataInfo
.total_win) --d2ad(data.reward_hp) --data.valid_round / 100
obj:GetChild("tex_round_total").text = dataInfo.total_round
obj:GetChild("tex_total").text = d2ad(dataInfo.total_win)
obj:GetChild("tex_round_youxiao").text = dataInfo.valid_round / 100
obj:GetChild('tex_reward').text = d2ad(dataInfo.reward_tongji or dataInfo.reward_hp)
obj:GetChild("btn_more").visible = not dataInfo.partnerLev or dataInfo.partnerLev > 0
obj:GetController("more").onChanged:Set(function() end)
if tempLev <= self._selectedLev then
obj:GetController("select").selectedIndex = 1
else
obj:GetController("select").selectedIndex = 0
end
if tempIndex == self._selectIndexList[tempLev] then
obj:GetController("more").selectedIndex = 1
else
obj:GetController("more").selectedIndex = 0
end
obj:GetController("more").onChanged:Set(function(context)
self:MoreChanged(context, { lev = tempLev, index = tempIndex })
end)
local btn_check_members = obj:GetChild("btn_check_members")
btn_check_members.visible = not dataInfo.partnerLev or dataInfo.partnerLev > 0
btn_check_members.onClick:Set(function()
ViewUtil.ShowModalWait(self._root_view)
local fgCtr = ControllerManager.GetController(NewGroupController)
if dataInfo.uid == DataManager.SelfUser.account_id then
fgCtr:FG_GetMembersCount(self.group_id, function(res)
ViewUtil.CloseModalWait()
if res.ReturnCode == 0 then
tex_total_score.text = d2ad(res.Data.hp_num1 + res.Data.otherHp)
ctr_show_total.selectedIndex = 1
else
ViewUtil.ErrorTip(res.ReturnCode, "目标没有总线值")
end
end)
else
fgCtr:FG_GetTotalHp(self.group_id, dataInfo.uid, function(res)
ViewUtil.CloseModalWait()
if res.ReturnCode == 0 then
local hp = d2ad(res.Data.hp)
tex_total_score.text = hp
dataInfo._total_hp = hp
ctr_show_total.selectedIndex = 1
end
end)
end
end)
obj:GetChild('btn_super').visible = not dataInfo.partnerLev or dataInfo.partnerLev > 0
obj:GetChild('btn_super').onClick:Set(function()
if obj:GetController("more").selectedIndex == 0 then
self:ChangedClear(tempLev)
ViewUtil:ShowModalWait()
if tempLev == 1 then
self._selectedLev = 1
self._selectIndex = tempIndex
self._selectIndexList[self._selectedLev] = self._selectIndex
self:LevGetRecordData(0, dataInfo,
self.GetNumberRecordForLev1(self, 0, { lev = tempLev, index = tempIndex }))
else
self._selectedLev = tempLev
self._selectIndex = tempIndex
self._selectIndexList[self._selectedLev] = self._selectIndex
self:GetAllRecordData(0, { lev = tempLev, index = tempIndex },
self.GetNumberRecord(self, 0, { lev = tempLev, index = tempIndex }))
end
else
self:ChangedClear(tempIndex + 1)
self._selectedLev = tempLev
self._selectIndex = tempIndex
self._selectIndexList[self._selectedLev] = self._selectIndex
if tempLev == 1 and not dataInfo.partnerLev and #self._data_record >= 2 then
ViewUtil.ShowModalWait("正在获取成员中")
self:GetNumberRecordForLev1(0, { lev = tempLev, index = tempIndex })
ViewUtil.CloseModalWait()
else
self:GetNumberRecord(0, { lev = tempLev, index = tempIndex })
end
end
end)
end
-- comment 初始化初始list -- comment 初始化初始list
function M:InitListRecord() function M:InitListRecord()
if not self.lst_record then if not self.lst_record then
self.lst_record = self._view:GetChild("lst_record") self.lst_record = self._view:GetChild("lst_record")
self.lst_record:SetVirtual() self.lst_record:SetVirtual()
self.lst_record.itemRenderer = function(index, obj) self.lst_record.itemRenderer = function(index, obj)
local tempLev, tempIndex = self:RecursionGetIndex(index + 1, 1) self:ListRenderer(index, obj)
local dataInfo = self._data_record[tempLev][tempIndex]
obj:GetChild("tex_name").text = ViewUtil.stringEllipsis(dataInfo.nick)
obj:GetChild("tex_id").text = "ID:" .. dataInfo.uid
local tex_total_score = obj:GetChild("tex_total_score")
local ctr_show_total = obj:GetController("show_total")
if dataInfo.hpall then
tex_total_score.text = d2ad(dataInfo.hpall.hp)
ctr_show_total.selectedIndex = 1
else
ctr_show_total.selectedIndex = 0
end
obj:GetChild("tex_round_valid").text = d2ad((dataInfo.reward_tongji or dataInfo.reward_hp) + dataInfo
.total_win) --d2ad(data.reward_hp) --data.valid_round / 100
obj:GetChild("tex_round_total").text = dataInfo.total_round
obj:GetChild("tex_total").text = d2ad(dataInfo.total_win)
obj:GetChild("tex_round_youxiao").text = dataInfo.valid_round / 100
obj:GetChild('tex_reward').text = d2ad(dataInfo.reward_tongji or dataInfo.reward_hp)
obj:GetChild("btn_more").visible = not dataInfo.partnerLev or dataInfo.partnerLev > 0
obj:GetController("more").onChanged:Set(function() end)
if tempLev <= self._selectedLev then
obj:GetController("select").selectedIndex = 1
else
obj:GetController("select").selectedIndex = 0
end
if tempIndex == self._selectIndexList[tempLev] then
obj:GetController("more").selectedIndex = 1
else
obj:GetController("more").selectedIndex = 0
end
obj:GetController("more").onChanged:Set(function(context)
self:MoreChanged(context, { lev = tempLev, index = tempIndex })
end)
local btn_check_members = obj:GetChild("btn_check_members")
btn_check_members.visible = not dataInfo.partnerLev or dataInfo.partnerLev > 0
btn_check_members.onClick:Set(function()
ViewUtil.ShowModalWait(self._root_view)
local fgCtr = ControllerManager.GetController(NewGroupController)
if dataInfo.uid == DataManager.SelfUser.account_id then
fgCtr:FG_GetMembersCount(self.group_id, function(res)
ViewUtil.CloseModalWait()
if res.ReturnCode == 0 then
tex_total_score.text = d2ad(res.Data.hp_num1 + res.Data.otherHp)
ctr_show_total.selectedIndex = 1
else
ViewUtil.ErrorTip(res.ReturnCode, "目标没有总线值")
end
end)
else
fgCtr:FG_GetTotalHp(self.group_id, dataInfo.uid, function(res)
ViewUtil.CloseModalWait()
if res.ReturnCode == 0 then
local hp = d2ad(res.Data.hp)
tex_total_score.text = hp
dataInfo._total_hp = hp
ctr_show_total.selectedIndex = 1
end
end)
end
end)
obj:GetChild('btn_super').visible = not dataInfo.partnerLev or dataInfo.partnerLev > 0
obj:GetChild('btn_super').onClick:Set(function()
if obj:GetController("more").selectedIndex == 0 then
self:ChangedClear(tempLev)
ViewUtil:ShowModalWait()
if tempLev == 1 then
self._selectedLev = 1
self._selectIndex = tempIndex
self._selectIndexList[self._selectedLev] = self._selectIndex
self:LevGetRecordData(0, dataInfo,
self.GetNumberRecordForLev1(self, 0, { lev = tempLev, index = tempIndex }))
else
self._selectedLev = tempLev
self._selectIndex = tempIndex
self._selectIndexList[self._selectedLev] = self._selectIndex
self:GetAllRecordData(0, { lev = tempLev, index = tempIndex },
self.GetNumberRecord(self, 0, { lev = tempLev, index = tempIndex }))
end
else
self:ChangedClear(tempIndex + 1)
self._selectedLev = tempLev
self._selectIndex = tempIndex
self._selectIndexList[self._selectedLev] = self._selectIndex
if tempLev == 1 and not dataInfo.partnerLev and #self._data_record >= 2 then
ViewUtil.ShowModalWait("正在获取成员中")
self:GetNumberRecordForLev1(0, { lev = tempLev, index = tempIndex })
ViewUtil.CloseModalWait()
else
self:GetNumberRecord(0, { lev = tempLev, index = tempIndex })
end
end
end)
end end
end end
end end
@ -341,100 +352,7 @@ function M:InitListRecordFind()
self.item_result = self._view:GetChild("lst_member_find") self.item_result = self._view:GetChild("lst_member_find")
self.item_result:SetVirtual() self.item_result:SetVirtual()
self.item_result.itemRenderer = function(index, obj) self.item_result.itemRenderer = function(index, obj)
local tempLev, tempIndex = self:RecursionGetIndex(index + 1, 1) self:ListRenderer(index, obj)
local dataInfo = self._data_record[tempLev][tempIndex]
obj:GetChild("tex_name").text = ViewUtil.stringEllipsis(dataInfo.nick)
obj:GetChild("tex_id").text = "ID:" .. dataInfo.uid
local tex_total_score = obj:GetChild("tex_total_score")
local ctr_show_total = obj:GetController("show_total")
if dataInfo.hpall then
tex_total_score.text = d2ad(dataInfo.hpall.hp)
ctr_show_total.selectedIndex = 1
else
ctr_show_total.selectedIndex = 0
end
obj:GetChild("tex_round_valid").text = d2ad((dataInfo.reward_tongji or dataInfo.reward_hp) + dataInfo
.total_win) --d2ad(data.reward_hp) --data.valid_round / 100
obj:GetChild("tex_round_total").text = dataInfo.total_round
obj:GetChild("tex_total").text = d2ad(dataInfo.total_win)
obj:GetChild("tex_round_youxiao").text = dataInfo.valid_round / 100
obj:GetChild('tex_reward').text = d2ad(dataInfo.reward_tongji or dataInfo.reward_hp)
obj:GetChild("btn_more").visible = not dataInfo.partnerLev or dataInfo.partnerLev > 0
obj:GetController("more").onChanged:Set(function() end)
if tempLev <= self._selectedLev then
obj:GetController("select").selectedIndex = 1
else
obj:GetController("select").selectedIndex = 0
end
if tempIndex == self._selectIndexList[tempLev] then
obj:GetController("more").selectedIndex = 1
else
obj:GetController("more").selectedIndex = 0
end
obj:GetController("more").onChanged:Set(function(context)
self:MoreChanged(context, { lev = tempLev, index = tempIndex })
end)
local btn_check_members = obj:GetChild("btn_check_members")
btn_check_members.visible = not dataInfo.partnerLev or dataInfo.partnerLev > 0
btn_check_members.onClick:Set(function()
ViewUtil.ShowModalWait(self._root_view)
local fgCtr = ControllerManager.GetController(NewGroupController)
if dataInfo.uid == DataManager.SelfUser.account_id then
fgCtr:FG_GetMembersCount(self.group_id, function(res)
ViewUtil.CloseModalWait()
if res.ReturnCode == 0 then
tex_total_score.text = d2ad(res.Data.hp_num1 + res.Data.otherHp)
ctr_show_total.selectedIndex = 1
else
ViewUtil.ErrorTip(res.ReturnCode, "目标没有总线值")
end
end)
else
fgCtr:FG_GetTotalHp(self.group_id, dataInfo.uid, function(res)
ViewUtil.CloseModalWait()
if res.ReturnCode == 0 then
local hp = d2ad(res.Data.hp)
tex_total_score.text = hp
dataInfo._total_hp = hp
ctr_show_total.selectedIndex = 1
end
end)
end
end)
obj:GetChild('btn_super').visible = not dataInfo.partnerLev or dataInfo.partnerLev > 0
obj:GetChild('btn_super').onClick:Set(function()
if obj:GetController("more").selectedIndex == 0 then
self:ChangedClear(tempLev)
ViewUtil:ShowModalWait()
if tempLev == 1 then
self._selectedLev = 1
self._selectIndex = tempIndex
self._selectIndexList[self._selectedLev] = self._selectIndex
self:LevGetRecordData(0, dataInfo,
self.GetNumberRecordForLev1(self, 0, { lev = tempLev, index = tempIndex }))
else
self._selectedLev = tempLev
self._selectIndex = tempIndex
self._selectIndexList[self._selectedLev] = self._selectIndex
self:GetAllRecordData(0, { lev = tempLev, index = tempIndex },
self.GetNumberRecord(self, 0, { lev = tempLev, index = tempIndex }))
end
else
self:ChangedClear(tempIndex + 1)
self._selectedLev = tempLev
self._selectIndex = tempIndex
self._selectIndexList[self._selectedLev] = self._selectIndex
if tempLev == 1 and not dataInfo.partnerLev and #self._data_record >= 2 then
ViewUtil.ShowModalWait("正在获取成员中")
self:GetNumberRecordForLev1(0, { lev = tempLev, index = tempIndex })
ViewUtil.CloseModalWait()
else
self:GetNumberRecord(0, { lev = tempLev, index = tempIndex })
end
end
end)
end end
end end
end end
@ -452,13 +370,14 @@ function M:GetRecordData()
if group.lev == 1 then if group.lev == 1 then
ViewUtil.ShowModalWait("获取盟主数据中") ViewUtil.ShowModalWait("获取盟主数据中")
self.groupumberTemp = {} self.groupumberTemp = {}
self.groupumberTemp.lev = 1
self.groupumberTemp.uid = group.owner self.groupumberTemp.uid = group.owner
self.groupumberTemp.nick = group.o_nick self.groupumberTemp.nick = group.o_nick
self.groupumberTemp.total_round = 0 self.groupumberTemp.total_round = 0
self.groupumberTemp.valid_round = 0 self.groupumberTemp.valid_round = 0
self.groupumberTemp.reward_hp = 0 self.groupumberTemp.reward_hp = 0
self.groupumberTemp.total_win = 0 self.groupumberTemp.total_win = 0
self:GetPropLog({}, 0, time_type) self:GetPropLog(0)
else else
self:GetFristData(fgCtr, 0, time_type) self:GetFristData(fgCtr, 0, time_type)
end end
@ -520,6 +439,7 @@ function M:GetPropLog(index)
if res.ReturnCode == 0 then if res.ReturnCode == 0 then
self.groupumberTemp.hpall = {} self.groupumberTemp.hpall = {}
self.groupumberTemp.hpall.hp = res.Data.hp_num1 + res.Data.otherHp self.groupumberTemp.hpall.hp = res.Data.hp_num1 + res.Data.otherHp
self.groupumberTemp.hpall.total_member = res.Data.member_num
self:InsertTableRecord(1, self.groupumberTemp) self:InsertTableRecord(1, self.groupumberTemp)
self._selectedLev = 1 self._selectedLev = 1
self._selectIndex = 1 self._selectIndex = 1
@ -574,7 +494,6 @@ function M:ChangedClear(lev)
for i = lev + 1, #self._data_record do for i = lev + 1, #self._data_record do
self._data_record[i] = nil self._data_record[i] = nil
self._selectIndexList[i] = nil self._selectIndexList[i] = nil
self._partnerNumList[i] = nil
end end
end end