ChildHandbookViewNew = ChildHandbookViewNew or BaseClass(BaseView) local ChildHandbookViewNew = ChildHandbookViewNew function ChildHandbookViewNew:__init() self.base_file = "child" self.layout_file = "ChildHandbookViewNew" self.layer_name = "UI" self.destroy_imm = true self.use_background = G_USING_BG --全屏界面默认使用这个参数 self.hide_maincancas = true --全屏界面需要放开隐藏主UI self.change_scene_close = true self.append_to_ctl_queue = false --是否要添加进界面堆栈 self.need_show_money = false --是否要显示顶部的金钱栏 self.blur_activity_bg = true self.model = ChildModel:getInstance() self.suit_tab_item_list = {} self.handbook_item_list = {} self.select_tab_item = nil self.select_item = nil -- self.send_16536_Item_data = nil --吧发送的那个item记录下来,刷新的时候可以对比是否选中 self.fire_change_visible_event = true self.load_callback = function () self:LoadSuccess() self:AddEvent() end self.open_callback = function ( ) self:OpenSuccess() end self.switch_callback = function(index) self:SwitchTab(index) end self.destroy_callback = function ( ) self:DestroySuccess() end end function ChildHandbookViewNew:Open( ) --self.data = data BaseView.Open(self) end function ChildHandbookViewNew:LoadSuccess() local nodes = { "left/ScrollView_item/Viewport/Content_item", "mid/ScrollView_handbook_item/Viewport/Content_handbook_item", "mid/btn_break:obj", "mid/btn_reward:obj", "mid/btn_reward/btn_reward_red_dot:obj", "mid/btn_break/btn_break_red_dot:obj", "mid/btn_up:obj", "mid/btn_up/btn_up_red_dot:obj","bg:raw", "close:obj", } self:GetChildren(nodes) self:UpdateBaseView( ) end function ChildHandbookViewNew:UpdateBaseView( ) self.levelUpAwardItem = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.item_parent) lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("child_hankbook_bg_1173_683")) -- local close_callback = function() -- self:Close() -- end -- self.tab_win = UITabWindow.New(self.transform, nil, nil, -- close_callback, self.background_wnd, nil, UITabWindow.SizeSmallHallNoTab, false,nil,true) --self.tab_win:SetTitleRes("child_asset","child_title") --标题 -- self.tab_win:SetBackgroundRes("child_hankbook_bg_1280_720") -- self.tab_win:SetTitleText("宝宝玩具") -- self.tab_win:ChangeShowFlag("Child") end function ChildHandbookViewNew:AddEvent() --红点更新 local function updata_Child_RED_DOT_VIEW_fun(id) if id ~= ChildConst.TabId.ChildHandbook then return end self:UpdateRedDot() if self.select_tab_item then self:UpdateRedDotItem(self.select_tab_item.data.suit_type) end end self.updata_Child_RED_DOT_VIEW_id = self.model:Bind(ChildConst.Child_RED_DOT_VIEW, updata_Child_RED_DOT_VIEW_fun) -- 更新数据 local function updata_child_dif_suit_info_fun(need_check_effect) self:SetViewListCon(self.select_tab_item.data.suit_type, need_check_effect) end self.updata_child_dif_suit_info = self.model:Bind(ChildConst.UPDATA_CHILD_HB_SUIT_INFO, updata_child_dif_suit_info_fun) local function onBtnClickHandler(target, x, y) if target == self.btn_break_obj then self.model:Fire(ChildConst.OPEN_CHILD_HANDBOOK_BREAK_VIEW) elseif target == self.btn_reward_obj then self.model:Fire(ChildConst.OPEN_CHILD_HANDBOOK_SUIT_REWARD_VIEW) elseif target == self.btn_up_obj then self.model:Fire(ChildConst.OPEN_CHILD_HANDBOOK_UPGRADE_VIEW) elseif target == self.close_obj then self:Close() end end AddClickEvent(self.btn_break_obj, onBtnClickHandler) AddClickEvent(self.btn_reward_obj, onBtnClickHandler) AddClickEvent(self.btn_up_obj, onBtnClickHandler) AddClickEvent(self.close_obj, onBtnClickHandler) end function ChildHandbookViewNew:OpenSuccess() self:UpdateView() end function ChildHandbookViewNew:UpdateView() local toy_suit_list = self.model:GetToySuitInfo() local function callback( item ) for k,v in pairs(self.suit_tab_item_list) do v:SetChosen(false) end item:SetChosen(true) self:SetViewListCon(item.data.suit_type) self.select_tab_item = item end for k,v in pairs(toy_suit_list) do local item = self.suit_tab_item_list[k] if item == nil then item = ChildHandbookSuitItem.New(self.Content_item) self.suit_tab_item_list[k] = item end --local data = self.model:GetConfigChildSkillInfo(v.skill_id,v.skill_lv) self.suit_tab_item_list[k]:SetData(v,callback) if k == 1 then self:SetViewListCon(v.suit_type) self.select_tab_item = self.suit_tab_item_list[k] self.suit_tab_item_list[k]:SetChosen(true) end end self:UpdateRedDot() end function ChildHandbookViewNew:UpdateRedDot( ) local red_dot_list = self.model:GetRedDotChildHandbook() --logWarn('=======Msh:ChildHandbookViewNew.lua[138]=======') --PrintTable(red_dot_list) -- 页签红点 for k,v in pairs(self.suit_tab_item_list) do --tab v:SetRedDot(false) for k,v_red in pairs(red_dot_list.active_list ) do if v_red.suit_type == v.data.suit_type then v:SetRedDot(true) end end end self.btn_reward_red_dot_obj:SetActive(TableSize(red_dot_list.suit_reward_list) > 0) self.btn_break_red_dot_obj:SetActive(red_dot_list.is_can_break) -- 材料 self.btn_up_red_dot_obj:SetActive(red_dot_list.is_level_up) end function ChildHandbookViewNew:UpdateRedDotItem(suit_type) local red_dot_list = self.model:GetRedDotChildHandbook() for k,v in pairs(self.handbook_item_list) do v:SetRedDot(false) for k,v_red in pairs(red_dot_list.active_list) do if v_red.toy_id == v.data.toy_id and v_red.suit_type == suit_type then v:SetRedDot(true) end end end end function ChildHandbookViewNew:SetViewListCon( suit_type, check_effect ) local handbook_list = self.model:GetSuitToyList(suit_type) if not handbook_list then return end for k,v in pairs(handbook_list) do local item = self.handbook_item_list[k] if item == nil then item = ChildHandbookItem.New(self.Content_handbook_item) self.handbook_item_list[k] = item end self.handbook_item_list[k]:SetData(v, check_effect) self.handbook_item_list[k]:SetVisible(true) end for i=#handbook_list+1,#self.handbook_item_list do self.handbook_item_list[i]:SetVisible(false) end self:UpdateRedDotItem(suit_type) end function ChildHandbookViewNew:SwitchTab( index ) end function ChildHandbookViewNew:DestroySuccess( ) self.attr_item_list = {} for i, v in ipairs(self.suit_tab_item_list) do v:DeleteMe() v = nil end self.suit_tab_item_list = {} for i, v in ipairs(self.handbook_item_list) do v:DeleteMe() v = nil end self.handbook_item_list = {} if self.levelUpAwardItem then UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.levelUpAwardItem) self.levelUpAwardItem = nil end if self.updata_child_dif_suit_info then self.model:UnBind(self.updata_child_dif_suit_info) self.updata_child_dif_suit_info = nil end if self.updata_Child_RED_DOT_VIEW_id then self.model:UnBind(self.updata_Child_RED_DOT_VIEW_id) self.updata_Child_RED_DOT_VIEW_id = nil end -- if self.tab_win then -- self.tab_win:DeleteMe() -- self.tab_win = nil -- end end