源战役客户端
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

158 lines
5.8 KiB

--[[@------------------------------------------------------------------
@description:市场主界面
@author:wyb
----------------------------------------------------------------------]]
MarketView = MarketView or BaseClass(BaseView)
MarketView.TAB_DATA = {
{id = MarketConst.TabId.BuyHall,name = "拍卖大厅",light_res = "icon_bb1_1",dark_res = "icon_bb1_2", open_lv = Config.Moduleid[155].open_lv, open_day = Config.Moduleid[155].open_day },
{id = MarketConst.TabId.Focus,name = "我的关注",light_res = "icon_ck1_1",dark_res = "icon_ck1_2", open_lv = Config.Moduleid[155].open_lv, open_day = Config.Moduleid[155].open_day},
{id = MarketConst.TabId.SalesHall,name = "出售大厅",light_res = "icon_ck1_1",dark_res = "icon_ck1_2", open_lv = Config.Moduleid[155].open_lv, open_day = Config.Moduleid[155].open_day},
{id = MarketConst.TabId.Record,name = "购买记录",light_res = "icon_ck1_1",dark_res = "icon_ck1_2", open_lv = Config.Moduleid[155].open_lv, open_day = Config.Moduleid[155].open_day},
{id = MarketConst.TabId.Attention,name = "入库提醒",light_res = "icon_ck1_1",dark_res = "icon_ck1_2", open_lv = Config.Moduleid[155].open_lv, open_day = Config.Moduleid[155].open_day},
}
function MarketView:__init()
self.base_file = "market"
self.layout_file = "MarketView"
self.layer_name = "UI"
self.use_background = true
self.close_mode = CloseMode.CloseDestroy
self.blur_activity_bg = true
self.hide_maincancas = true
self.destroy_imm = true
self.append_to_ctl_queue = true
self.is_set_zdepth = true
self.model = MarketModel:getInstance()
self.mainRoleVo = RoleManager.Instance.mainRoleInfo
self.sub_view_list = {}
self.event_list = {}
self.load_callback = function ()
self:LoadSuccess()
self:InitEvent()
end
self.open_callback = function ()
self.tabWindowComponent:SetTabBarIndex(self.cur_index or 1)
end
self.close_callback = function ()
end
self.destroy_callback = function ()
self:Remove()
end
end
function MarketView:Open(index, sub_index, param_list )
self.cur_index = index or 1
self.sub_index = sub_index
self.param_list = param_list
BaseView.Open(self)
end
function MarketView:ReOpen(index, sub_index, param_list )
self.cur_index = index or 1
self.sub_index = sub_index
self.param_list = param_list
self.tabWindowComponent:SetTabBarIndex(self.cur_index)
end
function MarketView:Remove()
for _, v in pairs(self.event_list) do
self.model:UnBind(v)
v = nil
end
self.event_list = {}
for _, v in pairs(self.sub_view_list) do
v:DeleteMe()
v = nil
end
self.sub_view_list = {}
if self.tabWindowComponent then
self.tabWindowComponent:DeleteMe()
self.tabWindowComponent = nil
end
self.model:SetMarketAuctionRed(false)
end
function MarketView: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, MarketView.TAB_DATA, select_callback, close_callback, self.background_wnd, self.winCon, UITabWindow.SizeSmallHall, false, nil, true)
-- self.tabWindowComponent:SetTitleRes("market_asset", "market_title_text1") --标题
self.tabWindowComponent:SetBackgroundRes("default_bg_6")
self.tabWindowComponent:SetTitleText( "拍卖" )
end
self:ShowTabRedPointState()
self.model:SetMarketAuctionRed(false)
--距离上次打开界面超过10分钟,购买页签要显示新品角标
local last_open_view_timestamp = self.model:GetOpenViewTimestamp() or 0
if TimeUtil:getServerTime() - last_open_view_timestamp > 600 then
self.tabWindowComponent:SetSpeacialImg(MarketConst.TabId.BuyHall, 2)
end
end
function MarketView:InitEvent()
local function onRefreshTabDot()
self:ShowTabRedPointState()
end
self:BindEvent(self.model, MarketModel.ANS_MARKET_TAB_RED_DOT , onRefreshTabDot)
end
function MarketView:ShowTabRedPointState()
local red_data = self.model:GetMarketRedData()
self.tabWindowComponent:ShowRedPoint(MarketConst.TabId.BuyHall, red_data.guild_red)
self.tabWindowComponent:ShowRedPoint(MarketConst.TabId.SalesHall, red_data.down_red or red_data.can_up_shelves_red)
end
function MarketView:SeletedTabbar(index)
if index == MarketConst.TabId.BuyHall then
if self.sub_view_list[index] == nil then
self.sub_view_list[index] = MarketBuyHallView.New(self.container,nil,self.layer_name)
self.sub_view_list[index]:SetData(self.sub_index, self.param_list)
else
self.sub_view_list[index]:RefreshData()
end
self.sub_index = nil
self.param_list = nil
self.model:ResetOpenViewTimestamp()
elseif index == MarketConst.TabId.Focus then
self.model:Fire(MarketModel.REQUEST_CCMD_EVENT, 15512)
if self.sub_view_list[index] == nil then
self.sub_view_list[index] = MarketFocusView.New(self.container,nil,self.layer_name)
end
self.sub_view_list[index]:SetData()
elseif index == MarketConst.TabId.SalesHall then
self.model:Fire(MarketModel.REQUEST_CCMD_EVENT, 15503)
if self.sub_view_list[index] == nil then
self.sub_view_list[index] = MarketSalesHallView.New(self.container,nil,self.layer_name)
end
self.sub_view_list[index]:SetData(self.sub_index, self.param_list)
self.param_list = nil
self.sub_index = nil
elseif index == MarketConst.TabId.Record then
if self.sub_view_list[index] == nil then
self.sub_view_list[index] = MarketRecordView.New(self.container,nil,self.layer_name)
end
self.sub_view_list[index]:SetData()
elseif index == MarketConst.TabId.Attention then
self.model:Fire(MarketModel.REQUEST_CCMD_EVENT, 15505)
if self.sub_view_list[index] == nil then
self.sub_view_list[index] = MarketAttentionView.New(self.container,nil,self.layer_name)
end
self.sub_view_list[index]:SetData()
end
self:PopUpChild(self.sub_view_list[index])
self.sub_index = nil
end