源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
2.5 KiB

преди 4 седмици
  1. MarketHorTabItem = MarketHorTabItem or BaseClass(BaseItem)
  2. local MarketHorTabItem = MarketHorTabItem
  3. function MarketHorTabItem:__init()
  4. self.base_file = "market"
  5. self.layout_file = "MarketHorTabItem"
  6. self.model = MarketModel:GetInstance()
  7. self:Load()
  8. end
  9. function MarketHorTabItem:Load_callback()
  10. self.nodes = {
  11. "btn:obj:img","btn/name:tmp","btn/red_dot:obj",
  12. }
  13. self:GetChildren(self.nodes)
  14. self:AddEvents()
  15. if self.need_refreshData then
  16. self:UpdateView()
  17. end
  18. if self.need_reselect then
  19. self:SetSelect(self.is_select)
  20. end
  21. end
  22. function MarketHorTabItem:AddEvents( )
  23. local function on_click( )
  24. if self.click_func then
  25. self.click_func(self.index)
  26. end
  27. end
  28. AddClickEvent(self.btn_obj, on_click)
  29. local function on_update_red( )
  30. self:UpdateRedDot()
  31. end
  32. self.on_update_red_id = self.model:Bind(MarketModel.ANS_MARKET_TAB_RED_DOT, on_update_red)
  33. end
  34. function MarketHorTabItem:UpdateView( )
  35. self.name_tmp.text = Trim(self.data)
  36. self:SetSelect(self.is_select)
  37. self:UpdateRedDot()
  38. end
  39. function MarketHorTabItem:UpdateRedDot( )
  40. if self.index == 2 then
  41. local red_data = self.model:GetMarketRedData()
  42. self.red_dot_obj:SetActive(red_data.guild_red or false and true)
  43. end
  44. end
  45. function MarketHorTabItem:SetData(index, data )
  46. self.index = index
  47. self.data = data
  48. if self.is_loaded then
  49. self.need_refreshData = false
  50. self:UpdateView()
  51. else
  52. self.need_refreshData = true
  53. end
  54. end
  55. function MarketHorTabItem:SetSelect( bool )
  56. self.is_select = bool
  57. if self.is_loaded then
  58. self.need_reselect = false
  59. if bool then
  60. lua_resM:setImageSprite(self, self.btn_img, "market_asset", "market_item25",true)
  61. self.name_tmp.color = ColorUtil:ConvertHexToRGBColor("#ffffff")
  62. SetTMPSharedMaterial(self.name_tmp, ShaderTools.TMPSharedMaterialType.HKYTW7OutlineBlueTab)
  63. else
  64. lua_resM:setImageSprite(self, self.btn_img, "market_asset", "market_item26",true)
  65. self.name_tmp.color = ColorUtil:ConvertHexToRGBColor("#9eb3cf")
  66. SetTMPSharedMaterial(self.name_tmp, ShaderTools.TMPSharedMaterialType.HKYTW7FFDefault)
  67. end
  68. else
  69. self.need_reselect = true
  70. end
  71. end
  72. function MarketHorTabItem:SetData(index, data )
  73. self.index = index
  74. self.data = data
  75. if self.is_loaded then
  76. self.need_refreshData = false
  77. self:UpdateView()
  78. else
  79. self.need_refreshData = true
  80. end
  81. end
  82. function MarketHorTabItem:SetClickFunc( click_func )
  83. self.click_func = click_func
  84. end
  85. function MarketHorTabItem:__delete( )
  86. if self.on_update_red_id then
  87. self.model:UnBind(self.on_update_red_id)
  88. self.on_update_red_id = nil
  89. end
  90. end