local UIDigTreasureRewardPreview = UIViewClass() local SliderSensitivityParam = FP.tonumberV1(DataSheetManager.ConstData:GetDataByID("SliderSensitivityParam").FloatValue) local TagType = 2 --用于设置 item cell 的样式,对应 private.SymbolShow 表。 function UIDigTreasureRewardPreview:OnOpened(context) self:RegistSystemEvent(EventID.DigTreasure_GatherReward, self.OnRewardRefresh) self.dragDict = {} MDL.TeamDungeon.DigTreasureGatherRewardReq() UIUtils.SetLabelText(self.refer_Bg.txt_Title, Const_IDS.IDS_TeamDungeon1_RewardShow) local curCount = BattleDataGetter.GetRewardChanceLeft(BattleDataGetter.GetCurPlayerID()) if curCount == 0 and not CTL.Team.IsSelfLeader() then UIUtils.SetLabelText(self.txt_Tip, Const_IDS.IDS_DigTreasure_NoHelpTime) else UIUtils.SetLabelText(self.txt_Tip, Const_IDS.IDS_DigTreasure_TreasureCave_RewardSend) end end function UIDigTreasureRewardPreview:OnRewardRefresh(data) local isEmpty = true self.loopScroll_Reward:ClearCells() for i, v in ipairs(data.layerInfos) do if data.extraRewardInfo then self.loopScroll_Reward:AddData({extraRewards = data.extraRewardInfo[i], rewards = v}, 0) else self.loopScroll_Reward:AddData({rewards = v}, 0) end isEmpty = false end UIUtils.SetActive(self.group_Empty, isEmpty) end function UIDigTreasureRewardPreview:OnBackButtonPressed() self:OnButtonClicked(self.refer_Bg.btn_Close) end function UIDigTreasureRewardPreview:OnButtonClicked(comp) if comp == self.refer_Bg.btn_Close then self:CloseView() end end function UIDigTreasureRewardPreview:OnCellInit(scrollRect, index, cellTable, data) local rewardTable = data.rewards local extraRewardTable = data.extraRewards local counter = 0 if extraRewardTable then for i, v in ipairs(extraRewardTable.rewards) do if not cellTable.ItemContent[i] then self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.ItemContent, self.itemTemplate_Reward.gameObject) end UTL.Item.SetItemCell(cellTable.ItemContent[i], v.ItemId, v.ItemCount, nil, TagType, nil) cellTable.ItemContent[i].gameObject:SetActive(true) end local startIndex = #extraRewardTable.rewards for i,v in ipairs(rewardTable.rewards) do if not cellTable.ItemContent[startIndex + i] then self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.ItemContent, self.itemTemplate_Reward.gameObject) end UTL.Item.SetItemCell(cellTable.ItemContent[startIndex + i], v.ItemId, v.ItemCount) cellTable.ItemContent[startIndex + i].gameObject:SetActive(true) end counter = #rewardTable.rewards + #extraRewardTable.rewards else for i, v in ipairs(rewardTable.rewards) do if not cellTable.ItemContent[i] then self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.ItemContent, self.itemTemplate_Reward.gameObject) end UTL.Item.SetItemCell(cellTable.ItemContent[i], v.ItemId, v.ItemCount) cellTable.ItemContent[i].gameObject:SetActive(true) end counter = #rewardTable.rewards end for i = counter + 1, #cellTable.ItemContent do cellTable.ItemContent[i].gameObject:SetActive(false) end self.loopScroll_Reward:RegistTriggerEvent(cellTable.drag_Obj, UIEventTriggerType.BeginDrag, index) self.loopScroll_Reward:RegistTriggerEvent(cellTable.drag_Obj, UIEventTriggerType.Drag, index) self.loopScroll_Reward:RegistTriggerEvent(cellTable.drag_Obj, UIEventTriggerType.EndDrag, index) self.dragDict[cellTable.drag_Obj.gameObject] = cellTable.ItemScrollView.gameObject local mapInfo = DataSheetManager.LevelInfoData:GetDataByLevelID(rewardTable.levelId) UIUtils.SetLabelText(cellTable.txt_Rank, Const_IDS[mapInfo.LevelNameIDS]) end function UIDigTreasureRewardPreview:Cell_OnBeginDrag(scrollRect, index, comp, eventData) if math.abs(eventData.delta.x) > SliderSensitivityParam then self.curDragObj = self.dragDict[comp.gameObject] else self.curDragObj = self.loopScroll_Reward.gameObject end UIUtils.ExecuteBeginDrag(self.curDragObj, eventData) end function UIDigTreasureRewardPreview:Cell_OnDrag(scrollRect, index, comp, eventData) UIUtils.ExecuteDrag(self.curDragObj, eventData) end function UIDigTreasureRewardPreview:Cell_OnEndDrag(scrollRect, index, comp, eventData) UIUtils.ExecuteEndDrag(self.curDragObj, eventData) end function UIDigTreasureRewardPreview:OnCellClicked(scrollRect, index, cellTable, target, data) for i, v in ipairs(cellTable.ItemContent) do if v.event_Click == target then local rewardTable = data.rewards.rewards if data.extraRewards then rewardTable = data.extraRewards.rewards for i, v in ipairs(data.rewards.rewards) do table.insert(rewardTable, v) end end UTL.ItemTips.ShowCommonTipsById(rewardTable[i].ItemId) break end end end return UIDigTreasureRewardPreview