SupremeVipMainView = SupremeVipMainView or BaseClass(BaseItem) local SupremeVipMainView = SupremeVipMainView function SupremeVipMainView:__init() self.base_file = "supremeVip" self.layout_file = "SupremeVipMainView" self.model = SupremeVipModel:getInstance() self.item_list = {} self.seven_item_list = {} self:Load() end function SupremeVipMainView:Load_callback() self.nodes = { "des1Img:img", "normalCon/dailyGiftBg:img", "normalCon/getRewardBtn:obj:img", -- 领奖按钮 "normalCon/rewardCon", --奖励展示框 "normalCon/getRewardBtn/getRewardRed:obj", "normalCon/desc:tmp", "normalCon:obj", "sevenCon:obj", "sevenCon/sevenRewardCon", } self:GetChildren(self.nodes) self.getReward_tmp = self:GetChild("normalCon/getRewardBtn/Text"):GetComponent("TextMeshProUGUI") lua_resM:setOutsideImageSprite(self,self.dailyGiftBg_img,GameResPath.GetSupremeVipIcon("supremeVip_right_bg_short"),false,nil) self.desc_tmp.text = SupremeVipConst.ViewDesc[SupremeVipConst.RED_DOT_TYPE.DailyGift] or "" self:AddEvents() if self.need_refreshData then self:UpdateView() end end function SupremeVipMainView:AddEvents( ) local on_click = function ( click_obj ) if self.getRewardBtn_obj == click_obj then -- 领奖 self:GetReward() end end AddClickEvent(self.getRewardBtn_obj, on_click) --刷新红点 local function on_update_red(tab_id) if not self.is_loaded or self._use_delete_method then return end if tab_id == SupremeVipConst.RED_DOT_TYPE.DailyGift then self:UpdateBtnState() self:UpdateRedDot() end end self:BindEvent(self.model, SupremeVipConst.ANS_UPDATE_RED_DOT,on_update_red) --刷新七日登录 local function on_update_view() if not self.is_loaded or self._use_delete_method then return end self:UpdateView() end self:BindEvent(self.model, SupremeVipConst.UPDATE_SUPREME_VIP_SEVEN_LOGIN_VIEW,on_update_view) end function SupremeVipMainView:UpdateRedDot( ) local red = self.model:GetDailyGiftRed() self.getRewardRed_obj:SetActive(red) end --领取奖励 function SupremeVipMainView:GetReward( ) local rest_daily_gift_counts = self.model:GetExchangeRestCount(SupremeVipConst.ExchangeType.DailyGift)--拿到剩余的兑换次数 if self.model:IsForeverSupremeVip() then -- 永久贵族 if rest_daily_gift_counts > 0 then -- 还有兑换次数 self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45103,1,0,0) else Message.show("领取次数已用完","fault") end else if rest_daily_gift_counts > 0 then -- 还有兑换次数 self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45103,1,0,0) else Alert.show("成为<#04bd27>二阶贵族,可再领取一次<#ff6519>贵族专属礼包", Alert.Type.Two, function() self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_BUY_VIEW) end, nil, "前往升级", "取消") end end end function SupremeVipMainView:UpdateView( ) local login_days = self.model:GetSupremeVipSevenLoginDays() if login_days > 7 then lua_resM:setOutsideImageSprite(self,self.des1Img_img,GameResPath.GetSupremeVipIcon("supremeVip_des_10_pointfilter"),true) SetAnchoredPosition(self.des1Img,142,172) self.normalCon_obj:SetActive(true) self.sevenCon_obj:SetActive(false) self:UpdateDailyGiftCon() self:UpdateBtnState() else lua_resM:setOutsideImageSprite(self,self.des1Img_img,GameResPath.GetSupremeVipIcon("supremeVip_des_11_pointfilter"),true) SetAnchoredPosition(self.des1Img,126,193) self.normalCon_obj:SetActive(false) self.sevenCon_obj:SetActive(true) self:UpdateSevenLogin() end self:UpdateRedDot() end function SupremeVipMainView:UpdateSevenLogin( ) for k,v in pairs(self.seven_item_list) do v:SetVisible(false) end for i=1,7 do local item = self.seven_item_list[i] if not item then item = SupremeVipSevenLoginItem.New(self.sevenRewardCon) self.seven_item_list[i] = item end item:SetVisible(true) item:SetData(i) item:SetAnchoredPosition(-4+(i-1)*(86+13),0) end end function SupremeVipMainView:UpdateBtnState( ) local rest_daily_gift_counts = self.model:GetExchangeRestCount(SupremeVipConst.ExchangeType.DailyGift)--拿到剩余的兑换次数 if not self.model:IsForeverSupremeVip() then -- 一阶贵族 if rest_daily_gift_counts <= 0 then self.getReward_tmp.text = "再领一次" SetImageGray(self.getRewardBtn_img,false) -- lua_resM:setImageSprite(self, self.getRewardBtn_img, "alphaCommon_asset","tyui_btn_1") -- SetTMPSharedMaterial(self.getReward_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkBlueBtn) lua_resM:setImageSprite(self, self.getRewardBtn_img, "alphaCommon_asset","tyui_btn_2") SetTMPSharedMaterial(self.getReward_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn) self.getRewardRed_obj:SetActive(false) else self.getReward_tmp.text = "立即领取" SetImageGray(self.getRewardBtn_img,false) lua_resM:setImageSprite(self, self.getRewardBtn_img, "alphaCommon_asset","tyui_btn_2") SetTMPSharedMaterial(self.getReward_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn) self.getRewardRed_obj:SetActive(true) end else if rest_daily_gift_counts == 2 then self.getReward_tmp.text = "立即领取" SetImageGray(self.getRewardBtn_img,false) lua_resM:setImageSprite(self, self.getRewardBtn_img, "alphaCommon_asset","tyui_btn_2") SetTMPSharedMaterial(self.getReward_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn) self.getRewardRed_obj:SetActive(true) elseif rest_daily_gift_counts == 1 then self.getReward_tmp.text = "再领一次" SetImageGray(self.getRewardBtn_img,false) lua_resM:setImageSprite(self, self.getRewardBtn_img, "alphaCommon_asset","tyui_btn_2") SetTMPSharedMaterial(self.getReward_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn) self.getRewardRed_obj:SetActive(true) else self.getReward_tmp.text = "已领完" SetImageGray(self.getRewardBtn_img,true) lua_resM:setImageSprite(self, self.getRewardBtn_img, "alphaCommon_asset","tyui_btn_2") SetTMPSharedMaterial(self.getReward_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn) self.getRewardRed_obj:SetActive(false) end end end --刷新每日礼包展示 function SupremeVipMainView:UpdateDailyGiftCon( ) for k,v in pairs(self.item_list) do v:SetVisible(false) end local daily_gift_cfg = self.model:GetDailyGiftCfg() for i,v in ipairs(daily_gift_cfg) do local item = self.item_list[i] if not item then item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.rewardCon) item:SetIsAct(true) self.item_list[i] = item end item:SetItemSize(78, 78) item:SetVisible(true) local goods_type_id = v[2] local goods_num = v[3] item:SetData(goods_type_id,goods_num) item:SetDataWithMapId(goods_type_id,goods_num,v[1]) end end function SupremeVipMainView:SetData( data ) self.data = data if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function SupremeVipMainView:__delete( ) for k,v in pairs(self.item_list) do if v then UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, v) v = nil end end self.item_list = {} for i, v in ipairs(self.seven_item_list) do v:DeleteMe() end self.seven_item_list = {} end