ChatDressVerTabItem = ChatDressVerTabItem or BaseClass(BaseItem) local ChatDressVerTabItem = ChatDressVerTabItem function ChatDressVerTabItem:__init() self.base_file = "chatDress" self.layout_file = "ChatDressVerTabItem" self.model = ChatDressModel:GetInstance() self:Load() end function ChatDressVerTabItem:Load_callback() self.nodes = { "select_image:obj","icon_image:img","name_text:tmp","click_con:obj","red_image:obj", } self:GetChildren(self.nodes) self:AddEvents() if self.need_refreshData then self:UpdateView() end if self.need_reselect then self:SetSelect(self.is_select) end if self.need_refreshRed then self:SetRedDot() end end function ChatDressVerTabItem:AddEvents( ) local function onClick(target,x,y) if target == self.click_con_obj then self.call_back(self.index) end end AddClickEvent(self.click_con_obj,onClick) local function on_update_red( ) self:SetRedDot() end self.on_update_red_id = self.model:BindOne("red_data", on_update_red) end function ChatDressVerTabItem:UpdateView( ) self.name_text_tmp.text = self.data.name lua_resM:setImageSprite(self, self.icon_image_img, "chatDress_asset", "chatDress_type"..self.index, true) self:SetRedDot() end function ChatDressVerTabItem:SetSelect( bool ) self.is_select = bool if self.is_loaded then self.need_reselect = false self.select_image_obj:SetActive(bool) local color = bool and ColorUtil:ConvertHexToRGBColor("ffffff") or ColorUtil:ConvertHexToRGBColor("a9c1e1") self.name_text_tmp.color = color else self.need_reselect = true end end function ChatDressVerTabItem:SetRedDot( ) local bool = self.model:ShowSubRedPoint(self.data.id) self.need_red = bool if self.is_loaded then self.need_refreshRed = false self.red_image_obj:SetActive(bool) else self.need_refreshRed = true end end function ChatDressVerTabItem:SetData( index, data, call_back) self.index = index self.data = data self.call_back = call_back if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function ChatDressVerTabItem:__delete( ) if self.on_update_red_id then self.model:UnBind(self.on_update_red_id) self.on_update_red_id = nil end end