FuliLevelView = FuliLevelView or BaseClass(BaseItem) local FuliLevelView = FuliLevelView function FuliLevelView:__init() self.base_file = "fuli" self.layout_file = "FuliLevelView" self.model = FuliModel:GetInstance() self.mainVo = RoleManager.Instance.mainRoleInfo self:Load() end function FuliLevelView:Load_callback() self.nodes = { "item_scroll/Viewport/item_con","item_scroll","Text_1:tmp", } self:GetChildren(self.nodes) self.Text_1_tmp.text = "“贵重奖励”有限量份数哦,先到先得!" self:AddEvents() if self.need_refreshData then self:UpdateView() end end function FuliLevelView:AddEvents( ) local function on_update_view( ) self:UpdateView() end self.on_update_view_id = self.model:BindOne("fuli_level_info", on_update_view) end function FuliLevelView:UpdateView( ) self.cfg = DeepCopy(self.model:GetFuliLevelCFG(self.mainVo.career)) local level = self.mainVo.level for i,v in ipairs(self.cfg) do v.is_get = self.model:IsFuliLevelGet(v.id) v.can_get = level >= v.level if v.can_get and not v.is_get then--可以领且没有领 v.sort_rank = 2 elseif v.can_get and v.is_get then--领了 v.sort_rank = 0 else v.sort_rank = 1 end end local sort_func = function ( a, b ) if a.sort_rank == b.sort_rank then return a.id < b.id else return a.sort_rank > b.sort_rank end end table.sort(self.cfg, sort_func) if not self.item_list_com then self.item_list_com = self:AddUIComponent(UI.ItemListCreator) end -- self.item_list_com:Reset() local info = { data_list = self.cfg, item_con = self.item_con, item_class = FuliLevelItem, item_height = FuliLevelItem.Height, space_y = 6, start_x = 1, start_y = -1, reuse_item_num = 10, scroll_view = self.item_scroll, create_frequency = 0.02, is_scroll_back_on_update = false, on_update_item = function(item, i, v) item:SetData(i, v) end, } self.item_list_com:UpdateItems(info) end function FuliLevelView:SetData( data ) self.data = data if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function FuliLevelView:__delete( ) if self.on_update_view_id then self.model:UnBind(self.on_update_view_id) self.on_update_view_id = nil end end