KLInvestmentFundPanel.lua 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. ---@class KLInvestmentFundPanel:UIKmlLuaPanelBase
  2. ---@field view KLInvestmentFundPanelView
  3. local KLInvestmentFundPanel = class(UIKmlLuaPanelBase)
  4. local this =KLInvestmentFundPanel
  5. function this:AsyncLoadUI()
  6. end
  7. ---创建时调用一次
  8. function this:Init()
  9. GUI:OSAScrollView_Initialized(self.view.osa_reward_list,self.RewardItemGetFun,self.RewardItemUpdateFun,self)
  10. end
  11. ---注册UI事件和服务器消息
  12. function this:RegistEvents()
  13. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_RECHARGE_ACTION,self.RefreshRoleTodayMoney,self)
  14. end
  15. function this:RefreshRoleTodayMoney(_,msg)
  16. if msg.type == "10" and msg.action == "reward" then
  17. local rewards = InfoManager.dailyAddRechargeInfo.investFundInfo.rewards
  18. table.insert(rewards,tonumber(msg.data.id))
  19. end
  20. InfoManager.dailyAddRechargeInfo:RefreshInvestFundRedPoint()
  21. self:Refresh()
  22. end
  23. ---界面显示时调用一次
  24. function this:Show()
  25. --请求投资基金信息
  26. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_RECHARGE_ACTION, { type = 10, action = "panel" })
  27. end
  28. ---创建或者刷新界面数据时调用
  29. function this:Refresh()
  30. local info = InfoManager.dailyAddRechargeInfo.investFundInfo
  31. if not info then
  32. return
  33. end
  34. local group = info.group
  35. ---@type cfg_InvestmentFunds_column[]
  36. self.rewardListData = {}
  37. ---@type cfg_InvestmentFunds_column[]
  38. local tbl = SL:GetConfigTable("cfg_InvestmentFunds")
  39. for _, v in pairs(tbl) do
  40. if v.groupid == group then
  41. table.insert(self.rewardListData, v)
  42. end
  43. end
  44. GUI:OSAScrollView_RefreshList(self.view.osa_reward_list,#self.rewardListData)
  45. --当前对应充值表
  46. ---@type cfg_recharge_column[]
  47. local rechargeTbl = SL:GetConfigTable("cfg_recharge")
  48. for _, v in pairs(rechargeTbl) do
  49. if v.type == 10 and v.parameter == group then
  50. self.currentRecharge = v
  51. end
  52. end
  53. if not self.currentRecharge then
  54. logError("当前充值表不存在 group:" .. group)
  55. return
  56. end
  57. local buyDay = info.buyDay
  58. self.canBuy = buyDay <= 0
  59. if self.canBuy then --未购买
  60. GUI:Text_setString(self.view.btn_buy,self.currentRecharge.amount.."元")
  61. GUI:setGrey(self.view.btn_buy,false)
  62. GUI:setVisible(self.view.img_get,false)
  63. else --已购买
  64. GUI:Text_setString(self.view.btn_buy,"已购买")
  65. GUI:setGrey(self.view.btn_buy,true)
  66. GUI:setVisible(self.view.img_get,true)
  67. GUI:Image_loadTexture(self.view.img_bg,"bg_recharge_fund2","Atlas/KLInvestmentFundPanel.spriteatlas")
  68. end
  69. GUI:AddOnClickEvent(self.view.btn_buy,self,self.BtnBuyClick)
  70. if #self.rewardListData > 0 then
  71. local firstData = self.rewardListData[1]
  72. GUI:Item_setItemId(self.view.item_reward,firstData.rebate[4][1])
  73. GUI:Text_setString(self.view.text_gain_num,tostring(firstData.rebate[4][2]))
  74. local rewardItemId = firstData.rebate[3][1]
  75. ---@type cfg_item_column
  76. local item = SL:GetConfig("cfg_item",rewardItemId)
  77. local returnRewardNum = firstData.rebate[1][1]
  78. local returnId = firstData.rebate[2][1]
  79. local returnNum = firstData.rebate[2][2]
  80. GUI:Item_setItemId(self.view.item_reward_top,tostring(returnId))
  81. GUI:Text_setString(self.view.text_gain_num_top,tostring(returnNum))
  82. GUI:Text_setString(self.view.text_return_num,tostring(returnRewardNum) .. "%")
  83. GUI:Text_setString(self.view.text_equip_name,item.name)
  84. end
  85. end
  86. function this:BtnBuyClick()
  87. if not self.canBuy then
  88. return
  89. end
  90. GUIUtil.SDKPay(self.currentRecharge,1)
  91. end
  92. function this:Close()
  93. end
  94. function this:RewardItemGetFun()
  95. local item = GUI:UIPanel_Open("dev/outui/MainRecharge/Item/KLFundRewardItem/KLFundRewardItemItem",nil,self,nil,true)
  96. return item
  97. end
  98. ---@param item KLFundRewardItemItem
  99. ---@param index number
  100. function this:RewardItemUpdateFun(item,index)
  101. local data = self.rewardListData[index+1]
  102. item:SetData(data)
  103. end
  104. return this