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