源战役客户端
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.

86 line
2.7 KiB

  1. -- <*
  2. -- @Author: Saber
  3. -- @Description: 社团职位任命页签节点
  4. -- *>
  5. GuildPositionAllotTabItem = GuildPositionAllotTabItem or BaseClass(BaseItem)
  6. local GuildPositionAllotTabItem = GuildPositionAllotTabItem
  7. function GuildPositionAllotTabItem:__init(parent_wnd,prefab_asset,layer_name)
  8. self.base_file = "guild"
  9. self.layout_file = "GuildPositionAllotTabItem"
  10. self.parent_wnd = parent_wnd
  11. self.layer_name = layer_name
  12. self.is_selected = false
  13. self.model = GuildModel:getInstance()
  14. self:Load()
  15. end
  16. function GuildPositionAllotTabItem:Load_callback()
  17. local nodes = {
  18. "bg:obj:img",
  19. "pos_icon:img",
  20. "selected:obj",
  21. "num:tmp",
  22. }
  23. self:GetChildren(nodes)
  24. self:AddEvents()
  25. if self.need_refreshData then
  26. self:UpdateView()
  27. end
  28. end
  29. function GuildPositionAllotTabItem:AddEvents( )
  30. local function click_event(target)
  31. if target == self.gameObject then
  32. if self.callback and self.index then
  33. self.callback(self.index)
  34. end
  35. end
  36. end
  37. AddClickEvent(self.gameObject, click_event, LuaSoundManager.SOUND_UI.SWITCH)
  38. local function update_tab_data()
  39. self:UpdateView()
  40. end
  41. self:BindEvent(self.model, GuildModel.RefreshMainViewMemberInfoEvt, update_tab_data)
  42. end
  43. function GuildPositionAllotTabItem:SetData( index, data, callback )
  44. self.index = index
  45. self.data = data
  46. self.callback = callback
  47. if self.is_loaded then
  48. self.need_refreshData = false
  49. self:UpdateView()
  50. else
  51. self.need_refreshData = true
  52. end
  53. end
  54. function GuildPositionAllotTabItem:UpdateView( )
  55. local icon_index = self.data.pos
  56. if icon_index == GuildModel.GuildPosition.Leader then -- 团长和副团公用资源,这边要兼容
  57. icon_index = GuildModel.GuildPosition.ViceLeader
  58. end
  59. lua_resM:setImageSprite(self, self.bg_img, "guild_asset", "guild_posallot_tab"..icon_index.."_pointfilter")
  60. lua_resM:setImageSprite(self, self.pos_icon_img, "guild_asset", "guild_posallot_pos"..self.data.pos, true)
  61. local cur_mem_num = self.model:GetMemberNum(self.data.pos)
  62. local mem_max_num = self.model:GetPositionNum(self.data.pos)
  63. self.num_tmp.text = string.format("<color=%s>%s</color>/%s", cur_mem_num < mem_max_num and "#2cf86f" or "#ffffff",
  64. cur_mem_num, mem_max_num)
  65. self:SetSelected(self.is_selected)
  66. end
  67. function GuildPositionAllotTabItem:SetSelected(bool)
  68. self.is_selected = bool
  69. if self.is_loaded then
  70. if self.selected_obj.activeSelf ~= self.is_selected then
  71. self.selected_obj:SetActive(self.is_selected)
  72. end
  73. end
  74. end
  75. function GuildPositionAllotTabItem:__delete( )
  76. end