PetBaseView = PetBaseView or BaseClass(BaseView) local PetBaseView = PetBaseView PetBaseView.TabData = { {id = PetConst.ModuleId.Training, name = "培养", module_id = 163, sub_id = 1, abName = "pet_asset", light_res = "pet_ui_tab_1_1", dark_res = "pet_ui_tab_1_2", }, {id = PetConst.ModuleId.Support, name = "出战", module_id = 163, sub_id = 3, abName = "pet_asset", light_res = "pet_ui_tab_2_1", dark_res = "pet_ui_tab_2_2", }, {id = PetConst.ModuleId.Collection, name = "图鉴", module_id = 163, sub_id = 2, abName = "pet_asset", light_res = "pet_ui_tab_3_1", dark_res = "pet_ui_tab_3_2", }, {id = PetConst.ModuleId.Awake, name = "觉醒", module_id = 163, sub_id = 4, abName = "pet_asset", light_res = "pet_ui_tab_4_1", dark_res = "pet_ui_tab_4_2", }, } function PetBaseView:__init() self.base_file = "pet" self.layout_file = "PetBaseView" self.layer_name = "UI" self.destroy_imm = true self.use_background = G_USING_BG self.hide_maincancas = true self.change_scene_close = true self.append_to_ctl_queue = true --是否要添加进界面堆栈 self.need_show_money = true --是否要显示顶部的金钱栏 -- self.is_set_zdepth = true self.close_fog = true self.model_activity_bg = true self.model_activity_bg_pos = Vector2(-294,160) self.model_activity_bg_type = 4 self.model = PetModel:getInstance() self.current_index = nil self.load_callback = function () self:LoadSuccess() self:AddEvent() end self.open_callback = function ( ) self:OpenSuccess() self:ShowTabRedPointState() end self.switch_callback = function(index) self:SwitchTab(index) end self.close_win_callback = function ( ) self:Close() end self.destroy_callback = function ( ) self:DestroySuccess() end end function PetBaseView:Open(index,right_tab_index) self.current_index = index or 1 self.right_tab_index = right_tab_index or 1 BaseView.Open(self) end function PetBaseView:LoadSuccess() local nodes = { "winCon", } self:GetChildren(nodes) self.tabWindowComponent = UITabWindow.New(self.transform,PetBaseView.TabData,self.switch_callback, self.close_win_callback,self.background_wnd,false, UITabWindow.SizeLarge, false,nil,true) self.tabWindowComponent:SetTitleText("宠物") self.tabWindowComponent:SetUIBack({target = self, bg1 = GameResPath.GetViewBigBg("default_bg_2")}) end function PetBaseView:AddEvent() local function on_ans_update_red_dot() self:ShowTabRedPointState() end self:BindEvent(self.model, PetConst.ANS_UPDATE_RED_DOT, on_ans_update_red_dot) end function PetBaseView:OpenSuccess() -- self:SwitchTab(self.current_index or 1) local list = self.model.pet_list if not list or TableSize(list) <= 0 then self.current_index = 3 end self.tabWindowComponent:SetTabBarIndex(self.current_index or 1) end function PetBaseView:SwitchTab( index ) if index == 1 or index == 2 or index == 4 then local list = self.model.pet_list if not list or TableSize(list) <= 0 then Message.show("需要激活至少1只宠物哦!","fault") self.tabWindowComponent:SetTabBarIndex(PetConst.ModuleId.Collection,false,true) return end end --切换页签时候,用于防止重复点击item的标识也要重置 self.model.select_collect_item_id = 0 self.model.select_item_id = 0 self.current_index = index if index == 1 then--宠物培养界面(主界面) if self.pet_training_view == nil then self.pet_training_view = PetTrainingView.New(self.winCon) end self.pet_training_view:SetData(self.right_tab_index) self:PopUpChild(self.pet_training_view) elseif index == 3 then--宠物图鉴界面(宠物收集) if self.pet_collection_view == nil then self.pet_collection_view = PetCollectionView.New(self.winCon) end self.pet_collection_view:SetData() self:PopUpChild(self.pet_collection_view) self.right_tab_index = 1 elseif index == 2 then--宠物声援界面 if self.pet_support_view == nil then self.pet_support_view = PetSupportView.New(self.winCon) end self.pet_support_view:SetData() self:PopUpChild(self.pet_support_view) self.right_tab_index = 1 elseif index == 4 then--宠物觉醒界面 if self.pet_awake_view == nil then self.pet_awake_view = PetAwakeView.New(self.winCon) end self.pet_awake_view:SetData() self:PopUpChild(self.pet_awake_view) self.right_tab_index = 1 end end function PetBaseView:DestroySuccess( ) if self.tabWindowComponent then self.tabWindowComponent:DeleteMe() end self.tabWindowComponent = nil if self.pet_training_view then self.pet_training_view:DeleteMe() end self.pet_training_view = nil if self.pet_collection_view then self.pet_collection_view:DeleteMe() end self.pet_collection_view = nil if self.pet_support_view then self.pet_support_view:DeleteMe() end self.pet_support_view = nil if self.pet_awake_view then self.pet_awake_view:DeleteMe() end self.pet_awake_view = nil -- 复原绿屏 CheatModel:getInstance():DisabledGreenScreenEffect() end function PetBaseView:ShowTabRedPointState() local red_info = self.model:GetAllRedDot() local bool_1 = red_info[PetConst.RED_DOT_TYPE.Feed] or red_info[PetConst.RED_DOT_TYPE.Evolve] or red_info[PetConst.RED_DOT_TYPE.Diamond] or red_info[PetConst.RED_DOT_TYPE.DiamondCompose] self.tabWindowComponent:ShowRedPoint(PetConst.ModuleId.Training, bool_1) local bool_2 = red_info[PetConst.RED_DOT_TYPE.Active] self.tabWindowComponent:ShowRedPoint(PetConst.ModuleId.Collection, bool_2) local bool_3 = red_info[PetConst.RED_DOT_TYPE.Reward] or red_info[PetConst.RED_DOT_TYPE.Vote] self.tabWindowComponent:ShowRedPoint(PetConst.ModuleId.Support, bool_3) local bool_4 = red_info[PetConst.RED_DOT_TYPE.Awake] self.tabWindowComponent:ShowRedPoint(PetConst.ModuleId.Awake, bool_4) end