源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

243 lines
8.6 KiB

--[[@------------------------------------------------------------------
@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