ChildRankView = ChildRankView or BaseClass(BaseView) local ChildRankView = ChildRankView function ChildRankView:__init() self.base_file = "child" self.layout_file = "ChildRankView" self.layer_name = "UI" self.destroy_imm = true self.use_background = true self.change_scene_close = true self.append_to_ctl_queue = false --是否要添加进界面堆栈 self.hide_maincancas = true --全屏界面需要放开隐藏主UI self.blur_activity_bg = true self.model = ChildModel:GetInstance() self.rank_item_list = {} self.rank_reward_item_list = {} self.load_callback = function () self:LoadSuccess() self:AddEvent() end self.open_callback = function ( ) --self:UpdateView() end self.destroy_callback = function ( ) self:DestroySuccess() end end function ChildNiceRecordView:Open(data,callBack) self.data = data self.callBack = callBack BaseView.Open(self) end function ChildRankView:LoadSuccess() local nodes = { "bg:img", "ScrollView", "ScrollView/Viewport/Content", "bg/closeBtn:obj", "right/ScrollView/Viewport/Content_reward", "none:obj", "myRank:obj", --"myRank/txt_playerName:tmp", "myRank/txt_childrName:tmp", "myRank/txt_niceNum:tmp", "myRank/txt_fight_num:tmp", "myRank/txt_no_rank:obj:tmp", -- "myRank/img_rank:obj:img", -- "myRank/txt_no_rank_none:obj", "myRank/role_icon", "con_money", --"myRank/vip_icon", "img_tip:tmp", "myRank/name_con/vip:obj:img", "myRank/name_con/name:tmp", "myRank/name_con/sex:obj:img", "helpBtn:obj", ------------------ "myRank/btn_get/lb_btn_get:tmp", "myRank/btn_get:obj:img", "myRank/btn_get/btn_get_red:obj", "myRank/lb_last_day_rank:tmp", } self:GetChildren(nodes) self.lb_btn_get_tmp.text = "领取排名奖励" -- lua_resM:setOutsideImageSprite(self, self.bg_img, GameResPath.GetViewBigBg("child_rank_view_bg"),false) local closeWin_callback = function() self:Close() end self.tabWindowComponent = UITabWindow.New(self.transform, {}, nil, closeWin_callback,self.background_wnd, nil, UITabWindow.SizeSmallNoTab, false,nil,true) self.tabWindowComponent:SetBackgroundRes("child_rank_view_bg_945_533") self.tabWindowComponent:SetTitleText("点赞排行") if not self.money_view then self.money_view = UIMoneyView.New(self.con_money) end self.money_view:SetPosition(0,0) self.money_view:SetData() self.money_view:ChangeShowFlag("smallWindow") self.img_tip_tmp.text = string.format('宝宝点赞榜每日 %s 结算', HtmlColorTxt( "04:00", ColorUtil.GREEN_DARK)) end function ChildRankView:AddEvent() self.model:Fire(ChildConst.CHILD_REQ_EVENT, 16507) -- 宝宝点赞排行榜 local function updata_child_rank_info_fun(vo) self:UpdateView(vo) end self.updata_child_rank_info = self.model:Bind(ChildConst.UPDATA_CHILD_NICE_RANK_INFO, updata_child_rank_info_fun) -- local function SUCCESS_CHILD_NICE_fun(vo) self.model:Fire(ChildConst.CHILD_REQ_EVENT, 16507) -- 成功后刷新 end self.success_child_nice = self.model:Bind(ChildConst.SUCCESS_CHILD_NICE, SUCCESS_CHILD_NICE_fun) local on_click = function ( click_obj ) if self.closeBtn_obj == click_obj then self:Close() elseif self.btn_get_obj == click_obj then if self.can_get then self.model:Fire(ChildConst.CHILD_REQ_EVENT, 16540, 2) end local child_info = self.model:GetChildInfo( ) if child_info.yest_reward == 0 then Message.show("昨日未上榜") elseif child_info.yest_reward == 2 then Message.show("已经领过了哟~") end end end AddClickEvent(self.closeBtn_obj, on_click) AddClickEvent(self.btn_get_obj, on_click) local function update_reward_func() self:UpdateRewardRed() end self:BindEvent(self.model, ChildConst.UPDATE_RANK_REWARD_RED, update_reward_func) end function ChildRankView:UpdateView(list) if TableSize(list.rank_list)<=0 then self.none_obj:SetActive(true) else self.none_obj:SetActive(false) end --生成rankitem local rank_list = list.rank_list --print("=============>>> YiRan:ChildRankView [start:87] rank_list ------------------------------------------") --PrintTable(rank_list) --print("=============>>> YiRan:ChildRankView [end] ------------------------------------------") local sort_func = function ( a, b ) return a.rank < b.rank end table.sort(rank_list, sort_func) for k,v in pairs(rank_list) do --my_rank local item = self.rank_item_list[k] if item == nil then item = ChildRankItem.New(self.Content) self.rank_item_list[k] = item end self.rank_item_list[k]:SetData(v) end --myrankitem if TableSize(list.my_rank) > 0 then local myRank = list.my_rank[1] --self.txt_playerName_tmp.text = myRank.name or "" self.txt_childrName_tmp.text = ("宝宝:".. HtmlColorTxt( myRank.child_name or "", ColorUtil.WHITE_DARK)) self.txt_niceNum_tmp.text = myRank.vote_num or "" self.txt_fight_num_tmp.text = "战力:" .. HtmlColorTxt( myRank.role_power or "", ColorUtil.WHITE_DARK) -- self.txt_no_rank_none_obj:SetActive(false) -- self.txt_no_rank_obj:SetActive(false) -- self.img_rank_obj:SetActive(true) -- if myRank.rank <= 3 then -- lua_resM:setImageSprite(self, self.img_rank_img, "child_asset", "child_rank_png"..myRank.rank) -- elseif myRank.rank > 3 then -- self.img_rank_obj:SetActive(false) -- self.txt_no_rank_none_obj:SetActive(false) -- self.txt_no_rank_obj:SetActive(true) self.txt_no_rank_tmp.text = string.format("第%s名", myRank.rank) -- end else -- self.txt_no_rank_obj:SetActive(false) -- self.img_rank_obj:SetActive(false) -- self.txt_no_rank_none_obj:SetActive(true) --self.myRank_obj:SetActive(false) self.txt_no_rank_tmp.text = "暂未上榜" self.txt_fight_num_tmp.text = "战力:" .. HtmlColorTxt( RoleManager.Instance.mainRoleInfo.fighting or "", ColorUtil.WHITE_DARK) self.txt_niceNum_tmp.text = 0 --self.txt_playerName_tmp.text = RoleManager.Instance.mainRoleInfo.name or "" self.txt_childrName_tmp.text = ("宝宝:".. HtmlColorTxt( self.model:GetChildInfo().child_name or "", ColorUtil.WHITE_DARK) ) end local RoleVo = RoleManager.Instance.mainRoleInfo --vip_icon -- if not self.mainRole_vip_item then -- self.mainRole_vip_item = RoleVipItem.New(self.vip_icon) -- end -- self.mainRole_vip_item:SetData(RoleVo.vip_flag,RoleVo.sup_vip_type) --头像 if not self.playHeadItem then self.playHeadItem = HeadRoleItem.New(self.role_icon) self.playHeadItem:SetItemSize(68,68) end local head_data = { vo = {use_bg = 2, id = RoleVo.role_id, server_id = RoleVo.ser_id, career = 0, level = RoleVo.level, sex = RoleVo.sex, turn = RoleVo.turn, board = RoleVo.dress_board, picture_ver = RoleVo.picture_ver, picture = RoleVo.picture, profile_photo_id = RoleVo.profile_photo_id}, } self.playHeadItem:SetData(head_data) lua_resM:setImageSprite(self, self.sex_img, "common_asset", RoleVo.sex == 1 and "com_boy" or "com_girl", true) if not self.vipItem then self.vipItem = RoleVipItem.New(self.vip_img.transform) end self.vipItem:SetData(RoleVo.vip_flag, RoleVo.sup_vip_type) if RoleVo.vip_flag == 0 and RoleVo.sup_vip_type == 0 then self.vip_obj:SetActive(false) else self.vip_obj:SetActive(true) end self.name_tmp.text = HtmlColorTxt( " " .. RoleVo.name, "#ffffff") SetSizeDelta(self.name, self.name_tmp.preferredWidth + 5, self.name_tmp.preferredHeight) --- local list_reward = {} for k,v in pairs( self.model:GetConfigChildVoteReward()) do table.insert(list_reward,v) end local sort_func = function ( a, b ) return a.rank_low < b.rank_low end table.sort(list_reward, sort_func) for k,v in pairs(list_reward) do local item = self.rank_reward_item_list[k] if item == nil then item = ChildRankRewardItem.New(self.Content_reward) self.rank_reward_item_list[k] = item end self.rank_reward_item_list[k]:SetData(v,k) end --[[if not self.item_list_com then self.item_list_com = self:AddUIComponent(UI.ItemListCreator) end local info = { data_list = self.model.degree_cfg, item_con = self.Content, item_class = ChildRankViewItem, item_width = 864, item_height = 160, -- space_x = 0, -- space_y = 0, start_x = 13.4, start_y = -12.5, scroll_view = self.ScrollView, create_frequency = 0.02, on_update_item = function(item, i, v) item:SetData(v) end, } self.item_list_com:UpdateItems(info) self.item_list_com:ScrollToItem(self.model.degree,-17.5)]] local last_rank = self.model:GetChildInfo().yest_rank if last_rank and last_rank ~= 0 then self.lb_last_day_rank_tmp.text = "昨日排名:" .. HtmlColorTxt( last_rank, ColorUtil.GREEN_DARK) else self.lb_last_day_rank_tmp.text = "昨日排名:未上榜" end self:UpdateRewardRed() end function ChildRankView:UpdateRewardRed( ) -- "myRank/btn_get/lb_btn_get:tmp", -- "myRank/btn_get:obj:img", -- "myRank/btn_get/btn_get_red:obj", local need_red = self.model:GetShowBabyRankReward() self.btn_get_red_obj:SetActive(need_red) if not need_red then SetTMPSharedMaterial(self.lb_btn_get_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn) else SetTMPSharedMaterial(self.lb_btn_get_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn) end SetImageGray(self.btn_get_img, not need_red) self.can_get = need_red end function ChildNiceRecordView:SetCallBack(callBack) self.callBack = callBack end function ChildRankView:DestroySuccess( ) if self.updata_child_rank_info then self.model:UnBind(self.updata_child_rank_info) self.updata_child_rank_info = nil end if self.success_child_nice then self.model:UnBind(self.success_child_nice) self.success_child_nice = nil end for i, v in ipairs(self.rank_item_list) do v:DeleteMe() v = nil end self.rank_item_list = {} for i, v in ipairs(self.rank_reward_item_list) do v:DeleteMe() v = nil end self.rank_reward_item_list = {} if self.playHeadItem then self.playHeadItem:DeleteMe() self.playHeadItem = nil end if self.money_view then self.money_view:DeleteMe() self.money_view = nil end -- if self.mainRole_vip_item then -- self.mainRole_vip_item:DeleteMe() -- self.mainRole_vip_item = nil -- end if self.tabWindowComponent then self.tabWindowComponent:DeleteMe() self.tabWindowComponent = nil end if self.vipItem then self.vipItem:DeleteMe() self.vipItem = nil end end