|
|
- 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 = "<color=#fdffc2>“贵重奖励”</color>有<color=#fdffc2>限量</color>份数哦,先到先得!"
-
- 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
|