KLTradeUnionGoodsItem.lua 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. ---@class KLTradeUnionGoodsItem:UIKmlLuaPanelBase
  2. ---@field view KLTradeUnionGoodsItemView
  3. local KLTradeUnionGoodsItem = class(UIKmlLuaPanelBase)
  4. local this =KLTradeUnionGoodsItem
  5. ---创建时调用一次
  6. function this:Init()
  7. self.updateID = SL:Schedule(self.updateID,0,1,-1,function()
  8. self:Tick()
  9. end)
  10. end
  11. ---注册UI事件和服务器消息
  12. function this:RegistEvents()
  13. GUI:AddOnClickEvent(self.view.btn_item_tips,self,self.BtnItemTipsOnClick)
  14. GUI:AddOnClickEvent(self.view.btn_bidding_price,self,self.BtnBiddingPriceOnClick)
  15. GUI:AddOnClickEvent(self.view.btn_buy,self,self.BtnBuyOnClick)
  16. end
  17. function this:BtnBuyOnClick()
  18. SL:OpenTips(nil,self.curItemId,nil,nil,nil,{hideMask=true})
  19. SL:LogError("self.oneprice "..self.oneprice)
  20. GUI:UIPanel_Open("dev/outui/Trade/Panel/KLTradeUnionBuy/KLTradeUnionBuyPanel",nil,nil,
  21. {moneyType = self.moneyType,price = 0,isBidding=false,id=self.curId,oneprice = self.oneprice})
  22. end
  23. function this:BtnBiddingPriceOnClick()
  24. SL:OpenTips(nil,self.curItemId,nil,nil,nil,{hideMask=true})
  25. SL:LogError("self.price "..self.price)
  26. GUI:UIPanel_Open("dev/outui/Trade/Panel/KLTradeUnionBuy/KLTradeUnionBuyPanel",nil,nil,
  27. {moneyType = self.moneyType,increment = self.increment,price = self.price,isBidding=true,id=self.curId})
  28. end
  29. function this:BtnItemTipsOnClick()
  30. if not self.curItemId then
  31. return
  32. end
  33. --SL:OpenTips(nil,self.curItemId)
  34. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_WAR_ALLIANCE_GOODS_DETAIL,{itemId=self.curId,type=self.type})
  35. end
  36. ---创建或者刷新界面数据时调用
  37. function this:Refresh()
  38. end
  39. function this:Close()
  40. self.endTime = nil
  41. if self.updateID then
  42. SL:UnSchedule(self.updateID)
  43. self.updateID = nil
  44. end
  45. end
  46. ---@class KLTradeUnionGoodsItemData
  47. ---@field itemcfgid string
  48. ---@field endtime string
  49. ---@field price string
  50. ---@field cointype string
  51. ---@field itemid number
  52. ---@field oneprice number
  53. ---@field increment number
  54. ---@field state string
  55. ---@param data KLTradeUnionGoodsItemData
  56. function this:SetData(data)
  57. local itemId = data.itemcfgid
  58. GUI:Item_setItemId(self.view.item_award,itemId)
  59. GUI:Item_UpdataData(self.view.item_award,{itemcount=data.count})
  60. ---@type cfg_item_column
  61. local item = SL:GetConfig("cfg_item",itemId)
  62. GUI:Text_setString(self.view.text_name,item.name)
  63. local coinType = tonumber(data.coinType)
  64. local ownMoney = SL:GetBagItemCount(coinType)
  65. GUI:Text_setString(self.view.text_cur_price,tostring(data.price))
  66. GUI:Text_setTextColor(self.view.text_cur_price,ownMoney >= data.price and "#1ADD1F" or "#FF2323")
  67. GUI:Image_loadTexture(self.view.img_money_icon_cur,self:GetCoinIcon(coinType),"Atlas/UIBagPanel.spriteatlas")
  68. GUI:Image_loadTexture(self.view.img_money_icon_buy,self:GetCoinIcon(coinType),"Atlas/UIBagPanel.spriteatlas")
  69. GUI:Text_setString(self.view.text_buy_price,tostring(data.oneprice))
  70. GUI:Text_setTextColor(self.view.text_buy_price,ownMoney >= data.oneprice and "#1ADD1F" or "#FF2323")
  71. --GUI:Text_setString(self.view.text_state,data.state)
  72. self.curItemId = itemId
  73. self.curId = data.id
  74. self.moneyType = tonumber(data.coinType)
  75. self.endTime = tonumber(data.endTime)
  76. self.price = tonumber(data.price)
  77. self.oneprice = data.oneprice
  78. self.increment = data.auction
  79. self.type = data.type
  80. self.data = data
  81. self:Tick()
  82. end
  83. function this:GetCoinIcon(coinType)
  84. if coinType == 10010001 then
  85. return "img_bag_01"
  86. elseif coinType == 10020001 then
  87. return "img_bag_02"
  88. elseif coinType == 10030001 then
  89. return "img_bag_03"
  90. elseif coinType == 10040001 then
  91. return "img_bag_04"
  92. end
  93. end
  94. function this:Tick()
  95. if not self.endTime then
  96. return
  97. end
  98. if not self.view then
  99. return
  100. end
  101. local timeLeft = (self.endTime - SL:GetMetaValue(EMetaVarGetKey.SERVER_TIME)) // 1000
  102. if timeLeft >= 0 then
  103. local timeLeftStr = SL:SecondToHMS(timeLeft,true)
  104. GUI:Text_setString(self.view.text_time,timeLeftStr)
  105. else
  106. GUI:Text_setString(self.view.text_time,"")
  107. return self.data
  108. end
  109. end
  110. return this