| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280 |
- local UIActivityFirstRechargeView = require("UIActivity/UIActivityFirstRechargeView_Generate")
- local GiftType = {
- First = 1, -- 首充
- Hundred = 2, -- 百元
- }
- function UIActivityFirstRechargeView:OnAwake(data)
- self.controller = require("UIActivity/UIActivityFirstRechargeCtr"):new()
- self.controller:Init(self)
- self.controller:SetData(data)
- end
- function UIActivityFirstRechargeView:AddEventListener()
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.PAY_TOTAL_RECHARGE_CHANGED, self, self.OnPayTotalRechargeChanged)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Activity_Data_Change, self, self.OnActivityDataChanged)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Activity_FirstRecharge_Change, self, self.OnActivityFirstRechargeChanged)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.UI_CLOSE_COMPELETED, self, self.OnUICloseCompleted)
- end
- function UIActivityFirstRechargeView: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 UIActivityFirstRechargeView: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:RefreshView()
- end
- function UIActivityFirstRechargeView:RemoveEventListener()
- ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
- end
- function UIActivityFirstRechargeView:AddUIEventListener()
- self.uiBase:AddButtonUniqueEventListener(self.AnyBtn.button, self, self.OnClickCloseBtn)
- self.uiBase:AddButtonUniqueEventListener(self.backBtn.button, self, self.OnClickCloseBtn)
- self.uiBase:AddToggleUniqueEventListener(self.firstToggle.toggle, self, self.OnClickToggle, GiftType.First)
- self.uiBase:AddToggleUniqueEventListener(self.hundredToggle.toggle, self, self.OnClickToggle, GiftType.Hundred)
- 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 UIActivityFirstRechargeView:OnHide()
- end
- function UIActivityFirstRechargeView:OnShow(data)
- self.controller:SetData(data)
- end
- function UIActivityFirstRechargeView:OnClose()
- end
- function UIActivityFirstRechargeView:OnDispose()
- if self.firstRechargeItem and self.firstRechargeItem.rewards and self.firstRechargeItem.rewards.loopGridView then
- self.firstRechargeItem.rewards.loopGridView:Dispose()
- end
- self.controller:OnDispose()
- end
- function UIActivityFirstRechargeView:OnPayTotalRechargeChanged()
- self:RefreshRewardState()
- end
- function UIActivityFirstRechargeView:OnActivityDataChanged()
- local giftType = self.controller:GetGiftType()
- if giftType == GiftType.Hundred then
- self:RefreshRewards()
- self:RefreshRewardState()
- end
- end
- function UIActivityFirstRechargeView:OnActivityFirstRechargeChanged()
- local giftType = self.controller:GetGiftType()
- if giftType == GiftType.First then
- self:RefreshRewards()
- self:RefreshRewardState()
- end
- end
- function UIActivityFirstRechargeView:OnUICloseCompleted(owner)
- if owner.uiData.id ~= Enum.UIPageName.UIRuneShopBT then return end
- if ManagerContainer.LuaUIMgr:PageInHideStack(self.uiBase) then
- ManagerContainer.LuaUIMgr:Show(Enum.UIPageName.UIActivityFirstRecharge)
- end
- end
- function UIActivityFirstRechargeView:OnClickCloseBtn()
- ManagerContainer.LuaUIMgr:OpenSourceUI(self)
- end
- function UIActivityFirstRechargeView:OnClickToggle(tog, params, b)
- if not b then return end
- local giftType = params[0]
- if self.controller:ChangeGiftType(giftType) then
- self:RefreshBanner()
- self:RefreshRewards()
- self:RefreshRewardState()
- end
- end
- function UIActivityFirstRechargeView:OnClickRechargeBtn()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIRuneShopBT, {Enum.RuneShopType.Gifts, Enum.RuneShopSubType.Gold})
- ManagerContainer.LuaUIMgr:Hide(Enum.UIPageName.UIActivityFirstRecharge)
- end
- function UIActivityFirstRechargeView:OnClickReceiveBtn()
- self.controller:SendGetReward()
- end
- function UIActivityFirstRechargeView: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 UIActivityFirstRechargeView:RefreshView()
- self:RefreshToggleGroup()
- self:RefreshBanner()
- self:RefreshRewards()
- self:RefreshRewardState()
- end
- function UIActivityFirstRechargeView:RefreshToggleGroup()
- local giftType = self.controller:GetGiftType()
- local toggleGroup = self.toggleGroup.toggleGroup
- local oldAllowSwitchOff = toggleGroup.allowSwitchOff
- toggleGroup.allowSwitchOff = true
- self.firstToggle.toggle.isOn = (giftType == GiftType.First)
- self.hundredToggle.toggle.isOn = (giftType == GiftType.Hundred)
- toggleGroup.allowSwitchOff = oldAllowSwitchOff
- end
- function UIActivityFirstRechargeView:RefreshBanner()
- local giftType = self.controller:GetGiftType()
- self.banner1:SetActive(giftType == GiftType.First)
- self.banner2:SetActive(giftType == GiftType.Hundred)
- end
- function UIActivityFirstRechargeView: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 UIActivityFirstRechargeView:RefreshRewardState()
- local idx = self.controller:GetDayIdx()
- local rewardState = nil
- if idx then
- rewardState = self.controller:GetRewardStateByDay(idx)
- else
- rewardState = Enum.ActivityRewardState.NotGot
- end
- local curNum, targetNum = self.controller:GetTargetRechargeInfo()
- if targetNum > 0 then
- self.dscTxt.text.text = string.formatbykey('DscRecharge02', tostring(curNum), tostring(targetNum))
- self.btnRecharge:SetActive(true)
- self.btnReceive:SetActive(false)
- self.btnWating:SetActive(false)
- self.labelReceived:SetActive(false)
- else
- self.dscTxt.text.text = ''
- 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
- end
- function UIActivityFirstRechargeView: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 = self.controller:GetRewardStateByDay(day)
- itemLua.mask:SetActive(rewardState == Enum.ActivityRewardState.GotAndHas)
- itemLua.received:SetActive(rewardState == Enum.ActivityRewardState.GotAndHas)
- itemLua.available:SetActive(rewardState == Enum.ActivityRewardState.Got)
- local _, targetNum = self.controller:GetTargetRechargeInfo()
- if targetNum > 0 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 UIActivityFirstRechargeView: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 UIActivityFirstRechargeView:ShowItemTips(button, params)
- ManagerContainer.LuaUIMgr:OpenTips(params[0])
- end
- return UIActivityFirstRechargeView
|