CSMainAppointTab = CSMainAppointTab or BaseClass(BaseItem) local CSMainAppointTab = CSMainAppointTab function CSMainAppointTab:__init() self.base_file = "csMain" self.layout_file = "CSMainAppointTab" self.model = CSMainModel:getInstance() self:Load() end function CSMainAppointTab:Load_callback() self.nodes = { "bg:obj", "select:obj", "red:obj", "tabName:tmp", } self:GetChildren(self.nodes) self:AddEvents() if self.need_refreshData then self:UpdateView() end if self.need_reclick then self:OnClick(self.click_index) end end function CSMainAppointTab:AddEvents( ) local on_click = function ( click_obj ) if self.gameObject == click_obj then if self.in_select then return end self.model:Fire(CSMainConst.ON_CLICK_APPOINT_TAB,self.index) end end AddClickEvent(self.gameObject, on_click) --事件绑定:点击自身item处理 local click_func = function(id) self:OnClick(id) end self:BindEvent(self.model, CSMainConst.ON_CLICK_APPOINT_TAB, click_func) end function CSMainAppointTab:UpdateView( ) self.tabName_tmp.text = self.data.name end function CSMainAppointTab:OnClick(click_index) self.click_index = click_index if self.is_loaded then self.need_reclick = false if self.click_index == self.index then self.in_select = true self.bg_obj:SetActive(false) self.select_obj:SetActive(true) self.tabName_tmp.color = ColorUtil:ConvertHexToRGBColor("ffffff") SetTMPSharedMaterial(self.tabName_tmp, ShaderTools.TMPSharedMaterialType.HKYTW7OutlineBlueTab) if self.call_back then self.call_back(self.index) end else self.in_select = false self.bg_obj:SetActive(true) self.select_obj:SetActive(false) self.tabName_tmp.color = ColorUtil:ConvertHexToRGBColor("7d91ac") SetTMPSharedMaterial(self.tabName_tmp, ShaderTools.TMPSharedMaterialType.HKYTW7FFDefault) end else self.need_reclick = true end end function CSMainAppointTab:SetData( data,index,call_back) self.data = data self.index = index self.call_back = call_back if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function CSMainAppointTab:__delete( ) end