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