源战役客户端
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

333 linhas
10 KiB

  1. ChildRankView = ChildRankView or BaseClass(BaseView)
  2. local ChildRankView = ChildRankView
  3. function ChildRankView:__init()
  4. self.base_file = "child"
  5. self.layout_file = "ChildRankView"
  6. self.layer_name = "UI"
  7. self.destroy_imm = true
  8. self.use_background = true
  9. self.change_scene_close = true
  10. self.append_to_ctl_queue = false --是否要添加进界面堆栈
  11. self.hide_maincancas = true --全屏界面需要放开隐藏主UI
  12. self.blur_activity_bg = true
  13. self.model = ChildModel:GetInstance()
  14. self.rank_item_list = {}
  15. self.rank_reward_item_list = {}
  16. self.load_callback = function ()
  17. self:LoadSuccess()
  18. self:AddEvent()
  19. end
  20. self.open_callback = function ( )
  21. --self:UpdateView()
  22. end
  23. self.destroy_callback = function ( )
  24. self:DestroySuccess()
  25. end
  26. end
  27. function ChildNiceRecordView:Open(data,callBack)
  28. self.data = data
  29. self.callBack = callBack
  30. BaseView.Open(self)
  31. end
  32. function ChildRankView:LoadSuccess()
  33. local nodes = {
  34. "bg:img",
  35. "ScrollView",
  36. "ScrollView/Viewport/Content",
  37. "bg/closeBtn:obj",
  38. "right/ScrollView/Viewport/Content_reward",
  39. "none:obj",
  40. "myRank:obj",
  41. --"myRank/txt_playerName:tmp",
  42. "myRank/txt_childrName:tmp",
  43. "myRank/txt_niceNum:tmp",
  44. "myRank/txt_fight_num:tmp",
  45. "myRank/txt_no_rank:obj:tmp",
  46. -- "myRank/img_rank:obj:img",
  47. -- "myRank/txt_no_rank_none:obj",
  48. "myRank/role_icon",
  49. "con_money",
  50. --"myRank/vip_icon",
  51. "img_tip:tmp",
  52. "myRank/name_con/vip:obj:img", "myRank/name_con/name:tmp", "myRank/name_con/sex:obj:img",
  53. "helpBtn:obj",
  54. ------------------
  55. "myRank/btn_get/lb_btn_get:tmp",
  56. "myRank/btn_get:obj:img",
  57. "myRank/btn_get/btn_get_red:obj",
  58. "myRank/lb_last_day_rank:tmp",
  59. }
  60. self:GetChildren(nodes)
  61. self.lb_btn_get_tmp.text = "领取排名奖励"
  62. -- lua_resM:setOutsideImageSprite(self, self.bg_img, GameResPath.GetViewBigBg("child_rank_view_bg"),false)
  63. local closeWin_callback = function()
  64. self:Close()
  65. end
  66. self.tabWindowComponent = UITabWindow.New(self.transform, {}, nil, closeWin_callback,self.background_wnd, nil, UITabWindow.SizeSmallNoTab, false,nil,true)
  67. self.tabWindowComponent:SetBackgroundRes("child_rank_view_bg_945_533")
  68. self.tabWindowComponent:SetTitleText("点赞排行")
  69. if not self.money_view then
  70. self.money_view = UIMoneyView.New(self.con_money)
  71. end
  72. self.money_view:SetPosition(0,0)
  73. self.money_view:SetData()
  74. self.money_view:ChangeShowFlag("smallWindow")
  75. self.img_tip_tmp.text = string.format('宝宝点赞榜每日 %s 结算', HtmlColorTxt( "04:00", ColorUtil.GREEN_DARK))
  76. end
  77. function ChildRankView:AddEvent()
  78. self.model:Fire(ChildConst.CHILD_REQ_EVENT, 16507) -- 宝宝点赞排行榜
  79. local function updata_child_rank_info_fun(vo)
  80. self:UpdateView(vo)
  81. end
  82. self.updata_child_rank_info = self.model:Bind(ChildConst.UPDATA_CHILD_NICE_RANK_INFO, updata_child_rank_info_fun) --
  83. local function SUCCESS_CHILD_NICE_fun(vo)
  84. self.model:Fire(ChildConst.CHILD_REQ_EVENT, 16507) -- 成功后刷新
  85. end
  86. self.success_child_nice = self.model:Bind(ChildConst.SUCCESS_CHILD_NICE, SUCCESS_CHILD_NICE_fun)
  87. local on_click = function ( click_obj )
  88. if self.closeBtn_obj == click_obj then
  89. self:Close()
  90. elseif self.btn_get_obj == click_obj then
  91. if self.can_get then
  92. self.model:Fire(ChildConst.CHILD_REQ_EVENT, 16540, 2)
  93. end
  94. local child_info = self.model:GetChildInfo( )
  95. if child_info.yest_reward == 0 then
  96. Message.show("昨日未上榜")
  97. elseif child_info.yest_reward == 2 then
  98. Message.show("已经领过了哟~")
  99. end
  100. end
  101. end
  102. AddClickEvent(self.closeBtn_obj, on_click)
  103. AddClickEvent(self.btn_get_obj, on_click)
  104. local function update_reward_func()
  105. self:UpdateRewardRed()
  106. end
  107. self:BindEvent(self.model, ChildConst.UPDATE_RANK_REWARD_RED, update_reward_func)
  108. end
  109. function ChildRankView:UpdateView(list)
  110. if TableSize(list.rank_list)<=0 then
  111. self.none_obj:SetActive(true)
  112. else
  113. self.none_obj:SetActive(false)
  114. end
  115. --生成rankitem
  116. local rank_list = list.rank_list
  117. --print("=============>>> YiRan:ChildRankView [start:87] rank_list ------------------------------------------")
  118. --PrintTable(rank_list)
  119. --print("=============>>> YiRan:ChildRankView [end] ------------------------------------------")
  120. local sort_func = function ( a, b )
  121. return a.rank < b.rank
  122. end
  123. table.sort(rank_list, sort_func)
  124. for k,v in pairs(rank_list) do --my_rank
  125. local item = self.rank_item_list[k]
  126. if item == nil then
  127. item = ChildRankItem.New(self.Content)
  128. self.rank_item_list[k] = item
  129. end
  130. self.rank_item_list[k]:SetData(v)
  131. end
  132. --myrankitem
  133. if TableSize(list.my_rank) > 0 then
  134. local myRank = list.my_rank[1]
  135. --self.txt_playerName_tmp.text = myRank.name or ""
  136. self.txt_childrName_tmp.text = ("宝宝:".. HtmlColorTxt( myRank.child_name or "", ColorUtil.WHITE_DARK))
  137. self.txt_niceNum_tmp.text = myRank.vote_num or ""
  138. self.txt_fight_num_tmp.text = "战力:" .. HtmlColorTxt( myRank.role_power or "", ColorUtil.WHITE_DARK)
  139. -- self.txt_no_rank_none_obj:SetActive(false)
  140. -- self.txt_no_rank_obj:SetActive(false)
  141. -- self.img_rank_obj:SetActive(true)
  142. -- if myRank.rank <= 3 then
  143. -- lua_resM:setImageSprite(self, self.img_rank_img, "child_asset", "child_rank_png"..myRank.rank)
  144. -- elseif myRank.rank > 3 then
  145. -- self.img_rank_obj:SetActive(false)
  146. -- self.txt_no_rank_none_obj:SetActive(false)
  147. -- self.txt_no_rank_obj:SetActive(true)
  148. self.txt_no_rank_tmp.text = string.format("第%s名", myRank.rank)
  149. -- end
  150. else
  151. -- self.txt_no_rank_obj:SetActive(false)
  152. -- self.img_rank_obj:SetActive(false)
  153. -- self.txt_no_rank_none_obj:SetActive(true)
  154. --self.myRank_obj:SetActive(false)
  155. self.txt_no_rank_tmp.text = "暂未上榜"
  156. self.txt_fight_num_tmp.text = "战力:" .. HtmlColorTxt( RoleManager.Instance.mainRoleInfo.fighting or "", ColorUtil.WHITE_DARK)
  157. self.txt_niceNum_tmp.text = 0
  158. --self.txt_playerName_tmp.text = RoleManager.Instance.mainRoleInfo.name or ""
  159. self.txt_childrName_tmp.text = ("宝宝:".. HtmlColorTxt( self.model:GetChildInfo().child_name or "", ColorUtil.WHITE_DARK) )
  160. end
  161. local RoleVo = RoleManager.Instance.mainRoleInfo
  162. --vip_icon
  163. -- if not self.mainRole_vip_item then
  164. -- self.mainRole_vip_item = RoleVipItem.New(self.vip_icon)
  165. -- end
  166. -- self.mainRole_vip_item:SetData(RoleVo.vip_flag,RoleVo.sup_vip_type)
  167. --头像
  168. if not self.playHeadItem then
  169. self.playHeadItem = HeadRoleItem.New(self.role_icon)
  170. self.playHeadItem:SetItemSize(68,68)
  171. end
  172. local head_data = {
  173. vo = {use_bg = 2, id = RoleVo.role_id, server_id = RoleVo.ser_id, career = 0,
  174. level = RoleVo.level, sex = RoleVo.sex, turn = RoleVo.turn, board = RoleVo.dress_board,
  175. picture_ver = RoleVo.picture_ver, picture = RoleVo.picture, profile_photo_id = RoleVo.profile_photo_id},
  176. }
  177. self.playHeadItem:SetData(head_data)
  178. lua_resM:setImageSprite(self, self.sex_img, "common_asset", RoleVo.sex == 1 and "com_boy" or "com_girl", true)
  179. if not self.vipItem then
  180. self.vipItem = RoleVipItem.New(self.vip_img.transform)
  181. end
  182. self.vipItem:SetData(RoleVo.vip_flag, RoleVo.sup_vip_type)
  183. if RoleVo.vip_flag == 0 and RoleVo.sup_vip_type == 0 then
  184. self.vip_obj:SetActive(false)
  185. else
  186. self.vip_obj:SetActive(true)
  187. end
  188. self.name_tmp.text = HtmlColorTxt( " " .. RoleVo.name, "#ffffff")
  189. SetSizeDelta(self.name, self.name_tmp.preferredWidth + 5, self.name_tmp.preferredHeight)
  190. ---
  191. local list_reward = {}
  192. for k,v in pairs( self.model:GetConfigChildVoteReward()) do
  193. table.insert(list_reward,v)
  194. end
  195. local sort_func = function ( a, b )
  196. return a.rank_low < b.rank_low
  197. end
  198. table.sort(list_reward, sort_func)
  199. for k,v in pairs(list_reward) do
  200. local item = self.rank_reward_item_list[k]
  201. if item == nil then
  202. item = ChildRankRewardItem.New(self.Content_reward)
  203. self.rank_reward_item_list[k] = item
  204. end
  205. self.rank_reward_item_list[k]:SetData(v,k)
  206. end
  207. --[[if not self.item_list_com then
  208. self.item_list_com = self:AddUIComponent(UI.ItemListCreator)
  209. end
  210. local info = {
  211. data_list = self.model.degree_cfg,
  212. item_con = self.Content,
  213. item_class = ChildRankViewItem,
  214. item_width = 864,
  215. item_height = 160,
  216. -- space_x = 0,
  217. -- space_y = 0,
  218. start_x = 13.4,
  219. start_y = -12.5,
  220. scroll_view = self.ScrollView,
  221. create_frequency = 0.02,
  222. on_update_item = function(item, i, v)
  223. item:SetData(v)
  224. end,
  225. }
  226. self.item_list_com:UpdateItems(info)
  227. self.item_list_com:ScrollToItem(self.model.degree,-17.5)]]
  228. local last_rank = self.model:GetChildInfo().yest_rank
  229. if last_rank and last_rank ~= 0 then
  230. self.lb_last_day_rank_tmp.text = "昨日排名:" .. HtmlColorTxt( last_rank, ColorUtil.GREEN_DARK)
  231. else
  232. self.lb_last_day_rank_tmp.text = "昨日排名:未上榜"
  233. end
  234. self:UpdateRewardRed()
  235. end
  236. function ChildRankView:UpdateRewardRed( )
  237. -- "myRank/btn_get/lb_btn_get:tmp",
  238. -- "myRank/btn_get:obj:img",
  239. -- "myRank/btn_get/btn_get_red:obj",
  240. local need_red = self.model:GetShowBabyRankReward()
  241. self.btn_get_red_obj:SetActive(need_red)
  242. if not need_red then
  243. SetTMPSharedMaterial(self.lb_btn_get_tmp,
  244. ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
  245. else
  246. SetTMPSharedMaterial(self.lb_btn_get_tmp,
  247. ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
  248. end
  249. SetImageGray(self.btn_get_img, not need_red)
  250. self.can_get = need_red
  251. end
  252. function ChildNiceRecordView:SetCallBack(callBack)
  253. self.callBack = callBack
  254. end
  255. function ChildRankView:DestroySuccess( )
  256. if self.updata_child_rank_info then
  257. self.model:UnBind(self.updata_child_rank_info)
  258. self.updata_child_rank_info = nil
  259. end
  260. if self.success_child_nice then
  261. self.model:UnBind(self.success_child_nice)
  262. self.success_child_nice = nil
  263. end
  264. for i, v in ipairs(self.rank_item_list) do
  265. v:DeleteMe()
  266. v = nil
  267. end
  268. self.rank_item_list = {}
  269. for i, v in ipairs(self.rank_reward_item_list) do
  270. v:DeleteMe()
  271. v = nil
  272. end
  273. self.rank_reward_item_list = {}
  274. if self.playHeadItem then
  275. self.playHeadItem:DeleteMe()
  276. self.playHeadItem = nil
  277. end
  278. if self.money_view then
  279. self.money_view:DeleteMe()
  280. self.money_view = nil
  281. end
  282. -- if self.mainRole_vip_item then
  283. -- self.mainRole_vip_item:DeleteMe()
  284. -- self.mainRole_vip_item = nil
  285. -- end
  286. if self.tabWindowComponent then
  287. self.tabWindowComponent:DeleteMe()
  288. self.tabWindowComponent = nil
  289. end
  290. if self.vipItem then
  291. self.vipItem:DeleteMe()
  292. self.vipItem = nil
  293. end
  294. end