local UIRedPacketMain = UIViewClass() --[[ 势力红包主界面 --]] local RightLoopTab = { Receive = 1, Record = 2, } local nanosecond = 1000000000 -------------------- function UIRedPacketMain:OnCreated() self.guildRedPacketList = {} self.redPakcetRecord = {} self.curRightLoopTab = 0 end function UIRedPacketMain:OnOpened(context) UIUtils.SetLabelText(self.UICommonPopUp.txt_Title, Const_IDS.IDS_HongBao_Name2) UIUtils.SetActive(self.UICommonPopUp.img_Info, true) CTL.RedPacket.ShowOrHideRedPacket(false) self:RegistSystemEvent(EventID.UI_RedPacket_RefreshOwn, self.RefreshLeftRedLoop) self:RegistSystemEvent(EventID.UI_RedPacket_RefreshReceivePanel, self.RefreshRightReceiveLoop) self:RegistSystemEvent(EventID.UI_RedPacket_RefreshRecordPanel, self.RefreshRightRecordLoop) self:RegistSystemEvent(EventID.UI_RedPacket_ReceiveTimes, self.RefreshRedPacketTimes) self:RegistSystemEvent(EventID.UI_Guild_BeKickOutRefresh, self.CloseView) self:RegistSystemEvent(EventID.UI_Guild_Leave, self.CloseView) MDL.RedPacket.GetGuildRedPacketInfoRequest(true, MDL.RedPacket.RightRequestForm.Unwanted) self:OnValueChanged(self.toggle_TopGroup, 0) self:RefreshRedPacketTimes() MDL.RedPacket.ClearRedEnvelopeRedPointRequest() CTL.RedPoint.RemoveRedPoint(CTL.RedPoint.RedPointKey.Guild_Member_RedPacket) end function UIRedPacketMain:OnClosed() UIUtils.SetActive(self.UICommonPopUp.img_Info, false) CTL.RedPacket.ShowOrHideRedPacket() CTL.RedPoint.RemoveRedPoint(CTL.RedPoint.RedPointKey.Guild_Member_RedPacket) end function UIRedPacketMain:OnBackButtonPressed() self:OnButtonClicked(self.UICommonPopUp.btn_Close) end function UIRedPacketMain:OnButtonClicked(comp) if comp == self.UICommonPopUp.btn_Close then self:CloseView() elseif comp == self.UICommonPopUp.img_Info then UIManager.OpenView(Const_UI_Lua.UIEnum.UICommonNoteView, {id = LuaConst.NoteID.HongBao}) end end function UIRedPacketMain:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.loop_LeftRedPackets then if data.title then -- 用title字段标记是否为Tab标题 UIUtils.SetLabelText(cellTable.txt_Title, data.title) else if data.isUse then UIUtils.SetLabelText(cellTable.txt_eventActText, Const_IDS[data.redPacketData.HasReceive and "IDS_HongBao_CheckHongBao" or "IDS_HongBao_GetHongBao"]) cellTable.StateSwitch:SetState(data.redPacketData.HasReceive and 1 or 2) cellTable.Loc_ChangeColor:SetState(1) else UIUtils.SetLabelText(cellTable.txt_eventActText, Const_IDS.IDS_HongBao_SentHongBao) cellTable.StateSwitch:SetState(0) cellTable.Loc_ChangeColor:SetState(0) end local redPacketData = DataSheetManager.HongBao:GetDataByID(data.redPacketData.CfgID) if redPacketData then UIUtils.SetLabel(cellTable.txt_Name, CTL.RedPacket.GetRedPacketDescByRedPacketData(redPacketData)) UIUtils.SetLabel(cellTable.txt_Cost, redPacketData.HongBaoMoney) else logging.error(LTAG.ERROR, "势力红包 : 没有找到 id = ", data.redPacketData.CfgID, " 的红包数据") end end elseif scrollRect == self.loop_RightRedPackets then -- 自己匿名标识 UIUtils.SetActive(cellTable.img_AnonymousBg, data.redPacketData.isInnominate and data.redPacketData.PlayerACID == BattleDataGetter.GetAcID()) -- 设置红包是否发放 cellTable.btn_Open.enabled = data.isUse if data.isUse then -- UIUtils.SetActive(cellTable.img_TxtBg, data.redPacketData.HasReceive) cellTable.obj_state:SetState(data.redPacketData.HasReceive and 0 or 2) else -- UIUtils.SetActive(cellTable.img_TxtBg, true) cellTable.obj_state:SetState(1) end local redPacketData = DataSheetManager.HongBao:GetDataByID(data.redPacketData.CfgID) if redPacketData then if data.redPacketData.isInnominate and data.redPacketData.PlayerACID ~= BattleDataGetter.GetAcID() then UIUtils.SetLabelText(cellTable.txt_Intro, Const_IDS.IDS_GuildHongBao_DesHint1) UIUtils.SetLabelText(cellTable.txt_PlyerName, Const_IDS.IDS_GuildHongBao_PlayerName) else UIUtils.SetLabel(cellTable.txt_Intro, CTL.RedPacket.GetRedPacketDescByRedPacketData(redPacketData)) UIUtils.SetLabel(cellTable.txt_PlyerName, data.redPacketData.PlayerName) end UIUtils.SetLabel(cellTable.txt_Cost, redPacketData.HongBaoMoney) else logging.error(LTAG.ERROR, "势力红包 : 没有找到 id = ", data.redPacketData.CfgID, " 的红包数据") end elseif scrollRect == self.loop_Data then local obtainTime = math.max(math.floor(data.ObtainTimeStamp / nanosecond), 1) UIUtils.SetLabel(cellTable.txt_Time, UTL.Time.FormatTimeCompletely(obtainTime)) UIUtils.SetLabel(cellTable.txt_PlayerName, data.PlayerName) local redPacketData = DataSheetManager.HongBao:GetDataByID(data.CfgID) if redPacketData then UIUtils.SetLabel(cellTable.txt_RedPacketName, CTL.RedPacket.GetRedPacketDescByRedPacketData(redPacketData)) UIUtils.SetLabel(cellTable.txt_Cost, redPacketData.HongBaoMoney) else logging.error(LTAG.ERROR, "势力红包 : 没有找到 id = ", data.CfgID, " 的红包数据") end end end function UIRedPacketMain:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.loop_LeftRedPackets then if target == cellTable.event_Act then if data.isUse then if data.redPacketData.HasReceive then -- 发送查看消息 MDL.RedPacket.SeeRedEnvelopeRequest(data.redPacketData.ID) else -- 发送领取消息 MDL.RedPacket.ReceiveGuildRedPacketRequest(data.redPacketData.ID) end else CTL.Sound.PlayGameSound("UI_red_packet") MDL.RedPacket.SendGuildRedEnvelopeRequest(data.redPacketData.ID) end end elseif scrollRect == self.loop_RightRedPackets then if target == cellTable.btn_Open then if data.HasReceive then -- 发送查看消息 MDL.RedPacket.SeeRedEnvelopeRequest(data.redPacketData.ID) else -- 发送领取消息 MDL.RedPacket.ReceiveGuildRedPacketRequest(data.redPacketData.ID) end end end end function UIRedPacketMain:OnValueChanged(comp, index) if comp == self.toggle_TopGroup then self.curRightLoopTab = index + 1 if self.curRightLoopTab == RightLoopTab.Receive then MDL.RedPacket.GetGuildRedPacketInfoRequest(false, MDL.RedPacket.RightRequestForm.RequestReceiveContent) elseif self.curRightLoopTab == RightLoopTab.Record then MDL.RedPacket.GetGuildRedPacketInfoRequest(false, MDL.RedPacket.RightRequestForm.RequestHistoryContent) end end end -------------------- function UIRedPacketMain:RefreshLeftRedLoop() if MDL.RedPacket.SelfRedPacketIsEmpty() then UIUtils.SetActive(self.loop_LeftRedPackets, false) UIUtils.SetActive(self.img_LeftEmpty, true) else UIUtils.SetActive(self.loop_LeftRedPackets, true) self.loop_LeftRedPackets:ClearCells() local lastUse = nil for i, v in MDL.RedPacket.GetSelfRedPacketIterator() do if lastUse ~= v.isUse then self.loop_LeftRedPackets:AddData({title = Const_IDS[v.isUse and "IDS_HongBao_Senting" or "IDS_HongBao_NotSent"]}, 0) lastUse = v.isUse end self.loop_LeftRedPackets:AddData(v, 1) end UIUtils.SetActive(self.img_LeftEmpty, false) end end function UIRedPacketMain:RefreshRightReceiveLoop() if self.curRightLoopTab ~= RightLoopTab.Receive then return end if MDL.RedPacket.GuildRedPakcetIsEmpty() then self.obj_rightState:SetState(0) UIUtils.SetLabelText(self.txt_Tip, Const_IDS.IDS_HongBao_NoHongBao2) UIUtils.SetActive(self.img_Bg2, true) else local index = 1 for _, v in MDL.RedPacket.GetGuildRedPacketIterator() do self.guildRedPacketList[index] = v index = index + 1 end for i = #self.guildRedPacketList, index, -1 do table.remove(self.guildRedPacketList, i) end self.obj_rightState:SetState(1) self.loop_RightRedPackets:ReloadAll(self.guildRedPacketList) end end function UIRedPacketMain:RefreshRightRecordLoop() if self.curRightLoopTab ~= RightLoopTab.Record then return end if MDL.RedPacket.RedPakcetRecordIsEmpty() then self.obj_rightState:SetState(0) UIUtils.SetLabelText(self.txt_Tip, Const_IDS.IDS_HongBao_Record) else local index = 1 for _, v in MDL.RedPacket.GetRedPakcetRecordIterator() do self.redPakcetRecord[index] = v index = index + 1 end for i = #self.redPakcetRecord, index, -1 do table.remove(self.redPakcetRecord, i) end self.obj_rightState:SetState(2) self.loop_Data:ReloadAll(self.redPakcetRecord) end end function UIRedPacketMain:RefreshRedPacketTimes() local max = DataSheetManager.ConstData:GetDataByID("BangHongBaoGetMax").IntValue UIUtils.SetLabel(self.txt_DailyLimit, string.FormatByIdsId(Const_IDS.IDS_HongBao_Available, MDL.RedPacket.GetRedPacketReceiveTimes(), max)) end return UIRedPacketMain