local UIDragonArteryRewardPrePanel = UIViewClass() local IDS_COUNTRY_RANK_REWARD = Const_IDS.IDS_DragonArtey_CountryRankReward local IDS_PLAYER_RANK_REWARD = Const_IDS.IDS_DragonArtey_PlayerRankReward function UIDragonArteryRewardPrePanel:OnOpened(context) self.itemSourceObj = self.itemTemplate_Reward.gameObject self.hasInitCountryReward = false self.hasInitPlayerReward = false UIUtils.SetLabelText(self.UICommonPopUpTab.txt_Title, Const_IDS.IDS_DragonArtey_RewardPre) self.UICommonPopUpTab.loop_Tab:AddData(IDS_COUNTRY_RANK_REWARD, 0) self.UICommonPopUpTab.loop_Tab:AddData(IDS_PLAYER_RANK_REWARD, 0) self.UICommonPopUpTab.loop_Tab:SelectIndex(0) end function UIDragonArteryRewardPrePanel:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.UICommonPopUpTab.loop_Tab then if index == 0 then UIUtils.SetActive(cellTable.img_Arrow, false) UIUtils.SetActive(cellTable.img_ArrowS, false) end UIUtils.SetLabelText(cellTable.txt_Name_Nomal, data) UIUtils.SetLabelText(cellTable.txt_Name_Selected, data) elseif scrollRect == self.loop_CountryRewardRank then UIUtils.SetActive(cellTable.bg_Dark, index % 2 == 0) cellTable.txt_RankNum.text = nil UIUtils.SetActive(cellTable.icon_Rank, true) cellTable.state_Rank:SetState(index) --国家奖励 local countryRewardArray = DataSheetManager.DragonArteryRankReward:GetDataByID(data.CountryRewardID).Item_Table for i, rewardData in ipairs(countryRewardArray) do local contentItem = self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.ItemContent, self.itemSourceObj) contentItem.ItemID = rewardData.ItemID UTL.Item.SetItemCell(contentItem.item, rewardData.ItemID, rewardData.ItemNum, false) end --个人奖励 local rewardArray = DataSheetManager.DragonArteryRankReward:GetDataByID(data.RewardID).Item_Table for i, rewardData in ipairs(rewardArray) do local contentItem = self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.ItemContent, self.itemSourceObj) contentItem.ItemID = rewardData.ItemID UTL.Item.SetItemCell(contentItem.item, rewardData.ItemID, rewardData.ItemNum, false) end elseif scrollRect == self.loop_PlayerRewardRank then UIUtils.SetActive(cellTable.bg_Dark, index % 2 == 0) local lastData = self.playerRewardsArray[index] --名次需要找上一个data if lastData == nil then if data.PersonRank > 1 then cellTable.txt_RankNum.text = string.FormatByIdsId(Const_IDS.IDS_DragonArtey_RankTitle2, "1-" .. data.PersonRank) UIUtils.SetActive(cellTable.icon_Rank, false) else cellTable.txt_RankNum.text = nil UIUtils.SetActive(cellTable.icon_Rank, true) cellTable.state_Rank:SetState(0) end else if lastData.PersonRank + 1 == data.PersonRank then if data.PersonRank <= 4 then cellTable.txt_RankNum.text = nil UIUtils.SetActive(cellTable.icon_Rank, true) cellTable.state_Rank:SetState(data.PersonRank - 1) else cellTable.txt_RankNum.text = string.FormatByIdsId(Const_IDS.IDS_DragonArtey_RankTitle2, data.PersonRank) UIUtils.SetActive(cellTable.icon_Rank, false) end else UIUtils.SetActive(cellTable.icon_Rank, false) cellTable.txt_RankNum.text = string.FormatByIdsId(Const_IDS.IDS_DragonArtey_RankTitle2, (lastData.PersonRank + 1) .. "-" .. data.PersonRank) end end local rewardArray = DataSheetManager.DragonArteryRankReward:GetDataByID(data.RewardID).Item_Table for i, v in ipairs(rewardArray) do local contentItem = cellTable.ItemContent[i] if contentItem == nil then contentItem = self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.ItemContent, self.itemSourceObj) end contentItem.ItemID = v.ItemID UIUtils.SetActive(contentItem.gameObject, true) UTL.Item.SetItemCell(contentItem.item, v.ItemID, v.ItemNum) end for i = #rewardArray + 1, #cellTable.ItemContent do local item = cellTable.ItemContent[i] UIUtils.SetActive(item.gameObject, false) end end end function UIDragonArteryRewardPrePanel:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.UICommonPopUpTab.loop_Tab then if data == IDS_PLAYER_RANK_REWARD then if self.selectChildTab then UIUtils.SetActive(self.selectChildTab.img_Selected, true) UIUtils.SetActive(self.selectChildTab.img_UnSelected, false) end if self.selectFoldoutTab then UIUtils.SetActive(cellTable.img_Selected, true) UIUtils.SetActive(cellTable.img_UnSelected, false) return end self.selectFoldoutTab = cellTable if self.UICommonPopUpTab.loop_Tab.Count <= 2 then for i, v in DataSheetManager.DragonArtery:GetEnumerator() do self.UICommonPopUpTab.loop_Tab:AddData(Const_IDS[v.Name], 1) end end self.UICommonPopUpTab.loop_Tab:SelectIndex(2) elseif data == IDS_COUNTRY_RANK_REWARD then if self.selectFoldoutTab then UIUtils.SetActive(self.selectFoldoutTab.img_Selected, false) UIUtils.SetActive(self.selectFoldoutTab.img_UnSelected, true) end self.selectFoldoutTab = nil self.selectChildTab = nil if self.UICommonPopUpTab.loop_Tab.Count > 2 then for i = self.UICommonPopUpTab.loop_Tab.Count - 1, 2, -1 do self.UICommonPopUpTab.loop_Tab:RemoveIndex(i) end end self:ShowCountryRewards() else if self.selectFoldoutTab then UIUtils.SetActive(self.selectFoldoutTab.img_Selected, true) UIUtils.SetActive(self.selectFoldoutTab.img_UnSelected, false) end if self.selectChildTab and self.selectChildTab ~= cellTable then UIUtils.SetActive(self.selectChildTab.img_Selected, false) UIUtils.SetActive(self.selectChildTab.img_UnSelected, true) end self.selectChildTab = cellTable local tabId = index - 1 self:ShowPlayerRewards(tabId) end elseif scrollRect == self.loop_CountryRewardRank or scrollRect == self.loop_PlayerRewardRank then for i, v in ipairs(cellTable.ItemContent) do if target == cellTable.ItemContent[i].item.event_Click then UTL.ItemTips.ShowCommonTipsById(cellTable.ItemContent[i].ItemID) break end end end end function UIDragonArteryRewardPrePanel:ShowCountryRewards() UIUtils.SetActive(self.group_Country, true) UIUtils.SetActive(self.group_Personal, false) if self.hasInitCountryReward == false then local activityData = DataSheetManager.ActivityData:GetDataByID(LuaConst.ActivityType.DragonArtery) self.txt_Intro.text = string.FormatByIdsId(Const_IDS.IDS_DragonArtey_EndNationReward, UTL.Time.GetLocalTimeDesc(activityData.Time_Table[1].EndTime)) for i, v in DataSheetManager.DragonArteryCountryRank:GetEnumerator() do self.loop_CountryRewardRank:AddData(v, 0) end self.hasInitCountryReward = true end end function UIDragonArteryRewardPrePanel:ShowPlayerRewards(id) self.selectChildTabID = id UIUtils.SetActive(self.group_Country, false) UIUtils.SetActive(self.group_Personal, true) if self.hasInitPlayerReward == false then self.toggle_TopGroup:InstaniateToggles(4) for i = 1, 4 do self.toggle_TopGroup:SetToggleText(i, "txt", string.FormatByIdsId(Const_IDS.IDS_DragonArtey_CountryRank, i)) self.toggle_TopGroup:SetToggleActive(i, true) end self.playerRewardsArray = {} self.hasInitPlayerReward = true end self.toggle_TopGroup:SelectIndex(0) end function UIDragonArteryRewardPrePanel:OnValueChanged(comp, index) if comp == self.toggle_TopGroup then table.clearArray(self.playerRewardsArray) for i, v in DataSheetManager.DragonArteryPersonRank:GetDataByCountryRank_BattleFieldID_PersonRank(index + 1, self.selectChildTabID) do local lastData = self.playerRewardsArray[i - 1] if lastData and lastData.RewardID == v.RewardID then --奖励一致不重复添加,保留最前的一项即可 else self.playerRewardsArray[i] = v end end self.loop_PlayerRewardRank:ReloadAll(self.playerRewardsArray) self.loop_PlayerRewardRank:MoveIndex(0) end end function UIDragonArteryRewardPrePanel:OnBackButtonPressed() self:OnButtonClicked(self.UICommonPopUpTab.btn_Close) end function UIDragonArteryRewardPrePanel:OnButtonClicked(comp) if comp == self.UICommonPopUpTab.btn_Close then self:CloseView() end end return UIDragonArteryRewardPrePanel