|
|
- RankTargetView = RankTargetView or BaseClass(BaseView)
- local RankTargetView = RankTargetView
-
-
- function RankTargetView:__init()
- self.base_file = "rank"
- self.layout_file = "RankTargetView"
- self.layer_name = "Activity"
- self.destroy_imm = true
- self.use_background = true
- self.change_scene_close = true
- self.hide_maincancas = true --是否隐藏主界面
- self.append_to_ctl_queue = false --是否要添加进界面堆栈
- self.need_show_money = false --是否要显示顶部的金钱栏
-
- self.click_bg_toClose = true
-
- self.is_set_zdepth = true
-
- self.blur_activity_bg = true
-
- self.model = RankModel:getInstance()
-
- self.tab_item_list = {}
-
- self.now_select_rank_type = 0
-
-
- self.load_callback = function ()
- self:LoadSuccess()
- self:AddEvent()
- end
- self.open_callback = function ( )
- self:OpenSuccess()
- end
- self.close_win_callback = function ( )
- self:Close()
- end
- self.destroy_callback = function ( )
- self:DestroySuccess()
- end
- end
-
- function RankTargetView:Open(rank_tab_id)
- self.rank_tab_id = rank_tab_id
- self.rank_type_list = self.model:GetRankTargetTabListByTabId(self.rank_tab_id)
- BaseView.Open(self)
- end
-
- function RankTargetView:LoadSuccess()
- local nodes = {
- "container",
- "tabCon",
- "ScrollView", "ScrollView/Viewport/Content",
- "empty_add:obj", "empty_add/image:raw",
- }
- self:GetChildren(nodes)
-
- self.tabWindowComponent = UITabWindow.New(self.transform, nil, nil, self.close_win_callback, self.background_wnd,
- self.container,UITabWindow.SizeSmallNoTab,nil,nil,nil)
- self.tabWindowComponent:SetBackgroundRes("rank_target_bg")
- self.tabWindowComponent:SetTitleText("排行榜目标奖励")
-
- lua_resM:setOutsideRawImage(self, self.image_raw, GameResPath.GetViewBigBg("com_empty_bg1"))
-
-
-
- end
-
- function RankTargetView:AddEvent()
- local function update_target_view(rank_type)
- if self.is_loaded and self.now_select_rank_type == rank_type then
- self:UpdateTargetItem(rank_type,true)
- end
- end
- self:BindEvent(self.model,RankModel.UPDATE_RANK_TARGET_VIEW,update_target_view)
- end
-
- function RankTargetView:OpenSuccess()
- self:UpdateTabList()
- end
-
- function RankTargetView:UpdateTabList( )
- local function tab_click_back(rank_type,is_history)
- self.now_select_rank_type = rank_type
- for k,v in pairs(self.tab_item_list) do
- v:SetSelect(rank_type)
- end
- if not is_history then
- self:UpdateTargetItem(rank_type)
- else
- self:UpdateHistoryList(rank_type)
- end
- end
-
- for k,v in pairs(self.tab_item_list) do
- v:SetVisible(false)
- end
- for i,v in ipairs(self.rank_type_list) do
- local item = self.tab_item_list[i]
- if not item then
- item = RankTargetTabItem.New(self.tabCon)
- self.tab_item_list[i] = item
- end
- item:SetVisible(true)
- item:SetData(v.rank_type, tab_click_back, v.is_history)
- item:SetAnchoredPosition(126*(i-1)+1,-0.5)
- end
-
- local jump_to_rank_type = self.rank_type_list[1].rank_type
- for i,v in ipairs(self.rank_type_list) do
- local red = self.model:IsRankTypeNeedRed(rank_type)
- if red then
- jump_to_rank_type = v.rank_type
- break
- end
- end
- tab_click_back(jump_to_rank_type)
- end
-
- --allow_change_to_next_tab:是否允许在领取完当前页时,跳转到下一个可领奖励的页签
- function RankTargetView:UpdateTargetItem(rank_type,allow_change_to_next_tab)
- local target_cfg = DeepCopy(self.model:GetRankTargetCfgByType(rank_type))
-
- --排序 0|不可领 1|可领取 2|已领完
- local target_server_data = self.model:GetRankTargetData(rank_type) and self.model:GetRankTargetData(rank_type).top_list or {}
- local have_reward_can_get = false --是否有奖励可以领取
- for i,v in ipairs(target_server_data) do
- if target_cfg[i] then
- if v.award_state == 0 then
- target_cfg[i].sort_rank = 2
- elseif v.award_state == 1 then
- have_reward_can_get = true
- target_cfg[i].sort_rank = 1
- elseif v.award_state == 2 then
- target_cfg[i].sort_rank = 3
- end
- end
- end
-
- if allow_change_to_next_tab and not have_reward_can_get then--没有奖励领取时,跳到下一个页签去
- local jump_to_rank_type = 0
- for i,v in ipairs(self.rank_type_list) do
- local red = self.model:IsRankTypeNeedRed(v.rank_type)
- if red then
- jump_to_rank_type = v.rank_type
- break
- end
- end
-
- local function tab_click_back(rank_type)
- self.now_select_rank_type = rank_type
- for k,v in pairs(self.tab_item_list) do
- v:SetSelect(rank_type)
- end
- self:UpdateTargetItem(rank_type)
- end
-
- if jump_to_rank_type ~= 0 then
- tab_click_back(jump_to_rank_type)
- return
- end
- end
-
- local arg = {"sort_rank","index"}
- local condition = {Array.LOWER,Array.LOWER}
- SortTools.MoreKeysSorter(target_cfg, arg, condition)
-
-
- self:UpdateTargetScrollView(target_cfg,false)
-
- end
-
- function RankTargetView:UpdateHistoryList(rank_type)
- local true_rank_type = rank_type/1000
- local target_cfg = DeepCopy(self.model:GetRankTargetCfgByType(true_rank_type))
-
- --排序 0|不可领 1|可领取 2|已领完
- local hostory_list = {}
- local target_server_data = self.model:GetRankTargetData(true_rank_type) and self.model:GetRankTargetData(true_rank_type).top_list or {}
- for i,v in ipairs(target_server_data) do
- if target_cfg[i] then
- if v.award_state ~= 0 and target_cfg[i].index == v.target then
- table.insert(hostory_list,target_cfg[i])
- end
- end
- end
-
- local arg = {"index"}
- local condition = {Array.UPPER}
- SortTools.MoreKeysSorter(hostory_list, arg, condition)
-
- self:UpdateTargetScrollView(hostory_list,true)
- end
-
- function RankTargetView:UpdateTargetScrollView(data,is_history)
- 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 = data,
- item_con = self.Content,
- item_class = RankTargetItem,
- item_width = 899,
- item_height = 137,
- space_y = 3,
- start_x = 5,
- start_y = -5,
- -- create_frequency = 0.01,
- scroll_view = self.ScrollView,
- on_update_item = function(item, i, v)
- item:SetData(v,i,is_history)
- end,
- }
- self.item_list_com:UpdateItems(info)
-
-
- self.empty_add_obj:SetActive(#data==0)
- end
-
- function RankTargetView:UpdateRed( )
-
- end
-
- function RankTargetView:DestroySuccess( )
- if self.tabWindowComponent then
- self.tabWindowComponent:DeleteMe()
- end
- self.tabWindowComponent = nil
- for i, v in ipairs(self.tab_item_list) do
- v:DeleteMe()
- end
- self.tab_item_list = {}
- end
|