local UISceneQuizReward = UIViewClass() function UISceneQuizReward:OnOpened(context) self.activityId = MDL.SceneQuiz.CurActivityID self.loop_RewardTab:AddData({title = "IDS_SceneQuiz_Title_2", state = 0}, 0) self.loop_RewardTab:AddData({title = "IDS_SceneQuiz_Title_3", state = 0}, 0) self.loop_RewardTab:AddData({title = "IDS_SceneQuiz_Button_6", state = 1}, 0) self.loop_RewardTab:SelectIndex(context and context.index or 0) end function UISceneQuizReward:RefreshPreliminaryReward() if self.loop_Round.Count > 0 then self.loop_Round:ClearCells() end for i, v in DataSheetManager.SceneQuizPreliminaryReward:GetEnumerator() do self.loop_Round:AddData(v, 0) end end function UISceneQuizReward:RefreshFinalReward() if self.loop_Round.Count > 0 then self.loop_Round:ClearCells() end for i, v in DataSheetManager.SceneQuizFinalReward:GetEnumerator() do self.loop_Round:AddData(v, 0) end end function UISceneQuizReward:RefreshBetReward() if self.loop_Bet.Count == 0 then for i, v in DataSheetManager.SceneQuizBetReward:GetEnumerator() do self.loop_Bet:AddData(v, 0) end end end function UISceneQuizReward:OnBackButtonPressed() self:OnButtonClicked(self.btn_Close) end function UISceneQuizReward:OnButtonClicked(comp) if comp == self.btn_Close then self:CloseView() elseif comp == self.btn_Info then UIManager.OpenView(Const_UI_Lua.UIEnum.UICommonNoteView, {id = LuaConst.NoteID.SceneQuizReward}) end end function UISceneQuizReward:OnCellSelect(scrollRect, index, cellTable, data) if scrollRect == self.loop_RewardTab then self.state_Reward:SetState(data.state) if index == 0 then --初赛奖励 self:RefreshPreliminaryReward() elseif index == 1 then --决赛奖励 self:RefreshFinalReward() elseif index == 2 then --押注奖励 self:RefreshBetReward() end end end function UISceneQuizReward:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.loop_RewardTab then UIUtils.SetLabelText(cellTable.txt_UnSelectedTabName, Const_IDS[data.title]) UIUtils.SetLabelText(cellTable.txt_SelectedTabName, Const_IDS[data.title]) elseif scrollRect == self.loop_Round then local score = data.Score1 if score and score > 0 then --按照积分,说明是初赛排行 cellTable.txt_Round.text = UIUtils.GetLocalizedTxt(Const_IDS.IDS_SceneQuiz_RankHint_7) .. score else if data.Rank1 == data.Rank2 then cellTable.txt_Round.text = string.FormatByIdsKey("IDS_BossChallenge_Reward_RankRange_OneNum", data.Rank1) else cellTable.txt_Round.text = string.FormatByIdsKey("IDS_BossChallenge_Reward_RankRange_TwoNum", data.Rank2, data.Rank1) end end local rewardItem = data.Reward_Table for i, v in ipairs(cellTable.group_Items) do local data = rewardItem[i] if data then UIUtils.SetActive(v.gameObject.transform.parent, true) UTL.Item.SetItemCell(v, data.Item, data.ItemNum) else UIUtils.SetActive(v.gameObject.transform.parent, false) end end elseif scrollRect == self.loop_Bet then cellTable.state_Bet:SetState(index) if data.Percent1 > 0 and data.Percent2 > 0 then cellTable.txt_BetPercent.text = self:FormatPercentage(data.Percent1) .. "-" .. self:FormatPercentage(data.Percent2) elseif data.Percent1 > 0 then cellTable.txt_BetPercent.text = self:FormatPercentage(data.Percent1) .. UIUtils.GetLocalizedTxt(Const_IDS.IDS_SceneQuiz_RankHint_8) elseif data.Percent2 > 0 then cellTable.txt_BetPercent.text = self:FormatPercentage(data.Percent2) .. UIUtils.GetLocalizedTxt(Const_IDS.IDS_SceneQuiz_RankHint_9) end local rewardItem = data.Reward_Table for i, v in ipairs(cellTable.group_Items) do local data = rewardItem[i] if data then UIUtils.SetActive(v.gameObject.transform.parent, true) UTL.Item.SetItemCell(v, data.Item, data.ItemNum) else UIUtils.SetActive(v.gameObject.transform.parent, false) end end end end function UISceneQuizReward:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.loop_Round or scrollRect == self.loop_Bet then for i, v in ipairs(cellTable.group_Items) do if target == v.event_Click then UTL.ItemTips.ShowCommonTipsById(data.Reward_Table[i].Item) end end end end function UISceneQuizReward:FormatPercentage(num) return (num / 100) .. "%" end return UISceneQuizReward