local TimeSettingPanel = import(".MngView.TimeSettingPanel") local GroupPartnerStatMember = import(".MngView.GroupPartnerStatMember") local GroupPartnerStatPlay = import(".MngView.GroupPartnerStatPlay") local GroupNumberInputView = import(".MngView.GroupNumberInputView") local GroupSetMemberInfoDiaoduView = import('.MngView.GroupSetMemberInfoDiaoduView') -- 开桌统计 local GroupSetUpTeamAlertSystemView = {} local M = GroupSetUpTeamAlertSystemView function GroupSetUpTeamAlertSystemView.new(gid) setmetatable(M, { __index = BaseWindow }) local self = setmetatable({}, { __index = M }) self.class = "GroupSetUpTeamAlertSystemView" self._close_destroy = true self.group_id = gid self.record_data = {} -- 分页相关变量 self.page_size = 10 -- 每页显示数量 self.current_page = 1 -- 当前页码 self.total_pages = 1 -- 总页数 self:init("ui://NewGroup/Win_SetUpTeamAlertSystem") return self end function M:init(url) BaseWindow.init(self, url) local group = DataManager.groups:get(self.group_id) self.lst_record = self._view:GetChild("lst_record") self.lst_record:SetVirtual() self.lst_record.itemRenderer = function(index, obj) self:OnRenderRecordItem(index, obj) end self.lst_record.scrollPane.onPullUpRelease:Set(function() self:GetRecordData(self.lst_record.numItems) end) self.time_panel = TimeSettingPanel.new(self._view, self._view:GetChild("btn_date1"), self._view:GetChild("btn_date2"), -308, 0, nil, true) local ctr_page = self._view:GetController("type") ctr_page.onChanged:Set(function() self.record_data = {} self.lst_record.numItems = 0 if ctr_page.selectedIndex == 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 }) self.begin_time = today self.end_time = today + 86400 else 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 }) self.begin_time = today - 86400 * ctr_page.selectedIndex self.end_time = today - 86400 * (ctr_page.selectedIndex - 1) end self:GetRecordData(0) end) -- 搜索玩家 local 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 time_type = self._view:GetController("type").selectedIndex if self.begin_time ~= nil and self.end_time ~= nil then time_type = 0 end local fgCtr = ControllerManager.GetController(NewGroupController) fgCtr:FG_FindPartnerStat( self.group_id, qid, 0, 6, time_type, self.begin_time, self.end_time, 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 = '' ctr_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:FillRecordItem(res.Data.members[j], tem) end end end ) end ) local btn_back = self._view:GetChild('btn_back') btn_back.onClick:Set( function() self.quary_id = 0 self.query_nick = "" self.current_page = 1 self:GetRecordData(0) end ) -- 分页按钮事件绑定 self._view:GetChild("previouspage").onClick:Set(function() self:OnPreviousPage() end) self._view:GetChild("nextpage").onClick:Set(function() self:OnNextPage() end) -- 初始化数据 self:initData() end function M:initData() self.lst_record.numItems = 0 self.record_data = {} -- 重置分页状态 self.current_page = 1 self.total_pages = 1 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 }) self.begin_time = today self.end_time = today + 86400 self:GetRecordData(0) end function M:GetRecordData(index) ViewUtil.ShowModalWait() local time_type = self._view:GetController("type").selectedIndex if self.begin_time ~= nil and self.end_time ~= nil then time_type = 0 end local fgCtr = ControllerManager.GetController(NewGroupController) fgCtr:FG_GetPartnerStat(self.group_id, index, 6, time_type, self.begin_time, self.end_time, function(res) ViewUtil.CloseModalWait() if res.ReturnCode == 0 then local members = res.Data.members for i = 1, #members do self.record_data[#self.record_data + 1] = members[i] end -- 计算总页数 self.total_pages = math.ceil(#self.record_data / self.page_size) if self.total_pages < 1 then self.total_pages = 1 end -- 确保当前页不超过总页数 if self.current_page > self.total_pages then self.current_page = self.total_pages end -- 更新分页UI self:UpdatePagination() -- 设置列表显示数量 self.lst_record.numItems = #self.record_data end end) end -- 显示奖励 local function __showRewardsValue(rtype, cur_value, max_value, mng) local str = "" if not mng then str = string.format("%s%%/%s%%", cur_value, max_value) else str = string.format("%s%%", cur_value) end return str end function M:FillRecordItem(data, obj) local group = DataManager.groups:get(self.group_id) obj:GetChild("tex_name").text = ViewUtil.stringEllipsis(data.nick) obj:GetChild("tex_id").text = "ID:" .. data.uid local tex_total_score = obj:GetChild("tex_total_score") local ctr_show_total = obj:GetController("show_total") if data._total_hp then tex_total_score.text = data._total_hp ctr_show_total.selectedIndex = 1 else ctr_show_total.selectedIndex = 0 end obj:GetChild("tex_round_valid").text = d2ad(data.reward_hp + data.total_win) obj:GetChild("tex_round_total").text = data.total_round obj:GetChild("tex_total").text = d2ad(data.total_win) obj:GetChild("tex_round_youxiao").text = data.valid_round / 100 ViewUtil.ShowModalWait(self._root_view) local fgCtr = ControllerManager.GetController(NewGroupController) -- 异步获取 HP fgCtr:FG_GetTotalHp(self.group_id, data.uid, function(res) ViewUtil.CloseModalWait() if self._is_destroy then return end if res.ReturnCode == 0 then local hp = d2ad(res.Data.hp) tex_total_score.text = hp data._total_hp = hp obj:GetChild("tex_total").text = hp data.total = res.Data.total_member - 1 obj:GetChild("tex_name").text = ViewUtil.stringEllipsis(data.nick) ctr_show_total.selectedIndex = 1 end end) local btn_award = obj:GetChild("btn_award") btn_award.text = d2ad(data.reward_hp) btn_award.onClick:Set(function() local time_type = self._view:GetController("type").selectedIndex local gniv = GroupPartnerStatPlay.new(self.group_id, data.uid, data.partnerLev, DataManager.SelfUser.account_id, time_type, self.begin_time, self.end_time) gniv:Show() end) obj:GetChild("tex_round_valid").text = d2ad(data.reward_hp) local btn_detail = obj:GetChild("btn_detail") btn_detail.onClick:Set(function() local time_type = self._view:GetController("type").selectedIndex local gniv = GroupPartnerStatMember.new(self.group_id, data.uid, 0, self.begin_time, self.end_time) gniv:Show() end) if group.lev == 1 then obj:GetController('diaodu_ismengzhu').selectedIndex = 1 else obj:GetController('diaodu_ismengzhu').selectedIndex = 0 end local btn_detail1 = obj:GetChild("btn_detail_zhengzudiaodu") if btn_detail1 then btn_detail1.onClick:Set(function() ViewUtil.ShowModalWait() ControllerManager.GetController(NewGroupController):FG_GetBanMemberHB(self.group_id, data.uid, function(res) ViewUtil.CloseModalWait() if res.ReturnCode == 0 then local diaoduView = GroupSetMemberInfoDiaoduView.new(self.group_id, data.uid) diaoduView:SetCurrentState(res.Data.group_black + 1, res.Data) else ViewUtil.ErrorTip(res.ReturnCode, "获取整组调度失败!") end end) end) end local btnMen = obj:GetChild("btnMen") local menControl = obj:GetController("menkan") local texMentext = obj:GetChild("tex_Men_text") if group.lev == 1 or (group.lev == 3 and group.partnerLev > 0) then if (DataManager.SelfUser.account_id ~= data.uid) then menControl.selectedIndex = 1 texMentext.text = d2ad(data.autoscore) btnMen.touchable = true else texMentext.text = d2ad(data.autoscore) menControl.selectedIndex = 1 btnMen.touchable = false end else menControl.selectedIndex = 0 end btnMen.onClick:Set(function() local gfiv = GroupNumberInputView.new(self._root_view, function(num) local fgCtr = ControllerManager.GetController(NewGroupController) fgCtr:FG_SetPartnerThreshold(self.group_id, data.uid, num, function(res) ViewUtil.CloseModalWait() if res.ReturnCode ~= 0 then ViewUtil.ErrorTip(res.ReturnCode, "设置失败") else ViewUtil.ShowBannerOnScreenCenter("设置成功") texMentext.text = num data.autoscore = ad2d(num) end end) end, 0) gfiv:Show() end) end function M:OnRenderRecordItem(index, obj) local data = self.record_data[index + 1] if not data then return end self:FillRecordItem(data, obj) end -- 更新分页UI显示 function M:UpdatePagination() if not self._view or self._view.isDisposed then return end local pagination_text = self._view:GetChild("pagination") local previous_btn = self._view:GetChild("previouspage") local next_btn = self._view:GetChild("nextpage") if pagination_text then pagination_text.text = tostring(self.current_page) end -- if previous_btn then -- if self.current_page <= 1 then -- previous_btn.grayed = true -- previous_btn.touchable = false -- else -- previous_btn.grayed = false -- previous_btn.touchable = true -- end -- end -- if next_btn then -- if self.current_page >= self.total_pages then -- next_btn.grayed = true -- next_btn.touchable = false -- else -- next_btn.grayed = false -- next_btn.touchable = true -- end -- end end -- 上一页 function M:OnPreviousPage() if self.current_page <= 1 then ViewUtil.ErrorTip(nil, "已经是第一页了") return end self.current_page = self.current_page - 1 self:UpdatePagination() end -- 下一页 function M:OnNextPage() if self.current_page >= self.total_pages then ViewUtil.ErrorTip(nil, "已经是最后一页了") return end self.current_page = self.current_page + 1 self:UpdatePagination() end return M