EquipCollectMainView = EquipCollectMainView or BaseClass(BaseView) local EquipCollectMainView = EquipCollectMainView EquipCollectMainView.TAB_DATA = { {id = EquipCollectConst.TAB_ID.COLLECT, name = "装备收集", sub_id = 1}, -- {id = EquipCollectConst.TAB_ID.BOSS, name = "装备获取", sub_id = 2}, {id = EquipCollectConst.TAB_ID.UPGRADE, name = "装备升星", sub_id = 3}, -- {id = EquipCollectConst.TAB_ID.TASK, name = "装备交易", sub_id = 4}, } function EquipCollectMainView:__init() self.base_file = "equipCollect" self.layout_file = "EquipCollectMainView" self.layer_name = "UI" self.destroy_imm = true self.use_background = true --全屏界面默认使用这个参数 self.hide_maincancas = false --全屏界面需要放开隐藏主UI self.change_scene_close = true self.append_to_ctl_queue = true --是否要添加进界面堆栈 self.need_show_money = false --是否要显示顶部的金钱栏 self.sub_view_list = {} self.tab_item = {} self.is_trigger_guide = false self.close_fog = true self.model = EquipCollectModel:getInstance() self.model:Fire(EquipCollectConst.REQUEST_SCMD_EVENT,14510) self.model:Fire(EquipCollectConst.REQUEST_SCMD_EVENT,15218) self.cur_select_index = 1 self.model.mask_lead_effect = {}--重置引导特效标记 self.load_callback = function () self:LoadSuccess() self:AddEvent() end self.open_callback = function ( ) self:OpenSuccess() self:UpdateRedDot() end self.switch_callback = function(index) self:SwitchTab(index) end self.destroy_callback = function ( ) self:DestroySuccess() end end function EquipCollectMainView:Open( index, id, sub_id, show_first_effect) self.cur_select_index = index or self.cur_select_index self.id = id self.sub_id = sub_id self.show_first_effect = show_first_effect BaseView.Open(self) end function EquipCollectMainView:LoadSuccess() local nodes = { "container", "bg:raw", "close_btn:obj", "tab_con", "title_image:img", } self:GetChildren(nodes) lua_resM:setOutsideRawImage(self,self.bg_raw,GameResPath.GetViewBigBg("equipCollect_main_bg"),false) self:AddToStageHandler() end function EquipCollectMainView:AddEvent() local function on_click( target ) if target == self.close_btn_obj then self:Close() end end AddClickEvent(self.close_btn_obj, on_click) local function on_ans_update_red_dot( tab_id,bool )--设置红点的状态注意此处的协议是从model那边发过来的 self:UpdateRedDot() end self:BindEvent(self.model, EquipCollectConst.ANS_UPDATE_EQUIP_COLLECT_RED_DOT, on_ans_update_red_dot) local function onGuideTrigger() self:AddToStageHandler() end self:BindEvent(GlobalEventSystem, EventName.TRIGGER_GUIDE_TYPE, onGuideTrigger) local function bg_back_func( ... ) if self.background_wnd and self.background_wnd:GetComponent("RawImageExtend") then self:MoveUIToBack(self.background_wnd:GetComponent("RawImageExtend")) end self:MoveUIToBack(self.bg_raw) end if self.background_wnd then bg_back_func() else self.bg_back_func = bg_back_func end end function EquipCollectMainView:OpenSuccess() self:SetTabData() self:UpdateView() end function EquipCollectMainView:UpdateRedDot( ) local red_data = self.model:GetAllEquipExamRedDot() for k,v in pairs(red_data) do if self.tab_item[k] then self.tab_item[k]:ShowRedPoint(v) end end end function EquipCollectMainView:SetTabData( ) local y_offset = 100 local function on_click( index ) self:SwitchTab(index) end local index = 0 for i,v in ipairs(EquipCollectMainView.TAB_DATA) do local is_open = GetModuleIsOpen(145, v.sub_id) if is_open then index = index + 1 local item = self.tab_item[v.id] if not item then item = EquipCollectTabItem.New(self.tab_con) self.tab_item[v.id] = item item:SetPosition(0,-(index - 1)*y_offset) item:SetCallBackFunc(on_click) end item:SetData(v, v.id) end end end function EquipCollectMainView:UpdateView() self:SwitchTab(self.cur_select_index) end function EquipCollectMainView:SwitchTab( index ) self.cur_select_index = index for i,v in pairs(self.tab_item) do v:SetSelect(i==index) end if index == EquipCollectConst.TAB_ID.COLLECT then lua_resM:setImageSprite(self, self.title_image_img, "equipCollect_asset", "equipCollect_title1", true) if self.sub_view_list[index] == nil then self.sub_view_list[index] = EquipCollectSubView.New(self.container) end elseif index == EquipCollectConst.TAB_ID.BOSS then if self.sub_view_list[index] == nil then self.sub_view_list[index] = EquipExamBossView.New(self.container) self.sub_view_list[index]:AppendToBackContainer(self) end elseif index == EquipCollectConst.TAB_ID.UPGRADE then lua_resM:setImageSprite(self, self.title_image_img, "equipCollect_asset", "equipCollect_title3", true) if self.sub_view_list[index] == nil then self.sub_view_list[index] = EquipExamUpgradeView.New(self.container) end elseif index == EquipCollectConst.TAB_ID.TASK then if self.sub_view_list[index] == nil then self.sub_view_list[index] = EquipExamTaskView.New(self.container) end end if index ~= EquipCollectConst.TAB_ID.COLLECT then self.show_first_effect = nil--切页签关掉特效 end self:PopUpChild(self.sub_view_list[index]) self.sub_view_list[index]:SetData(self.id, self.sub_id, self.show_first_effect) if index == EquipCollectConst.TAB_ID.COLLECT then self.id = nil self.sub_id = nil end end function EquipCollectMainView:DestroySuccess( ) for i,v in pairs(self.sub_view_list) do v:DeleteMe() v = nil end self.sub_view_list = {} for i,v in pairs(self.tab_item) do v:DeleteMe() v = nil end self.tab_item = {} end function EquipCollectMainView:AddToStageHandler() local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.TYPE_EQUIP_COLLECT_ONE_CLOSE,1) if not helpVo then return end local help_type = helpVo.help_type local step = helpVo.step local button = false if (help_type == HelpType.TYPE_EQUIP_COLLECT_ONE_CLOSE) and step == 1 then button = self.close_btn_obj end if button then local function call_back() self:Close() end GlobalEventSystem:Fire(EventName.OPEN_GUIDE_PROMPT_VIEW, button.transform, self.transform, call_back, helpVo, self.layout_file) end end function EquipCollectMainView:Close() --完成引导 local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.TYPE_EQUIP_COLLECT_ONE_CLOSE,1) if helpVo then GlobalEventSystem:Fire(EventName.FINISH_CURRENT_HELP_STEP,helpVo) end -- if self.is_trigger_guide then -- GlobalEventSystem:Fire(EventName.FORCE_TO_DO_TASK, true, true) -- end BaseView.Close(self) end