源战役客户端
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

189 řádky
7.4 KiB

před 4 týdny
  1. MarketVerTabItem = MarketVerTabItem or BaseClass(BaseItem)
  2. local MarketVerTabItem = MarketVerTabItem
  3. function MarketVerTabItem:__init()
  4. self.base_file = "market"
  5. self.layout_file = "MarketVerTabItem"
  6. self.model = MarketModel:GetInstance()
  7. self.view_type = MarketModel.VER_TAB_TYPE.WORLD_TYPE
  8. self:Load()
  9. end
  10. function MarketVerTabItem:Load_callback()
  11. self.nodes = {
  12. "tab_con:obj","sub_con:obj","tab_con/tab_text:tmp","sub_con/sub_text:tmp",
  13. "sub_con/sub_bg:obj","tab_con/arrow","tab_con/tab_bg:img",
  14. }
  15. self:GetChildren(self.nodes)
  16. self:AddEvents()
  17. if self.need_refreshData then
  18. self:UpdateView()
  19. end
  20. if self.need_refresh_select then
  21. self:SetSelect(self.select_sell_type, self.select_sell_sub_type)
  22. end
  23. end
  24. function MarketVerTabItem:AddEvents( )
  25. function on_click( target )
  26. local delay_fun = function()--一秒内只能点1次
  27. if self._use_delete_method then
  28. return
  29. end
  30. if target == self.tab_con_obj then
  31. if self.view_type == MarketModel.VER_TAB_TYPE.WORLD_TYPE or self.view_type == MarketModel.VER_TAB_TYPE.GUILD_TYPE then
  32. local data = self.data[1] or self.data[0]
  33. if self.call_back then
  34. self.call_back(data, data.sell_type, nil)--上层就直接传空的回去
  35. end
  36. elseif self.view_type == MarketModel.VER_TAB_TYPE.ATTENTION_TYPE then
  37. local data = self.data[1][1]
  38. if self.call_back then
  39. self.call_back(data, data.sell_category, nil)--上层就直接传空的回去
  40. end
  41. end
  42. elseif target == self.sub_con_obj then
  43. if self.view_type == MarketModel.VER_TAB_TYPE.WORLD_TYPE or self.view_type == MarketModel.VER_TAB_TYPE.GUILD_TYPE then
  44. if self.call_back then
  45. self.call_back(self.data, self.data.sell_type, self.data.sell_sub_type)
  46. end
  47. elseif self.view_type == MarketModel.VER_TAB_TYPE.ATTENTION_TYPE then
  48. if self.data.is_zero == true then
  49. self.call_back(self.data, self.data.sell_type, self.data.sell_sub_type)
  50. else
  51. local data = self.data[1]
  52. if self.call_back then
  53. self.call_back(data, data.sell_category, data.sell_subcategory)
  54. end
  55. end
  56. end
  57. end
  58. end
  59. TimeManager.GetInstance():StartDalayTime("MarketVerTabItemBtnClick",0.1,delay_fun)
  60. end
  61. AddClickEvent(self.tab_con_obj, on_click)
  62. AddClickEvent(self.sub_con_obj, on_click)
  63. end
  64. function MarketVerTabItem:UpdateView( )
  65. if not self.data then
  66. return
  67. end
  68. if self.data.is_tab then
  69. self.tab_con_obj:SetActive(true)
  70. self.sub_con_obj:SetActive(false)
  71. if self.view_type == MarketModel.VER_TAB_TYPE.WORLD_TYPE or self.view_type == MarketModel.VER_TAB_TYPE.GUILD_TYPE then
  72. if self.view_type == MarketModel.VER_TAB_TYPE.GUILD_TYPE then
  73. if TableSize(self.data[1]) == 0 then
  74. self.tab_text_tmp.text = "正在出售"
  75. else
  76. local data = self.data[1] or self.data[0]
  77. self.tab_text_tmp.text = self.model:GetMarketTabNameBuySellType(data.sell_type)
  78. end
  79. else
  80. local data = self.data[1]
  81. self.tab_text_tmp.text = self.model:GetMarketTabNameBuySellType(data.sell_type)
  82. end
  83. elseif self.view_type == MarketModel.VER_TAB_TYPE.ATTENTION_TYPE then
  84. local data = self.data[1]
  85. if TableSize(data) > 0 then
  86. self.tab_text_tmp.text = self.model:GetMarketTabNameBuySellType(data[1].sell_category)
  87. else
  88. self.tab_text_tmp.text = "暂无分类"
  89. end
  90. end
  91. else
  92. self.tab_con_obj:SetActive(false)
  93. self.sub_con_obj:SetActive(true)
  94. if self.view_type == MarketModel.VER_TAB_TYPE.WORLD_TYPE or self.view_type == MarketModel.VER_TAB_TYPE.GUILD_TYPE then
  95. self.sub_text_tmp.text = Trim(self.data.name)
  96. elseif self.view_type == MarketModel.VER_TAB_TYPE.ATTENTION_TYPE then
  97. if self.data.is_zero then--如果是第一个 就默认是全部
  98. self.sub_text_tmp.text = Trim(self.data.name)
  99. else
  100. local data = self.data[1]
  101. self.sub_text_tmp.text = self.model:GetMarketTabNameBuySellSubType(data.sell_category, data.sell_subcategory)
  102. end
  103. else
  104. end
  105. end
  106. self:SetSelect(self.select_sell_type, self.select_sell_sub_type)
  107. end
  108. function MarketVerTabItem:SetData( data , index, select_sell_type, select_sell_sub_type, view_type)
  109. self.data = data
  110. self.index = index
  111. self.select_sell_type = select_sell_type
  112. self.select_sell_sub_type = select_sell_sub_type
  113. self.view_type = view_type or self.view_type
  114. if self.is_loaded then
  115. self.need_refreshData = false
  116. self:UpdateView()
  117. else
  118. self.need_refreshData = true
  119. end
  120. end
  121. function MarketVerTabItem:SetCallBackFunc( call_back )
  122. self.call_back = call_back
  123. end
  124. function MarketVerTabItem:SetSelect( index, sub_index )
  125. self.select_sell_type = index
  126. self.select_sell_sub_type = sub_index
  127. if self.is_loaded then
  128. self.need_refresh_select = false
  129. if self.data.is_tab then
  130. if self.view_type == MarketModel.VER_TAB_TYPE.WORLD_TYPE or self.view_type == MarketModel.VER_TAB_TYPE.GUILD_TYPE then
  131. local data = self.data[1] or self.data[0]
  132. if data.sell_type == self.select_sell_type then
  133. self.arrow.localRotation = Quaternion.Euler(0,0,0)
  134. lua_resM:setImageSprite(self, self.tab_bg_img, "market_asset", "market_icon5")
  135. self.tab_text_tmp.color = ColorUtil:ConvertHexToRGBColor("ffffff")
  136. SetTMPSharedMaterial(self.tab_text_tmp, ShaderTools.TMPSharedMaterialType.HKYTW7OutlineBlueTab)
  137. else
  138. self.arrow.localRotation = Quaternion.Euler(0,0,180)
  139. lua_resM:setImageSprite(self, self.tab_bg_img, "market_asset", "market_icon4")
  140. self.tab_text_tmp.color = ColorUtil:ConvertHexToRGBColor("7d91ac")
  141. SetTMPSharedMaterial(self.tab_text_tmp, ShaderTools.TMPSharedMaterialType.HKYTW7FFDefault)
  142. end
  143. elseif self.view_type == MarketModel.VER_TAB_TYPE.ATTENTION_TYPE then
  144. local data = self.data[1]
  145. if data[1].sell_category == self.select_sell_type then
  146. self.arrow.localRotation = Quaternion.Euler(0,0,0)
  147. lua_resM:setImageSprite(self, self.tab_bg_img, "market_asset", "market_icon5")
  148. self.tab_text_tmp.color = ColorUtil:ConvertHexToRGBColor("ffffff")
  149. SetTMPSharedMaterial(self.tab_text_tmp, ShaderTools.TMPSharedMaterialType.HKYTW7OutlineBlueTab)
  150. else
  151. self.arrow.localRotation = Quaternion.Euler(0,0,180)
  152. lua_resM:setImageSprite(self, self.tab_bg_img, "market_asset", "market_icon4")
  153. self.tab_text_tmp.color = ColorUtil:ConvertHexToRGBColor("7d91ac")
  154. SetTMPSharedMaterial(self.tab_text_tmp, ShaderTools.TMPSharedMaterialType.HKYTW7FFDefault)
  155. end
  156. end
  157. else
  158. if self.view_type == MarketModel.VER_TAB_TYPE.WORLD_TYPE or self.view_type == MarketModel.VER_TAB_TYPE.GUILD_TYPE then
  159. self.sub_bg_obj:SetActive(self.data.sell_sub_type == self.select_sell_sub_type)
  160. self.sub_text_tmp.color = self.data.sell_sub_type == self.select_sell_sub_type and ColorUtil:ConvertHexToRGBColor("ffffff") or ColorUtil:ConvertHexToRGBColor("7d91ac")
  161. elseif self.view_type == MarketModel.VER_TAB_TYPE.ATTENTION_TYPE then
  162. if self.data.is_zero == true then
  163. self.sub_bg_obj:SetActive(self.data.sell_sub_type == self.select_sell_sub_type)
  164. self.sub_text_tmp.color = self.data.sell_sub_type == self.select_sell_sub_type and ColorUtil:ConvertHexToRGBColor("ffffff") or ColorUtil:ConvertHexToRGBColor("7d91ac")
  165. else
  166. local data = self.data[1]
  167. self.sub_bg_obj:SetActive(data.sell_subcategory == self.select_sell_sub_type)
  168. self.sub_text_tmp.color = data.sell_subcategory == self.select_sell_sub_type and ColorUtil:ConvertHexToRGBColor("ffffff") or ColorUtil:ConvertHexToRGBColor("7d91ac")
  169. end
  170. end
  171. end
  172. else
  173. self.need_refresh_select = true
  174. end
  175. end
  176. function MarketVerTabItem:__delete( )
  177. end