---@class KLInvestmentFundPanel:UIKmlLuaPanelBase ---@field view KLInvestmentFundPanelView local KLInvestmentFundPanel = class(UIKmlLuaPanelBase) local this =KLInvestmentFundPanel function this:AsyncLoadUI() end ---创建时调用一次 function this:Init() GUI:OSAScrollView_Initialized(self.view.osa_reward_list,self.RewardItemGetFun,self.RewardItemUpdateFun,self) end ---注册UI事件和服务器消息 function this:RegistEvents() SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_RECHARGE_ACTION,self.RefreshRoleTodayMoney,self) end function this:RefreshRoleTodayMoney(_,msg) if msg.type == "10" and msg.action == "reward" then local rewards = InfoManager.dailyAddRechargeInfo.investFundInfo.rewards table.insert(rewards,tonumber(msg.data.id)) end InfoManager.dailyAddRechargeInfo:RefreshInvestFundRedPoint() self:Refresh() end ---界面显示时调用一次 function this:Show() --请求投资基金信息 SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_RECHARGE_ACTION, { type = 10, action = "panel" }) end ---创建或者刷新界面数据时调用 function this:Refresh() local info = InfoManager.dailyAddRechargeInfo.investFundInfo if not info then return end local group = info.group ---@type cfg_InvestmentFunds_column[] self.rewardListData = {} ---@type cfg_InvestmentFunds_column[] local tbl = SL:GetConfigTable("cfg_InvestmentFunds") for _, v in pairs(tbl) do if v.groupid == group then table.insert(self.rewardListData, v) end end GUI:OSAScrollView_RefreshList(self.view.osa_reward_list,#self.rewardListData) --当前对应充值表 ---@type cfg_recharge_column[] local rechargeTbl = SL:GetConfigTable("cfg_recharge") for _, v in pairs(rechargeTbl) do if v.type == 10 and v.parameter == group then self.currentRecharge = v end end if not self.currentRecharge then logError("当前充值表不存在 group:" .. group) return end local buyDay = info.buyDay self.canBuy = buyDay <= 0 if self.canBuy then --未购买 GUI:Text_setString(self.view.btn_buy,self.currentRecharge.amount.."元") GUI:setGrey(self.view.btn_buy,false) GUI:setVisible(self.view.img_get,false) else --已购买 GUI:Text_setString(self.view.btn_buy,"已购买") GUI:setGrey(self.view.btn_buy,true) GUI:setVisible(self.view.img_get,true) GUI:Image_loadTexture(self.view.img_bg,"bg_recharge_fund2","Atlas/KLInvestmentFundPanel.spriteatlas") end GUI:AddOnClickEvent(self.view.btn_buy,self,self.BtnBuyClick) if #self.rewardListData > 0 then local firstData = self.rewardListData[1] GUI:Item_setItemId(self.view.item_reward,firstData.rebate[4][1]) GUI:Text_setString(self.view.text_gain_num,tostring(firstData.rebate[4][2])) local rewardItemId = firstData.rebate[3][1] ---@type cfg_item_column local item = SL:GetConfig("cfg_item",rewardItemId) local returnRewardNum = firstData.rebate[1][1] local returnId = firstData.rebate[2][1] local returnNum = firstData.rebate[2][2] GUI:Item_setItemId(self.view.item_reward_top,tostring(returnId)) GUI:Text_setString(self.view.text_gain_num_top,tostring(returnNum)) GUI:Text_setString(self.view.text_return_num,tostring(returnRewardNum) .. "%") GUI:Text_setString(self.view.text_equip_name,item.name) end end function this:BtnBuyClick() if not self.canBuy then return end GUIUtil.SDKPay(self.currentRecharge,1) end function this:Close() end function this:RewardItemGetFun() local item = GUI:UIPanel_Open("dev/outui/MainRecharge/Item/KLFundRewardItem/KLFundRewardItemItem",nil,self,nil,true) return item end ---@param item KLFundRewardItemItem ---@param index number function this:RewardItemUpdateFun(item,index) local data = self.rewardListData[index+1] item:SetData(data) end return this