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