KLShapeShiftCardBuyPanel.lua 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. ---@class KLShapeShiftCardBuyPanel:UIKmlLuaPanelBase
  2. ---@field view KLShapeShiftCardBuyPanelView
  3. local KLShapeShiftCardBuyPanel = class(UIKmlLuaPanelBase)
  4. local this =KLShapeShiftCardBuyPanel
  5. function this:AsyncLoadUI()
  6. end
  7. ---创建时调用一次
  8. function this:Init()
  9. ---@type cfg_card_shop_column
  10. self.itemInfo = self.args
  11. self.consumeCfg = tonumber(self.itemInfo.exchangeConsume[1])
  12. self.consumeCost = tonumber(self.itemInfo.exchangeConsume[2])
  13. EquipFunc.tipsHeight = 0
  14. SL:OpenTips("mall", tonumber(self.itemInfo.exchangeAdd[1]),nil,nil,nil,{hideMask=true})
  15. end
  16. ---注册UI事件和服务器消息
  17. function this:RegistEvents()
  18. GUI:AddOnClickEvent(self.view.ClickMask, self, self.ClickMaskOnClick)
  19. GUI:AddOnClickEvent(self.view.BtnBuy, self, self.BtnBuyOnClick)
  20. GUI:Input_SetOnEndEdit(self.view.InputFieldLevel, self, self.InputFieldLevelOnEndEdit)
  21. GUI:AddOnClickEvent(self.view.BtnLevelAdd, self, self.BtnLevelAddOnClick)
  22. GUI:AddOnClickEvent(self.view.BtnLevelMinus, self, self.BtnLevelMinusOnClick)
  23. end
  24. ---界面显示时调用一次
  25. function this:Show()
  26. end
  27. ---创建或者刷新界面数据时调用
  28. function this:Refresh()
  29. GUI:Text_setString(self.view.InputFieldLevel, "1")
  30. self:RefreshTotalPrice()
  31. if EquipFunc.tipsHeight and EquipFunc.tipsHeight ~= 0 then
  32. self:UpdateHeight(EquipFunc.tipsHeight)
  33. end
  34. end
  35. function this:RefreshTotalPrice()
  36. local text = GUI:Text_getString(self.view.InputFieldLevel)
  37. local inputNum = tonumber(text)
  38. local totalPrice = self.consumeCost * inputNum
  39. GUI:Text_setString(self.view.TextTotalPrice, tostring(totalPrice))
  40. local ownCount = SL:GetBagItemCount(self.consumeCfg)
  41. GUI:Text_setTextColor(self.view.TextTotalPrice,ownCount >= totalPrice and "#1add1f" or "#ff2323")
  42. GUI:Item_setItemId(self.view.item_tokens, self.consumeCfg)
  43. --GUI:Image_loadTexture(self.view.icon_money,tostring(self.consumeCfg),"Atlas/UIBagPanel.spriteatlas")
  44. end
  45. function this:BtnBuyOnClick()
  46. local coin = SL:GetBagItemCount(self.consumeCfg)
  47. local count = tonumber(GUI:Text_getString(self.view.InputFieldLevel))
  48. if coin < self.consumeCost * count then
  49. SL:TipMessage( SL:GetConfig('cfg_string',269).text,1, NoticeType.NoticeMid )--货币不足
  50. else
  51. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_TRANSFER_CARD_EXCHANGE, { self.itemInfo.id, count })
  52. self:ClickMaskOnClick()
  53. end
  54. end
  55. function this:InputFieldLevelOnEndEdit(_, _, eventData)
  56. local text = eventData[1]
  57. GUI:Text_setString(self.view.InputFieldLevel, tostring(text))
  58. self:CheckInput()
  59. self:RefreshTotalPrice()
  60. end
  61. function this:BtnLevelAddOnClick()
  62. local inputNum = tonumber(GUI:Text_getString(self.view.InputFieldLevel))
  63. GUI:Text_setString(self.view.InputFieldLevel, tostring(inputNum + 1))
  64. self:CheckInput()
  65. self:RefreshTotalPrice()
  66. end
  67. function this:BtnLevelMinusOnClick()
  68. local inputNum = tonumber(GUI:Text_getString(self.view.InputFieldLevel))
  69. inputNum = inputNum - 1
  70. GUI:Text_setString(self.view.InputFieldLevel, tostring(inputNum))
  71. self:CheckInput()
  72. self:RefreshTotalPrice()
  73. end
  74. function this:CheckInput()
  75. local inputStr = GUI:Text_getString(self.view.InputFieldLevel)
  76. local inputNum = tonumber(inputStr)
  77. if not inputNum then
  78. GUI:Text_setString(self.view.InputFieldLevel, "1")
  79. self:RefreshTotalPrice()
  80. return
  81. end
  82. local maxCount = 99
  83. if inputNum >= maxCount then
  84. GUI:Text_setString(self.view.InputFieldLevel, tostring(maxCount))
  85. self:RefreshTotalPrice()
  86. return
  87. end
  88. if inputNum <= 0 then
  89. GUI:Text_setString(self.view.InputFieldLevel, tostring(maxCount))
  90. self:RefreshTotalPrice()
  91. return
  92. end
  93. end
  94. function this:UpdateHeight(bg_height)
  95. local add = (bg_height-156) / 2
  96. GUI:setPositionY(self.view.root,add)
  97. end
  98. function this:ClickMaskOnClick()
  99. GUI:UIPanel_Close("dev/outui/ShapeShiftCard/Panel/KLShapeShiftCardBuy/KLShapeShiftCardBuyPanel")
  100. end
  101. function this:Close()
  102. SL:CloseTips()
  103. GUI:UIPanel_Close("dev/ui/Tips/Panel/KLIUItemTipsOther/KLIUItemTipsOtherPanel")
  104. end
  105. return this