|
|
- --[[@------------------------------------------------------------------
- @description:福利大厅
- @author:HWR
- ----------------------------------------------------------------------]]
- FuliMainView = FuliMainView or BaseClass(BaseView)
- FuliMainView.TAB_DATA = {
- {id = FuliConst.TAB_ID.SIGN,name = "每日签到",light_res = "icon_bb1_1",dark_res = "icon_bb1_2", open_lv = Config.Modulesub["160@1"].open_lv, open_day = Config.Modulesub["160@1"].open_day },
- {id = FuliConst.TAB_ID.AI,name = "在线奖励",light_res = "icon_ck1_1",dark_res = "icon_ck1_2", open_lv = Config.Modulesub["160@2"].open_lv, open_day = Config.Modulesub["160@2"].open_day},
- {id = FuliConst.TAB_ID.LEVEL,name = "冲级大礼",light_res = "icon_ck1_1",dark_res = "icon_ck1_2", open_lv = Config.Modulesub["160@3"].open_lv, open_day = Config.Modulesub["160@3"].open_day},
- {id = FuliConst.TAB_ID.NOTICE,name = "游戏公告",light_res = "icon_ck1_1",dark_res = "icon_ck1_2", open_lv = Config.Modulesub["160@1"].open_lv, open_day = Config.Modulesub["160@1"].open_day},
- {id = FuliConst.TAB_ID.DOWNLOAD,name = "资源礼包",light_res = "icon_ck1_1",dark_res = "icon_ck1_2", open_lv = Config.Modulesub["160@4"].open_lv, open_day = Config.Modulesub["160@4"].open_day},
- {id = FuliConst.TAB_ID.CDK,name = "邀请礼包",light_res = "icon_ck1_1",dark_res = "icon_ck1_2", open_lv = Config.Modulesub["160@5"].open_lv, open_day = Config.Modulesub["160@5"].open_day},
-
- }
- function FuliMainView:__init()
- self.base_file = "fuli"
- self.layout_file = "FuliBaseView"
- self.layer_name = "UI"
- self.use_background = true
- self.hide_maincancas = true
- self.close_mode = CloseMode.CloseDestroy
- self.destroy_imm = true
- self.append_to_ctl_queue = true
- self.is_set_zdepth = false
- self.close_fog = true
- self.model = FuliModel:getInstance()
- self.model:Fire(FuliConst.REQ_FULI_SCMD, 16001)
- self.model:Fire(FuliConst.REQ_FULI_SCMD, 16003)
- self.model:Fire(FuliConst.REQ_FULI_SCMD, 16005)
- self.mainRoleVo = RoleManager.Instance.mainRoleInfo
- self.current_index = nil
- self.sub_view_list = {}
- self.fire_change_visible_event = true
-
- self.show_tab_conf = {}
- local can_show = true
- for k,v in ipairs(FuliMainView.TAB_DATA) do
- table.insert( self.show_tab_conf, v )
- end
- -------------------------
- --万物宝典
- if GetModuleIsOpen(331,74) then
- local temp_list = CustomActivityModel:getInstance():getAllActListByBaseType(CustomActivityModel.CustomActBaseType.CONTRACT)
- for i,v in pairs(temp_list or {}) do
- local id = 33100000 + CustomActivityModel.CustomActBaseType.CONTRACT * 1000 + v.sub_type
- -------------------------
- local temp_conf = {id = id,name = v.name,light_res = "icon_ck1_1",dark_res = "icon_ck1_2", open_lv = Config.Modulesub["331@74"].open_lv, open_day = Config.Modulesub["331@74"].open_day}
- table.insert( self.show_tab_conf,1, temp_conf )
- end
- end
- -------------------------
-
- self.load_callback = function ()
- self:LoadSuccess()
- self:InitEvent()
- end
- self.open_callback = function ()
- self.tabWindowComponent:SetTabBarIndex(self.cur_index or self:GetFirstRedIndex())
- self:UpdateRedDot()
- end
- self.close_callback = function ()
- self:Remove()
- end
- end
-
- function FuliMainView:GetFirstRedIndex( )
- --获取列表里的第一个红点页签
- local red_data = self.model:GetAllFuliRedDot()
- for k,v in ipairs(self.show_tab_conf) do
- if red_data[v.id] == true then
- return v.id
- end
- end
- return self.show_tab_conf[1] and self.show_tab_conf[1].id or 1
- end
-
- function FuliMainView:Open(index, type_id)
- self.cur_index = index
- self.type_id = type_id
- BaseView.Open(self)
- end
-
- function FuliMainView:Remove()
- if self.tabWindowComponent then
- self.tabWindowComponent:DeleteMe()
- self.tabWindowComponent = nil
- end
- for i,v in pairs(self.sub_view_list) do
- v:DeleteMe()
- v = nil
- end
- self.sub_view_list = {}
- end
-
- function FuliMainView:LoadSuccess()
- self.container
- = GetChildTransforms(self.transform,
- {
- "container",
- })
- if self.tabWindowComponent == nil then
- local select_callback = function(index)
- self:SeletedTabbar(index)
- end
- local close_callback = function()
- self:Close()
- end
- self.tabWindowComponent = UITabWindow.New(self.transform, self.show_tab_conf, select_callback, close_callback, self.background_wnd, nil, UITabWindow.SizeSmallHall, false, nil, true)
- self.tabWindowComponent:SetTitleText("福利")
- end
-
- local function bg_back_func( ... )
- if self.background_wnd and self.background_wnd:GetComponent("RawImageExtend") then
- self:MoveUIToBack(self.background_wnd:GetComponent("RawImageExtend"))
- end
- if self.tabWindowComponent and self.tabWindowComponent.win_bg then
- self:MoveUIToBack(self.tabWindowComponent.win_bg)
- end
- end
- if self.background_wnd then
- bg_back_func()
- else
- self.bg_back_func = bg_back_func
- end
- end
- function FuliMainView:InitEvent()
- local function on_ans_update_red_dot( tab_id,bool )--设置红点的状态注意此处的协议是从model那边发过来的
- self:UpdateRedDot()
- end
- self.on_ans_update_red_dot_id = self.model:Bind(FuliConst.ANS_UPDATE_FULI_RED_DOT, on_ans_update_red_dot)
-
- local function CLICK_TASK_ITEM( )
- self:Close()
- end
- self:BindEvent(ContractModel:getInstance(), ContractConst.CLICK_TASK_ITEM, CLICK_TASK_ITEM)
-
- local function MOVE_UI_TO_BACK( node_image )
- if node_image then
- self:MoveUIToBack(node_image)
- end
- end
- self:BindEvent(self.model, FuliConst.MOVE_UI_TO_BACK, MOVE_UI_TO_BACK)
- end
-
- function FuliMainView:SeletedTabbar(index)
- if self.current_index == index then
- return
- elseif index == FuliConst.TAB_ID.NOTICE then
- local data = LoginModel:getInstance():GetNoticeData("fuli_view")
- if TableSize(data) == 0 then
- Message.show("暂无公告哦")
- self.tabWindowComponent:SetTabBarIndex(self.current_index)
- return
- end
- end
- if self.current_index ~= nil then
- self.is_changeIndex = true
- end
- local current_index = self.tabWindowComponent:GetCurrentSelectIndex()
- self:SwitchView(index)
- self.current_index = index
- end
-
- function FuliMainView:SwitchView(index)
- local is_contract = false--是否是万物宝典
- local contract_index_start = 33100000 + CustomActivityModel.CustomActBaseType.CONTRACT * 1000
- if index > contract_index_start and index <= (contract_index_start + 999) then
- is_contract = index - contract_index_start
- end
- local bg_res = "default_bg_6"
- local is_online_ai = index == FuliConst.TAB_ID.AI
- if is_contract or is_online_ai then
- LuaViewManager:getInstance():SetBackCameraShow(true)
- else
- LuaViewManager:getInstance():SetBackCameraShow(false)
- end
- -------------------------
- if index == FuliConst.TAB_ID.SIGN then
- self.model:Fire(FuliConst.REQ_FULI_SCMD, 16001)
- if self.sub_view_list[index] == nil then
- self.sub_view_list[index] = FuliSignView.New(self.container)
- end
- elseif index == FuliConst.TAB_ID.AI then
- if self.sub_view_list[index] == nil then
- self.sub_view_list[index] = FuliAIView.New(self.container)
- end
- self.model:Fire(FuliConst.REQ_FULI_SCMD, 16003)
- bg_res = "fuli_ai_bg"
- elseif index == FuliConst.TAB_ID.LEVEL then
- self.model:Fire(FuliConst.REQ_FULI_SCMD, 16005)
- if self.sub_view_list[index] == nil then
- self.sub_view_list[index] = FuliLevelView.New(self.container)
- end
- bg_res = "fuli_level_bg"
- elseif index == FuliConst.TAB_ID.NOTICE then
- if self.sub_view_list[index] == nil then
- self.sub_view_list[index] = FuliNoticeView.New(self.container)
- end
- bg_res = "fuli_notice_bg"
- elseif index == FuliConst.TAB_ID.DOWNLOAD then
- self.model:Fire(FuliConst.REQ_FULI_SCMD, 16007)
- if self.sub_view_list[index] == nil then
- self.sub_view_list[index] = FuliDownloadView.New(self.container)
- end
- bg_res = "fuli_download_bg"
- elseif index == FuliConst.TAB_ID.CDK then
- if self.sub_view_list[index] == nil then
- self.sub_view_list[index] = FuliCDKView.New(self.container)
- end
- elseif is_contract then
- if self.sub_view_list[index] == nil then
- self.sub_view_list[index] = ContractSubView.New(self.container,nil,self.layer_name,is_contract)
- self.contract_view = self.contract_view or self.sub_view_list[index]
- else
- self.sub_view_list[index]:JumpToDefaultPos()
- end
- end
- self.tabWindowComponent:SetBackgroundRes(bg_res)
- self:PopUpChild(self.sub_view_list[index])
- self.sub_view_list[index]:SetData(index, self.type_id)
-
- if self.contract_view then
- self.contract_view:ShowBg(is_contract)
- end
- end
-
- function FuliMainView:UpdateRedDot()
- if self.tabWindowComponent then
- local red_data = self.model:GetAllFuliRedDot()
- for k,v in pairs(red_data) do
- self.tabWindowComponent:ShowRedPoint(k,v)
- end
- end
- end
-
- function FuliMainView:ReOpen(index, sub_index, param_list )
- self.cur_index = index or 1
- self.sub_index = sub_index
- self.param_list = param_list
- if self.is_loaded then
- self:SeletedTabbar(self.cur_index)
- end
- end
|