local UIDailySigninPop = UIViewClass() -------------------- function UIDailySigninPop:OnOpened(context) self:RegistSystemEvent(EventID.UI_DailySignin_Refresh, self.RefreshPanel) self:RefreshPanel() UTL.Item.SetLocalizationImage(self.loc_Title, self.img_CumulativeInfo, "yqd_zs_08.png") UTL.Item.SetLocalizationImage(self.loc_Title, self.img_Title, "yqd_msz_01.png") end function UIDailySigninPop:OnBackButtonPressed() self:OnButtonClicked(self.btn_Close) end function UIDailySigninPop:OnButtonClicked(comp) if comp == self.btn_Close then self:CloseView() end end function UIDailySigninPop:OnCellInit(scrollRect, index, cellTable, data) cellTable.obj_BgState:SetState(index % 3) -- 状态0为未达到领取条件,状态1为已领取,状态2为已达到领取条件但未领取 local receiveState = 0 if data.isReceive then receiveState = 1 else if MDL.DailySignin.GetAddUpDaysCount() >= data.AccumulatedDay then receiveState = 2 else receiveState = 0 end end cellTable.obj_ReceiveState:SetState(receiveState) UIUtils.SetLabel(cellTable.txt_CumulativeLogin, string.FormatByIdsId(Const_IDS.IDS_DailySignin_SumSignDay, data.AccumulatedDay)) -- 设置奖励显示 if data.rewardData then for i, itemData in ipairs(data.rewardData.Item_Table) do local contentItem = cellTable.group_Item[i] if not contentItem then contentItem = self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.group_Item, self.itemTemplate.gameObject) end UTL.Item.SetItemCell(contentItem, itemData.ItemID, itemData.ItemNum) UIUtils.SetActive(contentItem.gameObject, true) end for i = #data.rewardData.Item_Table + 1, #cellTable.group_Item do UIUtils.SetActive(cellTable.group_Item[i].gameObject, false) end end end function UIDailySigninPop:OnCellClicked(scrollRect, index, cellTable, target, data) if target == cellTable.btn_Receive then MDL.DailySignin.DailySigninRequest(MDL.DailySignin.SigninType.AccRewardType, data.AccumulatedDay) else for i, v in ipairs(cellTable.group_Item) do if target == v.event_Click then UTL.ItemTips.ShowCommonTipsById(data.rewardData.Item_Table[i].ItemID) return end end end end -------------------- function UIDailySigninPop:RefreshPanel() UIUtils.SetLabel(self.txt_Logged, MDL.DailySignin.GetAddUpDaysCount()) local accumulatedSigninDataList = {} local receiveIndex = 0 for i, v in DataSheetManager.AccumulatedSignin:GetEnumerator() do local accumulatedSigninData = { AccumulatedDay = v.AccumulatedDay } local rewardData = DataSheetManager.AccumulatedSigninReward:GetDataByID(v.AccumulatedReward) if rewardData then accumulatedSigninData["rewardData"] = rewardData else logging.error(LTAG.ERROR, "每日签到——总累积签到配表错误 : 请检查 AccumulatedDay = ", v.AccumulatedDay, "的累积签到奖励,是否在MonthSigninReward表中配置") end accumulatedSigninData["isReceive"] = MDL.DailySignin.IsReceiveAddUpGiftsByAccumulatedDay(v.AccumulatedDay) if accumulatedSigninData.isReceive then receiveIndex = i end table.insert(accumulatedSigninDataList, accumulatedSigninData) end self.loop_Gift:ReloadAll(accumulatedSigninDataList) self.loop_Gift:MoveIndex(receiveIndex - 1) end return UIDailySigninPop