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