源战役客户端
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.
 
 
 
 
 

255 lines
7.7 KiB

--[[@------------------------------------------------------------------
@description:首充附加界面
@author:huangcong
----------------------------------------------------------------------]]
RechargeAddView = RechargeAddView or BaseClass(BaseView)
local RechargeAddView = RechargeAddView
RechargeAddView.TabPosList = {--页签位置
[1] = {78,-1},
[2] = {5,-124},
[3] = {78,-251},
}
function RechargeAddView:__init()
self.base_file = "rechargeActivity"
self.layout_file = "RechargeAddView"
self.layer_name = "Activity"
self.destroy_imm = true
self.use_background = false
self.need_show_money = false --是否要显示顶部的金钱栏
self.use_background = true
self.hide_maincancas = false --全屏界面需要放开隐藏主UI
self.append_to_ctl_queue = true --添加进入控制队列
self.blur_activity_bg = true
self.model = RechargeActivityModel:getInstance()
self.mainVo = RoleManager.Instance.mainRoleInfo
self.tab_index = 1
self.tab_list = {}--页签列表
self.load_callback = function ()
self:LoadSuccess()
self:AddEvent()
end
self.open_callback = function ( )
self:OpenSuccess()
end
self.destroy_callback = function ( )
self:DestroySuccess()
end
end
function RechargeAddView:DestroySuccess( )
for i,v in ipairs(self.tab_list) do
v:DeleteMe()
v = nil
end
self.tab_list = {}
end
function RechargeAddView:Open()
BaseView.Open(self)
end
function RechargeAddView:OpenSuccess( )
self:UpdateView()
end
function RechargeAddView:LoadSuccess()
local nodes = {
"showImg:img", "bg:raw", "closeBtn:obj",
"tabCon","itemScorll", "itemScorll/Viewport/itemCon", "rechargeBtn:obj",
"limitProText:tmp", "btn_copy/red_copy:obj", "btn_copy:obj:img",
}
self:GetChildren(nodes)
lua_resM:setOutsideImageSprite(self,self.btn_copy_img,"/client/assets/icon/kfActivity/kfActivit_money_copy_3.png")
lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("recharge_add_bg"))
if self.need_load_again then
self:UpdateView()
end
end
function RechargeAddView:AddEvent()
local on_click = function ( click_obj )
if self.closeBtn_obj == click_obj then--关闭按钮
self:Close()
elseif click_obj == self.btn_copy_obj then--存钱
KfActivityModel:getInstance():Fire(KfActivityModel.OPEN_MONEY_COPY_VIEW, "chargeplus")
elseif click_obj == self.rechargeBtn_obj then--充值
OpenFun.Open(450,1)
end
end
AddClickEvent(self.closeBtn_obj, on_click)
AddClickEvent(self.btn_copy_obj, on_click)
AddClickEvent(self.rechargeBtn_obj, on_click)
local updateFunc = function ()
self:UpdateView()
end
self:BindEvent(self.model, RechargeActivityModel.UPDATE_FIRST_RECHARGE_VIEW, updateFunc)
local function UPDATE_MONEY_COPY_VIEW( )
if self._use_delete_method then return end
self:RefreshCopy()
end
self:BindEvent(KfActivityModel:getInstance(), KfActivityModel.UPDATE_MONEY_COPY_VIEW, UPDATE_MONEY_COPY_VIEW)
end
function RechargeAddView:UpdateView()
if not self.is_loaded then
self.need_load_again = true
return
end
self:RefreshCopy()
self:UpdateTabList()
end
function RechargeAddView:RefreshCopy( )
local tag_str = "chargeplus"
local sub_type = KfActivityModel:getInstance():GetMoneyCopySubTypeByTag( tag_str )
local is_show = sub_type and KfActivityModel:getInstance():IsInMoneyCopyTime( sub_type ) or false
self.btn_copy_obj:SetActive(is_show)
self.red_copy_obj:SetActive(KfActivityModel:getInstance():IsMoneyCopyRedByTag( tag_str ))
end
function RechargeAddView:UpdateTabList( )--更新页签
local tab_list = self.model:GetAllRechargeInfo()
for k,v in pairs(self.tab_list) do
v:SetVisible(false)
end
if not tab_list or TableSize(tab_list) == 0 then
if self.tab_list_info and #self.tab_list_info > 0 then--最后一个要特殊处理了
tab_list = self.tab_list_info
for k,v in pairs(tab_list) do
for kk,vv in pairs(v.award_cfg) do
vv.state = 2
end
end
else
return
end
end
if self.tab_list_info and #self.tab_list_info ~= #tab_list then
self.choose_tab_data = nil
end
self.tab_list_info = tab_list
local function callback( item_data,index )
if not item_data or not item_data.product_cfg then return end
self.tab_index = index
self.choose_tab_data = item_data
for k,v in pairs(self.tab_list) do
v:SetSelect(index)
end
local need_find_add_recharge_list = CookieWrapper.Instance:GetCookie(CookieLevelType.Account,CookieKey.RECHARGE_ADD_RED) or {}
if need_find_add_recharge_list[item_data.product_cfg.product_id] then
need_find_add_recharge_list[item_data.product_cfg.product_id] = nil
CookieWrapper.Instance:SaveCookie(CookieLevelType.Account,CookieTimeType.TYPE_ALWAYS,CookieKey.RECHARGE_ADD_RED,need_find_add_recharge_list)
CookieWrapper.Instance:WriteAll()
self.model:Fire(RechargeActivityModel.REQUEST_CCMD_EVENT, 15905)
else
self:RefreshView()
end
end
local x = 0
local y = 0
for i, v in ipairs(tab_list) do
local item = self.tab_list[i]
if item == nil then
item = RechargeAddTab.New(self.tabCon, nil, self.layer_name)
self.tab_list[i] = item
if RechargeAddView.TabPosList[i] then
x = RechargeAddView.TabPosList[i][1]
y = RechargeAddView.TabPosList[i][2]
else
x = i%2 == 1 and 76 or 3
y = -1 - i*124
end
item:SetPosition(x,y)
item:SetCallBack(callback)
end
item:SetVisible(true)
item:SetData(v,i)
end
if not self.choose_tab_data then
self.tab_index = 1
end
self.choose_tab_data = tab_list[self.tab_index]
callback(self.choose_tab_data,self.tab_index)
end
--刷新界面
function RechargeAddView:RefreshView( )
-- print("huangcong:RechargeAddView [start:131] :", self.choose_tab_data)
-- PrintTable(self.choose_tab_data)
-- print("huangcong:RechargeAddView [end]")
lua_resM:setOutsideImageSprite(self, self.showImg_img, GameResPath.GetRechargeActivityImage("recharge_add_show_"..self.choose_tab_data.product_cfg.product_id), true)
local cur_recharge_num = self.choose_tab_data.charge_value and self.choose_tab_data.charge_value/100 or 0
local need_recharge_num = self.choose_tab_data.product_cfg and self.choose_tab_data.product_cfg.money or 0
self.limitProText_tmp.text = string.format("已充值 %s/%s元",HtmlColorTxt(cur_recharge_num >= need_recharge_num and need_recharge_num or cur_recharge_num, cur_recharge_num >= need_recharge_num and ColorUtil.GREEN_DARK or ColorUtil.RED_DARK),need_recharge_num)
self:UpdateItemList()
end
--更新充值列表
function RechargeAddView:UpdateItemList( )
local item_list = self.choose_tab_data.award_cfg
if not item_list or TableSize(item_list) == 0 then return end
-- print("huangcong:CompetingListCon [97]list: ",item_list)
-- PrintTable(item_list)
if #item_list > 1 then
local sort_func = function ( a, b )
return a.sort_id < b.sort_id
end
table.sort(item_list, sort_func)
end
self.item_list_info = item_list
local function final_callback( ... )
local jump_index = 1
for k,v in ipairs(item_list) do
if v.state == 1 then
self.item_list_com:ScrollToItem(k)
break
end
end
end
if not self.item_list_com then
self.item_list_com = self:AddUIComponent(UI.ItemListCreator)
else
final_callback()
end
local info = {
data_list = item_list,
item_con = self.itemCon,
item_class = RechargeAddItem,
item_height = RechargeAddItem.Height,
start_x = 2,
start_y = -2,
space_y = 0,
scroll_view = self.itemScorll.transform,
create_frequency = 0.02,
final_callback = final_callback,
on_update_item = function(item, i, v)
item:SetData(v, i, i)
end,
}
self.item_list_com:UpdateItems(info)
end
--隐藏以后再显示
function RechargeAddView:CancelHide( )
BaseView.CancelHide(self)
if self.is_loaded then
if self.item_list_info and #self.item_list_info > 0 then
local jump_index = 1
for k,v in ipairs(self.item_list_info) do
if v.state == 1 then
self.item_list_com:ScrollToItem(k)
break
end
end
end
end
end