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

334 lines
10 KiB

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