源战役客户端
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 

149 rindas
3.9 KiB

--快速密聊界面
CecretView = CecretView or BaseClass(BaseView)
function CecretView:__init()
self.base_file = "chat"
self.layout_file = "cecretView"
self.layer_name = "UI"
self.use_background = true
self.click_bg_toClose = true
self.model = ChatModel:getInstance()
self.memberVo = nil
self.friendVo = nil
self.cur_selected_index = 0
self.tabbar_list = {}
self.cecret_item_list = {}
self.load_callback = function ()
self:LoadSuccess()
self:InitEvent()
self:SwitchBar(1)
end
self.destroy_callback = function ()
self:Clear()
end
end
-- function cecretView:Close()
-- BaseView:Close(self)
-- end
function CecretView:Clear()
for i,item in ipairs(self.cecret_item_list) do
item:DeleteMe()
end
self.cecret_item_list = {}
if self.member_id then
self.model:UnBind(self.member_id)
self.member_id = nil
end
if self.friend_id then
self.model:UnBind(self.friend_id)
self.friend_id = nil
end
end
function CecretView:LoadSuccess()
self.scrollView = self:GetChild("Window/ScrollView")
self.scroll_content = self:GetChild("Window/ScrollView/Viewport/Content")
self.closeBtn = self:GetChild("Window/winBg/closeBtn").gameObject
for i = 1, 2 do
table.insert(self.tabbar_list,self:GetChild("Window/tarbarCon/btn"..i).gameObject)
end
end
function CecretView:InitEvent()
local function onTarBtnClickHandler(target)
local index = string.gsub(target.name,"btn","")
self:SwitchBar(tonumber(index))
end
for i = 1, 2 do
AddClickEvent(self.tabbar_list[i],onTarBtnClickHandler)
end
local function onBtnClickHandler(target)
if target == self.closeBtn then
self:Close()
end
end
AddClickEvent(self.closeBtn,onBtnClickHandler)
local function onRefreshFriendList(vo)
self:SetFriendList(vo)
end
self.friend_id = self.model:Bind(ChatModel.REFRESH_FRIEND,onRefreshFriendList)
local function onRefreshMemberList(vo)
self:SetMemberList(vo)
end
self.member_id = self.model:Bind(ChatModel.REFRESH_MEMBER,onRefreshMemberList)
end
function CecretView:SwitchBar(index)
if self.cur_selected_index == index then return end
self.cur_selected_index = index
if index == 1 then
--获取所有好友信息 --获取关系列表 1好友,2仇人,3黑名单
GlobalEventSystem:Fire(SocialityModel.GET_RELATIONSHIP_LIST,1)
elseif index == 2 then
--获取所有社团成员信息 --多少个成员(100最大),页号,排序类型,排序标识,成员类型,特殊类型 --40006协议
-- GuildModel:getInstance():Fire(GuildModel.RequestMainViewMemberInfoEvt,100,1,5,0,1,0)
end
end
function CecretView:SetFriendList(vo)
-- PrintTable(vo)
if not vo then return end
if not vo.rela_list then return end
self.friendVo = vo
self:SetItemList(vo.rela_list)
end
function CecretView:SetMemberList(vo)
-- PrintTable(vo)
if not vo then return end
if not vo.member_list then return end
self.memberVo = vo
self:SetItemList(vo.member_list)
end
function CecretView:SetItemList(list)
local item = nil
local item_len = #self.cecret_item_list
--移除自己和密聊列表已有的人
local tmp_list = {}
for i=1,#list do
if list[i].role_id ~= RoleManager.Instance:GetMainRoleId() then
if self:IsSameInCecretChatList(list[i]) == false then
table.insert(tmp_list,list[i])
end
end
end
if item_len > #tmp_list then
for i=1,item_len - #tmp_list do
local t = self.cecret_item_list[i]
t:SetVisible(false)
end
elseif item_len < #tmp_list then
for i=1,#tmp_list - item_len do
item = CecretShowItem.New(self.scroll_content)
table.insert(self.cecret_item_list,item)
end
end
for i,v in ipairs(tmp_list) do
self.cecret_item_list[i]:SetData(i,v)
self.cecret_item_list[i]:SetVisible(true)
end
self.scroll_content.sizeDelta = Vector2(460,math.min(440,#self.cecret_item_list * 100))
end
function CecretView:IsSameInCecretChatList(vo)
for i,v in ipairs(self.model.cecret_chat_list) do
if vo.role_id == v.player_id or vo.role_id == v.key_id then
return true
end
end
return false
end