KLShowStallItem.lua 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. ---@class KLTradeSalesItem:UIKmlLuaPanelBase
  2. ---@field view KLTradeSalesItemView
  3. ---@field goodsItem KLTradeGoodsItem
  4. ---@field goods boolean
  5. ---@field goodsInfo
  6. local KLTradeSalesItem = class(UIKmlLuaPanelBase)
  7. local this = KLTradeSalesItem
  8. ---创建时调用一次
  9. function this:Init()
  10. end
  11. ---注册UI事件和服务器消息
  12. function this:RegistEvents()
  13. end
  14. function this:UpdateUI(data)
  15. if table.count(data) > 0 then
  16. GUI:setVisible(self.view.null_panel, false)
  17. GUI:setVisible(self.view.have_panel, true)
  18. self.goods = true
  19. if not GUI:IsWebGLAsync() then
  20. if not self.goodsItem then
  21. self.goodsItem = GUI:UIPanel_Open("dev/outui/Stall/Item/KLShowStallGoodsItem/KLShowStallGoodsItem", self.view.have_panel, self, nil, true)
  22. end
  23. self.goodsInfo = data
  24. self.goodsItem:UpdateData(data)
  25. GUI:AddOnClickEvent(self.goodsItem.view.btn_goods_item, self, self.Click)
  26. self.tickTimer = SL:Schedule(self.tickTimer, 0, 1, -1, function()
  27. return self.goodsItem:Tick()
  28. end)
  29. else
  30. if self.goodsItem then
  31. self.goodsInfo = data
  32. self.goodsItem:UpdateData(data)
  33. GUI:AddOnClickEvent(self.goodsItem.view.btn_goods_item, self, self.Click)
  34. self.tickTimer = SL:Schedule(self.tickTimer, 0, 1, -1, function()
  35. return self.goodsItem:Tick()
  36. end)
  37. else
  38. self.goodsInfo = data
  39. GUI:UIPanel_Open("dev/outui/Stall/Item/KLShowStallGoodsItem/KLShowStallGoodsItem", self.view.have_panel, self, nil, true,
  40. function ( tempUI )
  41. self.goodsItem = tempUI
  42. self.goodsItem:UpdateData(data)
  43. GUI:AddOnClickEvent(self.goodsItem.view.btn_goods_item, self, self.Click)
  44. self.tickTimer = SL:Schedule(self.tickTimer, 0, 1, -1, function()
  45. return self.goodsItem:Tick()
  46. end)
  47. end)
  48. end
  49. end
  50. else
  51. GUI:setVisible(self.view.null_panel, false)
  52. GUI:setVisible(self.view.have_panel, false)
  53. end
  54. end
  55. function this:HideItem()
  56. GUI:setVisible(self.view.null_panel, false)
  57. GUI:setVisible(self.view.have_panel, false)
  58. end
  59. function this:Remove()
  60. if self.tickTimer then
  61. SL:UnSchedule(self.tickTimer)
  62. self.tickTimer = nil
  63. end
  64. self.goods = false
  65. self.goodsInfo = {}
  66. -- GUI:setVisible(self.view.null_panel, false)
  67. -- GUI:setVisible(self.view.have_panel, false)
  68. end
  69. function this:IsGoods()
  70. return self.goods
  71. end
  72. function this:Click()
  73. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_TRADE_GOODS_INFO, {self.goodsInfo.itemid, self.goodsInfo.ownid })
  74. GUI:UIPanel_Open("dev/outui/Trade/Panel/KLTradeBuy/KLTradeBuyPanel", nil, nil, self.goodsInfo)
  75. end
  76. ---创建或者刷新界面数据时调用
  77. function this:Refresh()
  78. self.goods = false
  79. self.goodsItem = nil
  80. end
  81. function this:Close()
  82. if self.tickTimer then
  83. SL:UnSchedule(self.tickTimer)
  84. self.tickTimer = nil
  85. end
  86. if self.goodsItem then
  87. end
  88. self.goodsItem = GUI:UIPanel_Close("dev/outui/Trade/Item/KLTradeGoods/KLTradeGoodsItem", self.goodsItem)
  89. end
  90. return this