local UIActivityHundredRechargeBTView = require("UIActivity/UIActivityHundredRechargeBTView_Generate") function UIActivityHundredRechargeBTView:OnAwake(data) self.controller = require("UIActivity/UIActivityHundredRechargeBTCtr"):new() self.controller:Init(self) self.controller:SetData(data) end function UIActivityHundredRechargeBTView:AddEventListener() ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.BT_HUNDRED_RECHARGE_REWARD_CHANGED, self, self.OnBtHundredRechargeRewardChanged) end function UIActivityHundredRechargeBTView:FillContent(data, uiBase) self.uiBase = uiBase local gameObject = self.uiBase:GetRoot() if gameObject ~= nil then self.gameObject = gameObject self.transform = gameObject.transform end self:InitGenerate(self.transform, data) self:Init() end function UIActivityHundredRechargeBTView:Init() self.controller:InitData() self.firstRechargeItem.rewards.loopGridView:InitGridView(0, function(gridView, itemIndex, row, column) return self:GetItemByRowColumn(gridView, itemIndex, row, column) end, nil) self:RefreshRewards() self:RefreshRewardState() end function UIActivityHundredRechargeBTView:RemoveEventListener() ManagerContainer.LuaEventMgr:Unregister(self.uiData.name) end function UIActivityHundredRechargeBTView:AddUIEventListener() self.uiBase:AddButtonUniqueEventListener(self.AnyBtn.button, self, self.OnClickCloseBtn) self.uiBase:AddButtonUniqueEventListener(self.backBtn.button, self, self.OnClickCloseBtn) self.uiBase:AddButtonUniqueEventListener(self.btnRecharge.button, self, self.OnClickRechargeBtn) self.uiBase:AddButtonUniqueEventListener(self.btnReceive.button, self, self.OnClickReceiveBtn) self.uiBase:AddToggleUniqueEventListener(self.toggle1.toggle, self, self.OnClickDayToggle, 1) self.uiBase:AddToggleUniqueEventListener(self.toggle2.toggle, self, self.OnClickDayToggle, 2) self.uiBase:AddToggleUniqueEventListener(self.toggle3.toggle, self, self.OnClickDayToggle, 3) end function UIActivityHundredRechargeBTView:OnHide() end function UIActivityHundredRechargeBTView:OnShow(data) self.controller:SetData(data) end function UIActivityHundredRechargeBTView:OnClose() end function UIActivityHundredRechargeBTView:OnDispose() self.controller:OnDispose() if self.firstRechargeItem and self.firstRechargeItem.rewards and self.firstRechargeItem.rewards.loopGridView then self.firstRechargeItem.rewards.loopGridView:Dispose() end end function UIActivityHundredRechargeBTView:OnBtHundredRechargeRewardChanged() self:RefreshRewards() self:RefreshRewardState() end function UIActivityHundredRechargeBTView:OnClickCloseBtn() ManagerContainer.LuaUIMgr:OpenSourceUI(self) end function UIActivityHundredRechargeBTView:OnClickDayToggle(tog, params, b) if not params then return end local dayIdx = params[0] if not b then local lastDayIdx = self.controller:GetDayIdx() if dayIdx == lastDayIdx then tog.isOn = true end return end if self.controller:ChangeDayIdx(dayIdx) then self:RefreshRewards() self:RefreshRewardState() end end function UIActivityHundredRechargeBTView:OnClickRechargeBtn() ManagerContainer.SDKEventReportMgr:SendClickGoods() local errorCode = ManagerContainer.PayMgr:BTHundredRechargePay(2) local errorCodeKey = ManagerContainer.PayMgr:GetInitPayErrorCodeLangKey(errorCode) if not errorCodeKey then ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCodeKey) end --LogError("=======OnClickRechargeBtn=======") end function UIActivityHundredRechargeBTView:OnClickReceiveBtn() ManagerContainer.DataMgr.BTRechargeRewardDataMgr:SendBTHundredRechargeRewardReq() end function UIActivityHundredRechargeBTView:RefreshRewards() local cfgData = self.controller:GetCfgData() if not cfgData then self.firstRechargeItem:SetActive(false) return end local idx = self.controller:GetDayIdx() self.toggle1.toggle.isOn = (idx == 1) self.toggle2.toggle.isOn = (idx == 2) self.toggle3.toggle.isOn = (idx == 3) if not idx then self.firstRechargeItem:SetActive(false) return end self:RefreshFirstRechargeItem(self.firstRechargeItem, idx, cfgData['Reward' .. tostring(idx)], cfgData['Value' .. tostring(idx)]) end function UIActivityHundredRechargeBTView:RefreshRewardState() if not ManagerContainer.DataMgr.BTRechargeRewardDataMgr:GetBTHundredRechargeUnlockState() then self.btnRecharge:SetActive(true) local cfgData = self.controller:GetCfgData() --LogError("==============btnRecharge.txt================="..cfgData.RechargeAmount[1]) self.btnRecharge.text.text.text = tostring(cfgData.RechargeAmount[1]) --LogError("=========="..self.btnRecharge.text.gameObject.name.."====txt====e============="..self.btnRecharge.text.text) self.btnReceive:SetActive(false) self.btnWating:SetActive(false) self.labelReceived:SetActive(false) return end local idx = self.controller:GetDayIdx() LogWarning("==================GetDayIdx==================="..idx) local rewardState = nil if idx then rewardState = ManagerContainer.DataMgr.BTRechargeRewardDataMgr:GetBThundredRechargeRewardState(idx) else rewardState = Enum.ActivityRewardState.NotGot end self.btnRecharge:SetActive(false) if rewardState == Enum.ActivityRewardState.Got then self.btnReceive:SetActive(true) self.btnWating:SetActive(false) self.labelReceived:SetActive(false) elseif rewardState == Enum.ActivityRewardState.GotAndHas then self.btnReceive:SetActive(false) self.btnWating:SetActive(false) self.labelReceived:SetActive(true) else self.btnReceive:SetActive(false) self.btnWating:SetActive(true) self.labelReceived:SetActive(false) end end function UIActivityHundredRechargeBTView:RefreshFirstRechargeItem(itemLua, day, rewards, value) itemLua.textDays.text.text = string.formatbykey('TitleFirstRechargeRewards', tostring(day)) itemLua.numValue.text.text = tostring(value) self.firstRechargeItem.rewards.loopGridView:RefreshListByIndex(rewards and #rewards or 0, 0) local rewardState = ManagerContainer.DataMgr.BTRechargeRewardDataMgr:GetBThundredRechargeRewardState(day) if not ManagerContainer.DataMgr.BTRechargeRewardDataMgr:GetBTHundredRechargeUnlockState() then itemLua.mask:SetActive(false) itemLua.received:SetActive(false) itemLua.available:SetActive(false) itemLua.wating:SetActive(false) else if rewardState == Enum.ActivityRewardState.Got then itemLua.mask:SetActive(false) itemLua.received:SetActive(false) itemLua.available:SetActive(true) itemLua.wating:SetActive(false) elseif rewardState == Enum.ActivityRewardState.GotAndHas then itemLua.mask:SetActive(true) itemLua.received:SetActive(true) itemLua.available:SetActive(false) itemLua.wating:SetActive(false) else itemLua.mask:SetActive(false) itemLua.received:SetActive(false) itemLua.available:SetActive(false) itemLua.wating:SetActive(true) end end end function UIActivityHundredRechargeBTView:GetItemByRowColumn(gridView, itemIndex, row, column) local cfgData = self.controller:GetCfgData() if not cfgData then return nil end local idx = self.controller:GetDayIdx() if not idx then return nil end local showData = cfgData['Reward' .. tostring(idx)] local item = nil if showData then local itemData = showData[itemIndex + 1] if itemData then item = gridView:NewListViewItem('IconSmallItem') local itemlua = CommonUtil.BindGridViewItem2Lua(self, 'IconItem', item.gameObject) CommonUtil.UpdateItemPrefab(self, itemlua, {cfgId = itemData[1], num = itemData[2]}, Enum.ItemIEnterType.Bag, self, self.ShowItemTips) end end return item end function UIActivityHundredRechargeBTView:ShowItemTips(button, params) ManagerContainer.LuaUIMgr:OpenTips(params[0]) end return UIActivityHundredRechargeBTView