jx_client_neibu/lua_probject/base_project/Game/View/FamilyView.lua

1260 lines
40 KiB
Lua
Raw Normal View History

2025-04-01 10:48:36 +08:00
local FamilyInviteFamilyView = import('.Family.FamilyInviteFamilyView')
local CreatePlayView = import('.Family.CreatePlayView')
local GroupGameSettingView = import(".NewGroup.MngView.GroupGameSettingView_jaingxi")
2025-05-21 16:04:00 +08:00
local LobbyShopView = import(".Lobby.LobbyShopView")
2025-06-19 14:38:23 +08:00
local FamilAllRank = import(".Family.FamilAllRank")
2025-06-20 17:25:43 +08:00
local FamilyNumberRecord = import(".Family.FamilyNumberRecord")
local FamilyRecord = import(".Family.FamilyRecord")
2025-09-08 20:54:23 +08:00
local FamilyMsgDiamond = import(".Family.FamilyMsgDiamond")
2025-10-17 18:30:44 +08:00
local FamilyNotice = import(".Family.FamilyNotice")
2025-04-01 10:48:36 +08:00
2025-05-09 14:56:23 +08:00
---无窗口
local FamilyAllNumbers = import(".Family.FamilyAllNumbers")
2025-05-21 14:22:02 +08:00
local FamilyAuditNumber = import(".Family.FamilyAuditNumber")
local FamilyJoinAndCreate = import(".Family.FamilyJoinAndCreate")
2025-06-17 18:09:58 +08:00
local FamilyEventView = import(".Family.FamilyEventView")
2025-06-17 17:51:24 +08:00
local FamilyBanDesk = import(".Family.FamilyBanDesk")
2025-06-17 15:29:16 +08:00
local FamilyMyFamily = import(".Family.FamilyMyFamily")
2025-06-19 14:29:16 +08:00
local FamilyRoomCard = import(".Family.FamilyRoomCard")
2025-06-20 01:55:55 +08:00
local FamilyMyfamilyList = import(".Family.FamilyMyfamilyList")
2025-06-25 22:49:44 +08:00
local FamilyChatRoom = import(".Family.FamilyChatRoom")
local FamilyMsgRecord = import(".Family.FamilyMsgRecord")
local PlayEditView = import(".Family.PlayEditView")
2025-05-09 14:56:23 +08:00
---
2025-04-01 10:48:36 +08:00
FamilyView = {}
local M = FamilyView
2025-05-08 16:02:39 +08:00
2025-07-11 17:17:16 +08:00
local function FamilyOnline(groupId, self)
self._mgr_ctr:FG_Get_Online_Member(groupId, function(res)
2025-07-10 01:52:55 +08:00
end)
end
2025-07-11 17:17:16 +08:00
local function FamilyOffline(groupId, self)
self._mgr_ctr:FG_Get_Offline_Member(groupId, function(res)
2025-07-10 01:52:55 +08:00
2025-07-09 23:48:28 +08:00
end)
end
2025-07-30 18:35:43 +08:00
-- 刷新申请的红点
local function ReflashJoinsRedPoint(self)
if self._group == nil then
return
end
local btn_myfamily = self._view:GetChild("btn_myfamily")
local btn_myfamilycRedPoint = btn_myfamily:GetController("cRedPoint")
local btn_myfamilyRedPointText = btn_myfamily:GetChild("tex_redPoint")
local _joins = 0
for _, group in pairs(DataManager.groups.groupList) do
local player = group.memberMap[DataManager.SelfUser.account_id]
2025-07-31 21:01:22 +08:00
--[[
if player.lev ~= 3 then
_joins = _joins + group.joins
return
end
2025-07-31 21:01:22 +08:00
]]
_joins = _joins + group.joins
end
2025-07-30 18:35:43 +08:00
btn_myfamilycRedPoint.selectedIndex = 0
if _joins > 0 then
2025-07-30 18:35:43 +08:00
btn_myfamilycRedPoint.selectedIndex = 1
end
local RpTex = _joins
if _joins > 99 then
2025-07-30 18:35:43 +08:00
RpTex = "99+"
end
btn_myfamilyRedPointText.text = RpTex
self:ChangeOther()
end
local function SortMembers(Members)
local re = {}
local online = {}
local playing = {}
local offline = {}
for _, player in pairs(Members) do
-- 在线 绿色状态
2025-07-30 22:16:22 +08:00
if player.online == 1 and player.playing ~= "startPlaying" then
online[#online + 1] = player
end
-- 在线游戏中 红色状态
if player.online == 1 and player.playing == "startPlaying" then
playing[#playing + 1] = player
end
-- 离线
if player.online == 0 then
offline[#offline + 1] = player
end
end
for _, player in pairs(online) do
re[#re + 1] = player
end
for _, player in pairs(playing) do
re[#re + 1] = player
end
for _, player in pairs(offline) do
re[#re + 1] = player
end
return re
end
2025-04-01 10:48:36 +08:00
function FamilyView.new()
2025-07-29 20:11:16 +08:00
--print("刘海屏Rect position:%s, height:%s, width:%s", Screen.safeArea.position, Screen.safeArea.height,Screen.safeArea.width)
2025-07-29 18:45:50 +08:00
2025-04-01 10:48:36 +08:00
UIPackage.AddPackage("base/Family/ui/Family")
setmetatable(M, { __index = BaseView })
local self = setmetatable({}, { __index = M })
self.class = 'FamilyMainView'
self._full = true
2025-08-18 20:04:47 +08:00
-- self._close_destroy = false
2025-04-01 10:48:36 +08:00
self._fristRoom = true
self:init('ui://Family/Main')
return self
end
function M:init(url)
BaseView.InitView(self, url)
2025-08-18 20:04:47 +08:00
-- self._close_destroy = false
2025-04-01 10:48:36 +08:00
self._full_offset = false
local view = self._view
2025-07-21 21:44:50 +08:00
self.lastTime = os.time()
2025-06-25 22:49:44 +08:00
2025-07-29 20:11:16 +08:00
--self.n393 = self._view:GetChild("n393")
--self.n393.text = "无信息"
--self.n393.text = string.format("刘海屏Rect position:%s, height:%s, width:%s", Screen.safeArea.position, Screen.safeArea.height, Screen.safeArea.width)
2025-07-28 21:44:23 +08:00
--self._child_familyAuditNumber = FamilyAuditNumber.new(self)
2025-07-05 21:36:09 +08:00
self.com_FamilyChatRoom = FamilyChatRoom:Init(view:GetChild('com_chatRoom'), self)
2025-06-25 22:49:44 +08:00
2025-04-01 10:48:36 +08:00
local fgCtr = ControllerManager.GetController(NewGroupController)
self.familyType = view:GetController('familyType')
2025-05-17 15:00:23 +08:00
self.btn_close = view:GetChild('btn_close')
2025-06-20 01:55:55 +08:00
self.btn_myFamilyList = view:GetChild("btn_myFamilyList")
self.btn_creatFamily = view:GetChild("btn_creatFamily")
self.btn_joinFamily = view:GetChild("btn_joinFamily")
2025-06-17 18:09:58 +08:00
self._mgr_ctr = ControllerManager.GetController(GroupMgrController)
2025-06-20 01:55:55 +08:00
self.cMyfamilyList = view:GetController("cMyfamilyList")
self.btn_quitMyfamilyTab = view:GetChild("btn_quitMyfamilyTab")
2025-06-25 22:49:44 +08:00
self.btn_chatRoom = view:GetChild("btn_chatRoom")
2025-08-13 14:06:30 +08:00
self.list_family = view:GetChild("list_family")
2025-05-17 15:00:23 +08:00
2025-07-28 20:42:56 +08:00
self.cChatRoomRedPoint = self.btn_chatRoom:GetController("cRedPoint")
2025-05-17 15:00:23 +08:00
self:InitCloseClick()
2025-04-01 10:48:36 +08:00
2025-07-30 18:35:43 +08:00
--[[
2025-04-01 10:48:36 +08:00
fgCtr:FG_GroupList(function(res)
2025-07-24 16:11:33 +08:00
print("获取所有圈信息")
pt(res)
2025-04-01 10:48:36 +08:00
local groups = res.Data.groups
if #groups > 0 then
self.familyType.selectedIndex = 1
self:ConnetFamily(1, groups, true)
else
2025-05-22 11:34:59 +08:00
self:JoinFamily(true)
self.btn_chatRoom.visible = false
2025-04-01 10:48:36 +08:00
end
end)
2025-07-30 18:35:43 +08:00
]]
-------绑定成员战绩按钮
view:GetChild('btn_family_record').onClick:Set(function()
2025-07-03 19:42:13 +08:00
self._child_familyNumberRecord = FamilyNumberRecord.New(self, 1)
2025-05-17 15:00:23 +08:00
self.lastType = 1
end)
2025-06-17 18:09:58 +08:00
2025-07-03 19:42:13 +08:00
view:GetChild('btn_person_record').onClick:Set(function()
self._child_familyNumberRecord = FamilyNumberRecord.New(self, 2)
self.lastType = 1
end)
2025-06-17 18:09:58 +08:00
if FamilyEventView then
self._familyEventView = FamilyEventView.new(self)
self._familyEventView:_evtAddPlay()
end
2025-06-17 15:29:16 +08:00
-------绑定我的亲友圈按钮
view:GetChild('btn_myfamily').onClick:Set(function()
2025-06-20 01:55:55 +08:00
self.cMyfamilyList.selectedIndex = 1
end)
self.btn_myFamilyList.onClick:Set(function()
self.cMyfamilyList.selectedIndex = 0
--FamilyMyFamily:TryShow(self)
FamilyMyfamilyList:TryShow(self)
end)
self.btn_creatFamily.onClick:Set(function()
self.cMyfamilyList.selectedIndex = 0
self:CreateFamily()
end)
self.btn_joinFamily.onClick:Set(function()
self.cMyfamilyList.selectedIndex = 0
self:CreateFamily()
end)
self.btn_quitMyfamilyTab.onClick:Set(function()
self.cMyfamilyList.selectedIndex = 0
2025-06-17 15:29:16 +08:00
end)
2025-06-25 22:49:44 +08:00
self.btn_chatRoom.onClick:Set(function()
--local view = FamilyChatRoom.New()
--view:Show()
2025-07-05 21:36:09 +08:00
--FamilyChatRoom:Show(self.ChatRoomData)
self.com_FamilyChatRoom:Show()
2025-06-25 22:49:44 +08:00
end)
2025-08-13 14:06:30 +08:00
self.list_family.itemRenderer = function(i, obj)
local j = i + 1
local group = DataManager.groups.groupList[j]
obj:GetChild("title").emojies = EmojiDitc.EmojiesDitc
obj.text = Utils.TextOmit(group.name, 6, "...")
obj.onClick:Add(function()
if self._group ~= nil and group.id == self._group.id then
--ViewUtil.ErrorTip(-1,"已在家族中")
2025-08-13 14:06:30 +08:00
return
end
2025-10-20 18:30:18 +08:00
self:RefNotice(group.id)
2025-08-13 14:06:30 +08:00
self.curGroupIndex = j
self:ConnetFamily(j, DataManager.groups.groupList)
end)
end
self.familyType.selectedIndex = 1
2025-09-19 18:01:12 +08:00
self._view:GetChild('btn_showALlStartRoom').onClick:Set(function()
local mgr_ctr = ControllerManager.GetController(GroupMgrController)
mgr_ctr:FG_SetShowStartRoom(self._group.id, 1 - self._group.isOpenStartRoom, function(res)
--因为没有回调,这边先把值设置好
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode)
return
end
end)
end)
2025-10-18 18:42:59 +08:00
local list_familyNumber = self._view:GetChild('list_familyNumber')
if list_familyNumber then
list_familyNumber.scrollPane.onScroll:Set(function()
self._flag_falshMenberTime = true
self._data_falshMenberTime = 7
end)
end
local list_room = self._view:GetChild('list_room')
if list_room then
list_room.scrollPane.onScroll:Set(function()
self._flag_falshRoomTime = true
self._data_falshRoomTime = 20
end)
end
2025-05-17 15:00:23 +08:00
end
function M:Reflash()
2025-07-27 00:05:46 +08:00
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_GroupList(function(res)
2025-07-30 18:35:43 +08:00
print("获取所有圈信息")
pt(res)
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode)
end
local groups = res.Data.groups
if #groups > 0 then
2025-08-13 14:06:30 +08:00
--self:ConnetFamily(1, groups)
self.list_family.numItems = #DataManager.groups.groupList
2025-08-18 20:04:47 +08:00
local chooseIndex = 1
2025-08-23 22:23:17 +08:00
local lastID = Utils.LoadLocalFile("Family_lastID" .. DataManager.SelfUser.account_id)
if lastID then
lastID = tonumber(lastID)
2025-08-18 20:04:47 +08:00
for i = 1, #DataManager.groups.groupList do
2025-08-23 22:23:17 +08:00
if lastID == DataManager.groups.groupList[i].id then
2025-08-18 20:04:47 +08:00
chooseIndex = i
end
end
end
2025-08-21 21:35:24 +08:00
local btn = self.list_family:GetChildAt(chooseIndex - 1)
2025-08-13 14:06:30 +08:00
btn.onClick:Call()
else
self:JoinFamily(true)
self.btn_chatRoom.visible = false
end
end)
end
2025-05-17 15:00:23 +08:00
function M:InitCloseClick()
self.btn_close.onClick:Set(function()
2025-08-21 21:35:24 +08:00
print("lingmeng InitCloseClick", self.lastType, self.familyType.selectedIndex)
2025-05-17 15:00:23 +08:00
if not self.lastType or self.familyType.selectedIndex == 1 then
2025-07-10 01:52:55 +08:00
if self._group then
2025-07-11 17:17:16 +08:00
FamilyOffline(self._group.id, self)
2025-07-10 01:52:55 +08:00
end
2025-07-29 18:45:50 +08:00
self._mgr_ctr:disconnect()
2025-05-17 15:00:23 +08:00
ControllerManager.ChangeController(LoddyController)
ViewManager.ChangeView(ViewManager.View_Lobby)
else
self.familyType.selectedIndex = self.lastType
if self.lastType == 3 then
self.lastType = 1
end
end
end)
2025-04-01 10:48:36 +08:00
end
2025-05-08 16:02:39 +08:00
function M:ShareWx()
2025-04-01 10:48:36 +08:00
local familyInviteFamilyView = FamilyInviteFamilyView.new()
familyInviteFamilyView:Show()
end
function M:MsgView()
2025-08-13 16:55:18 +08:00
local view = FamilyMsgRecord.New()
view:Show(self._group.id)
end
2025-09-08 20:54:23 +08:00
function M:MsgDiamondView()
local view = FamilyMsgDiamond.New({ groupId = self._group.id })
view:Show()
end
function M:SetIsOpenChatRoom()
local mgr_ctr = ControllerManager.GetController(GroupMgrController)
2025-06-26 00:15:48 +08:00
if self._group.isOpenChatRoom == 1 then
mgr_ctr:FG_CLOSE_ISOPEN_CHATROOM(self._group.id, function(res)
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode)
return
end
self._group.isOpenChatRoom = 0
self:RefalshMoreBtn()
end)
elseif self._group.isOpenChatRoom == 0 then
mgr_ctr:FG_OPEN_ISOPEN_CHATROOM(self._group.id, function(res)
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode)
return
end
self._group.isOpenChatRoom = 1
self:RefalshMoreBtn()
end)
end
end
function M:SetCanWatch()
local value = 1
2025-06-26 00:15:48 +08:00
if self._group.isWatch == 1 then
value = 0
elseif self._group.isWatch == 0 then
value = 1
end
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:SetCanWatch(self._group.id, value, function(res)
print("设置是否观战")
pt(res)
2025-06-26 00:15:48 +08:00
if res.ReturnCode ~= 0 then
2025-07-07 19:49:16 +08:00
ViewUtil.ErrorTip(res.ReturnCode)
return
end
self._group.isWatch = value
self:RefalshMoreBtn()
2025-07-04 21:17:27 +08:00
--
local fgCtr = ControllerManager.GetController(NewGroupController)
self:UpdateFamilyRoom(fgCtr, self._group.id)
end)
end
2025-06-18 14:48:00 +08:00
function M:FamilyRecord()
2025-06-20 17:25:43 +08:00
if not self._ViewChild_Record or not self._ViewChild_Record.ShouRanks then
self._ViewChild_Record = FamilyRecord.New(self, self._group.id)
return
end
self._ViewChild_Record:ShouRanks()
2025-06-18 14:48:00 +08:00
end
2025-05-22 11:34:59 +08:00
function M:CreateFamily(frist)
2025-05-08 16:02:39 +08:00
self.familyType.selectedIndex = 3
2025-08-21 21:35:24 +08:00
if type(frist) ~= "boolean" or not frist then
2025-05-22 11:34:59 +08:00
self.lastType = 1
end
2025-05-08 16:02:39 +08:00
self._view:GetController('createOrJoin').selectedIndex = 0
2025-06-17 15:29:16 +08:00
self._child_familyJoinAndCreate = FamilyJoinAndCreate:init(self)
2025-04-01 10:48:36 +08:00
end
2025-05-22 11:34:59 +08:00
function M:JoinFamily(frist)
2025-05-08 16:02:39 +08:00
self.familyType.selectedIndex = 3
2025-08-21 21:35:24 +08:00
if type(frist) ~= "boolean" or not frist then
2025-05-22 11:34:59 +08:00
self.lastType = 1
end
2025-05-08 16:02:39 +08:00
self._view:GetController('createOrJoin').selectedIndex = 1
2025-06-17 15:29:16 +08:00
self._child_familyJoinAndCreate = FamilyJoinAndCreate:init(self)
2025-04-01 10:48:36 +08:00
end
2025-05-08 16:02:39 +08:00
function M:PlayEdit()
self._view_PlayEditView = PlayEditView.New()
self._view_PlayEditView:Show(self._group.id)
2025-04-01 10:48:36 +08:00
end
2025-06-20 01:55:55 +08:00
function M:OpenMyFamily(groupId)
FamilyMyFamily:TryShow(groupId, self)
end
2025-05-09 14:56:23 +08:00
function M:AllNumber()
2025-08-04 19:52:20 +08:00
local view = FamilyAllNumbers.new()
view:Show(self._group)
2025-04-01 10:48:36 +08:00
end
2025-05-21 14:22:02 +08:00
function M:AuditNumber()
2025-07-28 21:44:23 +08:00
local view = FamilyAuditNumber.new(self)
view:Show(self._group)
--self.lastType = 1
--self._child_familyAuditNumber:Show()
--self._child_familyAuditNumber = FamilyAuditNumber.new(self)
end
function M:UpdataRedPointAuditNumber(obj)
2025-07-25 22:17:17 +08:00
if self._group.joins == nil or self._group.joins <= 0 then
obj:GetController("cRedPoint").selectedIndex = 0
return
end
2025-07-25 22:17:17 +08:00
local redPointNum = self._group.joins
if redPointNum > 99 then
redPointNum = "99+"
end
obj:GetController("cRedPoint").selectedIndex = 1
obj:GetChild("tex_redPoint").text = redPointNum
2025-05-21 14:22:02 +08:00
end
2025-05-21 16:04:00 +08:00
function M:ShowShop()
2025-06-19 14:29:16 +08:00
--self._child_familyLobbyShopView = LobbyShopView.new(self, self._group.id)
--self._child_familyLobbyShopView:Show()
2025-07-08 20:29:50 +08:00
FamilyRoomCard:TryShow(self._group.id)
2025-05-21 16:04:00 +08:00
end
2025-06-19 14:38:23 +08:00
function M:ShowAllRank()
2025-06-20 17:25:43 +08:00
if not self._ViewChild_AllRank or not self._ViewChild_AllRank.ShouRanks then
2025-06-19 14:38:23 +08:00
self._ViewChild_AllRank = FamilAllRank.New(self, self._group.id)
2025-06-20 17:25:43 +08:00
return
2025-06-19 14:38:23 +08:00
end
2025-06-20 17:25:43 +08:00
self._ViewChild_AllRank:ShouRanks()
2025-06-19 14:38:23 +08:00
end
2025-06-20 01:55:55 +08:00
function M:OpenAllNumber(group)
2025-08-04 19:52:20 +08:00
local view = FamilyAllNumbers.new()
view:Show(group)
2025-06-20 01:55:55 +08:00
end
2025-05-30 13:35:36 +08:00
function M:MoreBtn()
local ctr_more = self._view:GetController('moreBtn')
self._view:GetChild('bg_moreBtnBack').onClick:Set(function()
ctr_more.selectedIndex = 0
end)
ctr_more.selectedIndex = 1
self:ChangeMore()
self:RefalshMoreBtn()
2025-05-30 13:35:36 +08:00
end
function M:BanFamily()
local fgCtr = ControllerManager.GetController(NewGroupController)
2025-07-03 19:42:13 +08:00
local data = {
2025-07-02 17:19:20 +08:00
id = self._group.id,
2025-07-03 19:42:13 +08:00
ban = not self._group.ban
}
2025-07-02 17:19:20 +08:00
fgCtr:FG_UpdateGroupInfo(data,
function(res)
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, "一键打样失败")
else
2025-07-25 22:17:17 +08:00
self:ReflashBan()
2025-07-02 17:19:20 +08:00
self:RefalshMoreBtn()
end
end)
2025-05-30 13:35:36 +08:00
end
2025-07-25 22:17:17 +08:00
function M:ReflashBan()
self._view:GetController('familyBan').selectedIndex = self._group.ban and 1 or 0
end
2025-06-06 19:48:45 +08:00
function M:BanDeskmate()
2025-06-17 17:51:24 +08:00
self.FamilyBanDesk = FamilyBanDesk:TryShow(self)
2025-06-06 19:48:45 +08:00
end
2025-07-24 21:41:05 +08:00
function M:ReflashMember()
self.members = SortMembers(self._group.members)
2025-07-24 21:41:05 +08:00
local list_familyNumber = self._view:GetChild('list_familyNumber')
if list_familyNumber.itemRenderer == nil then
return
2025-07-24 21:41:05 +08:00
end
2025-10-18 18:42:59 +08:00
if self._group.isShow == 1 or self._group.lev < 3 then
if list_familyNumber.numItems == #self._group.members then
list_familyNumber:RefreshVirtualList()
else
list_familyNumber.numItems = #self._group.members
end
2025-07-24 21:41:05 +08:00
else
2025-10-18 18:42:59 +08:00
list_familyNumber.numItems = 0
2025-07-24 21:41:05 +08:00
end
end
2025-04-01 10:48:36 +08:00
function M:ChangeNumber(fgCtr, group_id, limit, num, minus_only, sort_type)
local list_familyNumber = self._view:GetChild('list_familyNumber')
list_familyNumber:SetVirtual()
2025-05-22 18:32:34 +08:00
fgCtr:FG_GroupMembers12(group_id, limit, num, 2, 2, function(res)
self.members = SortMembers(self._group.members) --local members = self._group.members
2025-07-19 16:32:03 +08:00
print("FG_GroupMembers12")
2025-05-09 14:56:23 +08:00
pt(self._group.members)
2025-07-19 16:32:03 +08:00
--ViewUtil:CloseModalWait()
2025-04-01 10:48:36 +08:00
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, "获取成员列表失败")
else
list_familyNumber.itemRenderer = function(index, obj)
local player = self.members[index + 1]
2025-07-04 00:27:03 +08:00
obj:GetChild('title').emojies = EmojiDitc.EmojiesDitc
2025-08-05 20:29:11 +08:00
obj:GetChild('title').text = Utils.TextOmit(player.nick, 5, "...")
2025-08-05 21:09:35 +08:00
local state = 0
if player.online == 1 and player.playing == "startPlaying" then
state = 2
2025-08-05 21:33:15 +08:00
elseif player.online == 1 and player.playing ~= "startPlaying" then
2025-08-05 21:09:35 +08:00
state = 1
elseif player.online == 0 then
state = 0
2025-07-20 06:21:43 +08:00
end
2025-08-05 21:09:35 +08:00
obj:GetController('type').selectedIndex = state
2025-07-08 15:15:57 +08:00
local loader_icon = obj:GetChild("btn_head"):GetChild("icon")
ImageLoad.Load(player.portrait, loader_icon)
2025-04-01 10:48:36 +08:00
end
--list_familyNumber.numItems = #self._group.members
2025-10-18 18:42:59 +08:00
if self._group.isShow == 1 or self._group.lev < 3 then
list_familyNumber.numItems = #self.members
else
list_familyNumber.numItems = 0
end
2025-07-31 21:01:22 +08:00
self:ChangeOther()
2025-04-01 10:48:36 +08:00
return 1
end
end)
return 0
end
function M:EnterGroup(fgCtr, id)
2025-04-01 10:48:36 +08:00
fgCtr:FG_EnterGroup(id, function(res)
ViewUtil:CloseModalWait()
ViewUtil:CloseModalWait2()
2025-04-01 10:48:36 +08:00
if res.ReturnCode ~= 0 then
if res.ReturnCode == 101 then
ViewUtil:ShowModalWait2(0.01)
self:EnterGroup(fgCtr, id)
return
end
2025-04-01 10:48:36 +08:00
ViewUtil.ErrorTip(res.ReturnCode, "获取房间列表列表失败")
else
self:OnEnterGroupCallBack()
2025-04-01 10:48:36 +08:00
return 1
end
end)
return 0
end
function M:OnEnterGroupCallBack()
local fgCtr = ControllerManager.GetController(NewGroupController)
2025-07-24 17:04:53 +08:00
self._view:GetController('familyBan').selectedIndex = self._group.ban and 1 or 0
FamilyOnline(self._group.id, self)
self:ChangeNumber(fgCtr, self._group.id, 0, self._group.total_member_num, false, 1)
self:UpdateFamilyRoom(fgCtr, self._group.id)
2025-07-31 21:01:22 +08:00
--ViewUtil.ShowModalWait(self._root_view, "正在加载亲友圈权限中......")
--self:ChangeOther()
ViewUtil.CloseModalWait()
2025-07-28 20:42:56 +08:00
2025-08-23 16:07:53 +08:00
self:ReflashChatRoomRedPoint()
2025-07-28 22:42:58 +08:00
2025-07-30 18:35:43 +08:00
ReflashJoinsRedPoint(self)
2025-08-18 21:44:31 +08:00
self:ReflashChatRoomBtn()
2025-07-28 22:49:25 +08:00
fgCtr:FG_Get_Online_Member(self._group.id, function(res)
end)
2025-07-31 21:01:22 +08:00
fgCtr:FG_Get_Apply_Count(function(res)
print("收到获得申请列表的数量")
pt(res)
if res.ReturnCode ~= 0 then
return
end
self:ChangeOther()
end)
end
2025-04-01 10:48:36 +08:00
function M:UpdateFamilyRoom(fgCtr, id)
2025-04-10 11:19:20 +08:00
local list_room = self._view:GetChild('list_room')
2025-04-01 10:48:36 +08:00
list_room:SetVirtual()
2025-10-14 20:44:57 +08:00
local pane = list_room.scrollPane
2025-10-20 18:30:18 +08:00
pane.decelerationRate = 0.96 -- 惯性大
2025-10-14 20:44:57 +08:00
pane.bouncebackEffect = true
2025-04-01 13:56:18 +08:00
local playList = self._group.playList
local roomList = self._group.rooms
2025-09-08 20:54:23 +08:00
self._view:GetChild('n364').text = string.format("已开启%s桌游戏", #roomList)
2025-04-10 11:19:20 +08:00
local roomCtr = ControllerManager.GetController(RoomController)
2025-09-03 22:37:39 +08:00
--先对房间进行一波分类
local readyRoom = {}
local startRoom = {}
for k, v in pairs(roomList) do
table.insert(v.status == 0 and readyRoom or startRoom, v)
end
local all_num = #playList + #roomList
2025-09-19 18:01:12 +08:00
local show_num = all_num
2025-09-19 18:50:28 +08:00
if self._group.lev == 3 and self._group.isOpenStartRoom == 1 then
2025-09-19 18:01:12 +08:00
show_num = #playList + #readyRoom
end
2025-09-19 18:50:28 +08:00
self._view:GetChild('btn_showALlStartRoom'):GetController('isOpen').selectedIndex = self._group.isOpenStartRoom
2025-04-01 10:48:36 +08:00
list_room.itemRenderer = function(index, obj)
2025-09-04 16:10:14 +08:00
if index < #readyRoom then
2025-04-01 17:21:53 +08:00
local newIndex = index + 1
2025-09-22 23:26:31 +08:00
local playInfo = self._group:getPlay(readyRoom[newIndex].pid)
2025-09-04 16:10:14 +08:00
self:FillSameRoomInfo(obj, 1, playInfo)
local plist = readyRoom[newIndex].plist
2025-05-30 13:35:36 +08:00
local insertName = ""
2025-09-08 14:39:21 +08:00
for i = 1, 4 do
if i <= #plist then
ImageLoad.Load(plist[i].portrait, obj:GetChild(string.format("player%d", i))._iconObject)
insertName = string.format("%s、%s", plist[i].nick, insertName)
else
local btn = obj:GetChild(string.format("player%d", i))
btn:GetChild("icon").url = "ui://Family/btn_mainGameNumberHead"
end
2025-05-30 13:35:36 +08:00
end
obj:GetChild('Label_joinPlayers').text = insertName
2025-09-04 16:10:14 +08:00
obj:GetChild('text_playerNum').text = string.format("%s/%s", #plist, playInfo.maxPlayers)
2025-04-01 13:56:18 +08:00
obj:GetChild('btn_joinGame').onClick:Set(function()
2025-04-01 10:48:36 +08:00
roomCtr:PublicJoinRoom(
2025-04-01 13:56:18 +08:00
Protocol.WEB_FG_JOIN_ROOM,
2025-09-04 16:10:14 +08:00
readyRoom[newIndex].id,
2025-06-09 16:30:22 +08:00
id,
2025-04-01 10:48:36 +08:00
function(response)
if (response.ReturnCode == -1) then
2025-04-10 11:19:20 +08:00
ViewUtil.ErrorMsg(self._root_view, response.ReturnCode, 'response.ReturnCode == -1')
2025-04-01 10:48:36 +08:00
-- RestartGame()
return
end
if response.ReturnCode ~= 0 then
2025-09-08 14:39:21 +08:00
if response.ReturnCode == 10 then
2025-09-22 23:26:31 +08:00
self:EnterWitnesss(id, readyRoom[newIndex].id, playInfo.gameId, readyRoom[newIndex].pid)
2025-09-08 14:39:21 +08:00
return
end
2025-04-01 10:48:36 +08:00
ViewUtil.ErrorMsg(self._root_view, response.ReturnCode, '进入房间失败')
-- ViewManager.ChangeView(ViewManager.View_Lobby)
else
2025-06-12 15:17:53 +08:00
UpdateBeat:Remove(self.OnUpdate, self)
2025-08-18 20:04:47 +08:00
FamilyView.lastId = self._group.id
2025-09-04 16:10:14 +08:00
ViewManager.ChangeView(ViewManager.View_Main, playInfo.gameId, { _flag_showTip = true })
2025-04-01 10:48:36 +08:00
end
end,
id,
2025-09-04 16:10:14 +08:00
readyRoom[newIndex].pid
)
end)
obj:GetChild('btn_watch').onClick:Set(function()
2025-09-08 14:39:21 +08:00
self:EnterWitnesss(id, readyRoom[newIndex].id, playInfo.gameId, readyRoom[newIndex].pid)
2025-04-01 10:48:36 +08:00
end)
2025-09-04 16:10:14 +08:00
obj:GetChild('btn_jiesan').onClick:Set(function()
2025-09-08 14:39:21 +08:00
self:JieSanRomm(id, readyRoom[newIndex].id)
2025-09-04 16:10:14 +08:00
end)
elseif index >= all_num - #startRoom then
local newIndex = index - #readyRoom - #playList + 1
local playInfo = self._group:getPlay(startRoom[newIndex].pid)
self:FillSameRoomInfo(obj, 2, playInfo)
local plist = startRoom[newIndex].plist
local insertName = ""
for i = 1, #plist do
ImageLoad.Load(plist[i].portrait, obj:GetChild(string.format("player%d", i))._iconObject)
insertName = string.format("%s、%s", plist[i].nick, insertName)
end
obj:GetChild('Label_joinPlayers').text = insertName
obj:GetChild('text_playerNum').text = string.format("%s/%s", playInfo.maxPlayers, playInfo.maxPlayers)
2025-09-16 21:35:09 +08:00
obj:GetChild('text_roundNum').text = string.format("局数:%s/%s", startRoom[newIndex].round,
2025-09-04 16:10:14 +08:00
startRoom[newIndex].times)
obj:GetChild('btn_joinGame').onClick:Clear()
2025-06-09 16:30:22 +08:00
obj:GetChild('btn_watch').onClick:Set(function()
2025-09-08 14:39:21 +08:00
self:EnterWitnesss(id, startRoom[newIndex].id, playInfo.gameId, startRoom[newIndex].pid)
2025-06-09 16:30:22 +08:00
end)
2025-09-04 16:58:05 +08:00
obj:GetChild('btn_jiesan').onClick:Set(function()
2025-09-09 14:58:47 +08:00
self:JieSanRomm(id, startRoom[newIndex].id)
2025-09-04 16:58:05 +08:00
end)
2025-04-01 10:48:36 +08:00
else
2025-09-03 22:37:39 +08:00
local newIndex = index - #readyRoom + 1
2025-09-04 16:10:14 +08:00
local playInfo = playList[newIndex]
self:FillSameRoomInfo(obj, 0, playInfo)
2025-08-04 21:20:23 +08:00
obj:GetChild('Label_joinPlayers').text = ""
for i = 1, 4 do
local btn = obj:GetChild(string.format("player%d", i))
btn:GetChild("icon").url = "ui://Family/btn_mainGameNumberHead"
--ImageLoad.Load("ui://Family/btn_mainGameNumberHead", obj:GetChild(string.format("player%d", i))._iconObject)
end
2025-04-01 13:56:18 +08:00
obj:GetChild('btn_joinGame').onClick:Set(function()
2025-04-10 11:19:20 +08:00
roomCtr:PublicJoinRoom(
Protocol.WEB_FG_MATCH_ROOM,
"",
2025-10-20 20:32:31 +08:00
false,
2025-04-10 11:19:20 +08:00
function(response)
if (response.ReturnCode == -1) then
ViewUtil.ErrorMsg(self._root_view, response.ReturnCode, 'response.ReturnCode == -1')
-- RestartGame()
return
end
2025-04-01 10:48:36 +08:00
2025-04-10 11:19:20 +08:00
if response.ReturnCode ~= 0 then
ViewUtil.ErrorMsg(self._root_view, response.ReturnCode, '进入房间失败')
-- ViewManager.ChangeView(ViewManager.View_Lobby)
return
else
2025-06-12 15:17:53 +08:00
UpdateBeat:Remove(self.OnUpdate, self)
2025-08-18 20:04:47 +08:00
FamilyView.lastId = self._group.id
2025-08-23 22:23:17 +08:00
ViewManager.ChangeView(ViewManager.View_Main, playList[newIndex].gameId,
{ _flag_showTip = true })
2025-04-10 11:19:20 +08:00
end
end,
id,
playList[newIndex].id
)
2025-04-01 10:48:36 +08:00
end)
2025-09-04 16:10:14 +08:00
obj:GetChild('btn_watch').onClick:Clear()
2025-09-04 16:58:05 +08:00
obj:GetChild('btn_jiesan').onClick:Clear()
2025-04-01 10:48:36 +08:00
end
end
2025-04-11 12:49:08 +08:00
-- print("=================================================list_room", list_room, list_room.numItems, all_num)
2025-07-24 21:41:05 +08:00
print("游戏中的房间")
pt(roomList)
--list_room.numItems = all_num
2025-09-19 18:01:12 +08:00
if list_room.numItems == show_num then
2025-07-24 21:41:05 +08:00
list_room:RefreshVirtualList()
2025-07-25 22:17:17 +08:00
else
2025-09-19 18:01:12 +08:00
list_room.numItems = show_num
2025-07-24 21:41:05 +08:00
end
--如果在编辑玩法页面则此处调用刷新
if self._view_PlayEditView then
self._view_PlayEditView:Refalsh(self._group.id)
end
2025-07-24 21:41:05 +08:00
end
2025-09-04 16:10:14 +08:00
--房间渲染
function M:FillSameRoomInfo(obj, type, playInfo)
2025-09-03 22:37:39 +08:00
local gameId = playInfo.gameId
local config = ExtendManager.GetExtendConfig(gameId)
local mode = config:GetGameInfo()
local gamePlay = mode:LoadConfigToDetail(playInfo.config, playInfo.hpData)
obj:GetChild('Label_gameRule').title = gamePlay
2025-09-04 16:10:14 +08:00
2025-09-03 22:37:39 +08:00
local roomName = playInfo.name
roomName = Utils.TextOmit(roomName, 6, "")
obj:GetChild('game_type').emojies = EmojiDitc.EmojiesDitc
2025-09-03 22:52:19 +08:00
obj:GetChild('game_type').text = string.format("%s%s", playInfo.game_name, roomName)
2025-09-04 16:10:14 +08:00
obj:GetChild('btn_joinGame'):GetController('type').selectedIndex = type
2025-09-08 14:39:21 +08:00
obj:GetChild('btn_watch').visible = self._group.isWatch and self._group.isWatch == 1
obj:GetChild('btn_jiesan').visible = self._group.lev < 3
2025-09-04 16:10:14 +08:00
obj:GetController('type').selectedIndex = type
obj:GetController('num').selectedIndex = playInfo.maxPlayers - 2
2025-09-03 22:37:39 +08:00
end
2025-09-08 14:39:21 +08:00
--点击进入观战
function M:EnterWitnesss(groupId, roomId, gameId, pid)
local roomCtr = ControllerManager.GetController(RoomController)
roomCtr:PublicWitnessRoom(
Protocol.WEB_FG_Witness_ROOM,
roomId,
groupId,
function(response)
if (response.ReturnCode == -1) then
ViewUtil.ErrorMsg(self._root_view, response.ReturnCode, 'response.ReturnCode == -1')
-- RestartGame()
return
end
if response.ReturnCode ~= 0 then
ViewUtil.ErrorMsg(self._root_view, response.ReturnCode, '进入房间失败')
-- ViewManager.ChangeView(ViewManager.View_Lobby)
return
else
UpdateBeat:Remove(self.OnUpdate, self)
FamilyView.lastId = self._group.id
ViewManager.ChangeView(ViewManager.View_Witness, gameId)
end
end,
gameId,
pid
)
end
--点击解散房间
function M:JieSanRomm(groupId, roomId)
local _curren_msg =
MsgWindow.new(
self._root_view,
'确定要解散该房间吗?',
MsgWindow.MsgMode.OkAndCancel
)
_curren_msg.onOk:Add(
function()
ViewUtil.ShowModalWait(self._root_view)
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_RemoveRoom(
groupId,
roomId,
function(res)
if self._is_destroy then
return
end
ViewUtil.CloseModalWait()
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, '删除房间失败!')
return
end
end
)
end
)
_curren_msg:Show()
end
2025-07-24 21:41:05 +08:00
function M:ReflashFamilyList()
local list_family = self._view:GetChild('list_family')
list_family.numItems = #DataManager.groups.groupList
2025-04-01 10:48:36 +08:00
end
2025-08-13 14:06:30 +08:00
function M:ConnetFamily(index, groups)
2025-09-19 18:50:28 +08:00
ViewUtil.ShowModalWait(self._root_view, "正在加载成员列表中......")
2025-07-11 17:17:16 +08:00
if self._group then
FamilyOffline(self._group.id, self)
end
2025-04-01 10:48:36 +08:00
UpdateBeat:Remove(self.OnUpdate, self)
ViewUtil:CloseModalWait()
self._group = DataManager.groups:get(groups[index].id)
2025-07-20 06:21:43 +08:00
DataManager.CurrenGroup = self._group
2025-05-22 11:22:14 +08:00
self._view:GetChild('text_familyId').text = self._group.id
2025-07-03 19:42:13 +08:00
self._view:GetController('lev').selectedIndex = self._group.lev - 1
2025-06-06 19:48:45 +08:00
print("===================================self._group")
pt(self._group)
2025-04-01 10:48:36 +08:00
self._roomNum = self._group.room_num
local fgCtr = ControllerManager.GetController(NewGroupController)
ViewUtil.ShowModalWait(self._root_view, "正在进入亲友圈......")
2025-08-23 22:23:17 +08:00
Utils.SaveLocalFile("Family_lastID" .. DataManager.SelfUser.account_id, self._group.id)
self:EnterGroup(fgCtr, self._group.id)
--[[
2025-04-01 10:48:36 +08:00
ViewUtil.ShowModalWait(self._root_view, "正在加载亲友圈权限中......")
self:ChangeOther(tonumber(self._group.lev) + 1)
2025-04-01 10:48:36 +08:00
allLoad = 1
ViewUtil.ShowModalWait(self._root_view, "正在加载成员列表中......")
allLoad = allLoad +
self:ChangeNumber(fgCtr, self._group.id, 0, self._group.total_member_num, false,
2025-04-01 10:48:36 +08:00
1)
ViewUtil.ShowModalWait(self._root_view, "正在加载房间列表中......")
allLoad = allLoad + self:EnterGroup(fgCtr, self._group.id)
]]
2025-04-01 10:48:36 +08:00
UpdateBeat:Add(self.OnUpdate, self)
if self._group.isOpenChatRoom == 1 then
self.btn_chatRoom.visible = true
else
self.btn_chatRoom.visible = false
end
2025-04-01 10:48:36 +08:00
end
2025-06-12 15:17:53 +08:00
-- function M:Destroy()
-- UpdateBeat:Remove(self.OnUpdate, self)
-- BaseView:Destroy()
-- end
2025-04-01 10:48:36 +08:00
function M:OnUpdate()
2025-05-22 15:57:34 +08:00
local fgCtr = ControllerManager.GetController(NewGroupController)
2025-07-18 16:02:20 +08:00
local newTime = os.time()
2025-10-18 18:42:59 +08:00
local deltaTime = Time.deltaTime
2025-04-01 10:48:36 +08:00
-- --12001事件
2025-06-17 18:09:58 +08:00
local func = self._mgr_ctr:PopEvent()
if (func ~= nil) then
local success, result = pcall(func)
if success then
else
print("witness error")
print(result)
-- self._gamectr = ControllerManager.GetController(GameController)
-- if self._gamectr then
-- self._gamectr:ResetConnect()
-- end
end
--func()
end
2025-05-22 11:22:14 +08:00
if self._group.update_room then
-- if self._roomNum == self._group.room_num then
-- for i = 1, self._group.room_num do
-- if self._group.rooms[i] and #self._group.rooms[i].plist == 0 then
-- self._group.update_room = false
-- fgCtr:FG_RemoveRoom(
-- self._group.id,
-- self._group.rooms[i].id,
-- function(res)
-- if res.ReturnCode ~= 0 then
-- ViewUtil.ErrorTip(res.ReturnCode, string.format('删除房间-%s失败', self._group.rooms[i].id))
-- else
-- self._roomNum = #self._group.rooms
-- end
-- end
-- )
-- end
-- end
-- else
-- self._group.update_room = false
-- -- self._group.update_room = false
-- end
-- if self._fristRoom then
self._group.update_room = false
-- self._fristRoom = true
-- end
-- -- print("====================================UpdateFamilyRoom", fgCtr, self._group.id)
self:UpdateFamilyRoom(fgCtr, self._group.id)
end
2025-07-24 21:41:05 +08:00
2025-08-23 16:07:53 +08:00
local HeartbeatTime = 10
2025-07-18 16:28:57 +08:00
if newTime - self.lastTime > HeartbeatTime then
2025-07-19 16:32:03 +08:00
fgCtr:FG_SetFamilyHeartbeat(self._group.id, DataManager.SelfUser.account_id, function(res)
print(res)
end)
2025-07-18 16:02:20 +08:00
self.lastTime = newTime
2025-07-21 21:44:50 +08:00
if self._view:GetChild('list_familyNumber').itemRenderer then
2025-08-18 20:04:47 +08:00
self.members = SortMembers(self._group.members) --local members = self._group.members
2025-10-18 18:42:59 +08:00
if self._group.isShow == 1 or self._group.lev < 3 then
self._view:GetChild('list_familyNumber').numItems = #self.members
else
self._view:GetChild('list_familyNumber').numItems = 0
end
end
end
if self._flag_falshMenberTime then
if self._data_falshMenberTime > 0 then
self._data_falshMenberTime = self._data_falshMenberTime - deltaTime
else
self._flag_falshMenberTime = false
self._view:GetChild('list_familyNumber').scrollPane:SetPosY(0, true)
end
end
if self._flag_falshRoomTime then
if self._data_falshRoomTime > 0 then
self._data_falshRoomTime = self._data_falshRoomTime - deltaTime
else
2025-10-20 18:30:18 +08:00
self._flag_falshRoomTime = true
self._data_falshRoomTime = 120
local fgCtr = ControllerManager.GetController(NewGroupController)
self:UpdateFamilyRoom(fgCtr, self._group.id)
2025-10-18 18:42:59 +08:00
self._view:GetChild('list_room').scrollPane:SetPosY(0, true)
2025-07-21 21:44:50 +08:00
end
2025-05-22 15:57:34 +08:00
end
2025-04-01 10:48:36 +08:00
end
2025-05-09 14:56:23 +08:00
local IDENTITY_LIST = {
{
level = 0, --圈主
},
{
level = 1, --副圈主
otherList = {
{
name = "邀请朋友",
Fct = M.ShareWx
},
{
name = "游戏记录",
2025-06-18 14:48:00 +08:00
Fct = M.FamilyRecord
2025-05-09 14:56:23 +08:00
},
{
name = "玩法管理",
Fct = M.PlayEdit
},
{
name = "充值房卡",
2025-05-21 16:04:00 +08:00
Fct = M.ShowShop
2025-05-09 14:56:23 +08:00
},
{
name = "申请消息",
Fct = M.AuditNumber,
redPointFct = M.UpdataRedPointAuditNumber --开启红点
2025-05-09 14:56:23 +08:00
},
{
name = "查看成员",
Fct = M.AllNumber
},
{
name = "创建亲友圈",
Fct = M.CreateFamily
},
{
name = "高级选项",
2025-05-30 13:35:36 +08:00
Fct = M.MoreBtn
2025-05-09 14:56:23 +08:00
},
{
2025-05-14 19:56:12 +08:00
name = "亲友圈排行榜",
2025-06-19 14:38:23 +08:00
Fct = M.ShowAllRank
2025-05-14 19:56:12 +08:00
}
2025-05-09 14:56:23 +08:00
}
},
{
level = 2, --管理员
otherList = {
{
name = "邀请朋友",
Fct = M.ShareWx
},
{
name = "游戏记录",
2025-06-18 14:48:00 +08:00
Fct = M.FamilyRecord
2025-05-09 14:56:23 +08:00
},
{
name = "玩法管理",
Fct = M.PlayEdit
},
{
name = "充值房卡",
2025-05-21 16:04:00 +08:00
Fct = M.ShowShop
2025-05-09 14:56:23 +08:00
},
{
name = "申请消息",
Fct = M.AuditNumber,
redPointFct = M.UpdataRedPointAuditNumber --开启红点
2025-05-09 14:56:23 +08:00
},
{
name = "查看成员",
Fct = M.AllNumber
},
{
name = "创建亲友圈",
Fct = M.CreateFamily
},
{
name = "高级选项",
2025-05-30 13:35:36 +08:00
Fct = M.MoreBtn
2025-05-09 14:56:23 +08:00
},
{
2025-05-21 14:22:02 +08:00
name = "亲友圈排行榜",
2025-06-19 14:38:23 +08:00
Fct = M.ShowAllRank
2025-05-21 14:22:02 +08:00
}
2025-05-09 14:56:23 +08:00
}
},
{
level = 3, --成员
otherList = {
{
name = "邀请朋友",
Fct = M.ShareWx
},
{
name = "创建亲友圈",
Fct = M.CreateFamily
},
{
name = "加入亲友圈",
Fct = M.JoinFamily
},
}
},
}
2025-05-30 13:35:36 +08:00
local MORE_LIST = {
{
name = "一键打样",
Fct = M.BanFamily
},
{
name = "消息记录",
Fct = M.MsgView
2025-05-30 13:35:36 +08:00
},
2025-09-08 20:54:23 +08:00
{
name = "房卡记录",
Fct = M.MsgDiamondView
},
2025-05-30 13:35:36 +08:00
{
name = "禁止同桌",
2025-06-06 19:48:45 +08:00
Fct = M.BanDeskmate
2025-05-30 13:35:36 +08:00
},
{
name = "关闭聊天室",
Fct = M.SetIsOpenChatRoom
},
{
name = "关闭旁观",
Fct = M.SetCanWatch
2025-05-30 13:35:36 +08:00
},
2025-09-09 14:58:47 +08:00
2025-05-30 13:35:36 +08:00
}
2025-07-25 22:17:17 +08:00
function M:ChangeOther()
local i = tonumber(self._group.lev) + 1
2025-05-09 14:56:23 +08:00
local otherList = IDENTITY_LIST[i].otherList
local list_other = self._view:GetChild('list_other')
self._lev = i
2025-09-11 21:11:49 +08:00
self._view:GetController('lev').selectedIndex = self._group.lev - 1
2025-05-09 14:56:23 +08:00
list_other:SetVirtual()
list_other.itemRenderer = function(index, obj)
local cfg = otherList[index + 1]
obj:GetChild('title').text = cfg.name
obj.onClick:Set(handler(self, cfg.Fct))
2025-07-30 18:35:43 +08:00
--print("cfg.redPointFct", cfg.redPointFct)
if cfg.redPointFct then
cfg.redPointFct(self, obj)
end
2025-05-09 14:56:23 +08:00
end
list_other.numItems = #otherList
end
2025-05-30 13:35:36 +08:00
function M:ChangeMore()
local moreList = MORE_LIST
local list_other = self._view:GetChild('list_more')
list_other:SetVirtual()
list_other.itemRenderer = function(index, obj)
local cfg = moreList[index + 1]
obj:GetChild('title').text = cfg.name
obj.onClick:Set(handler(self, cfg.Fct))
2025-05-30 13:35:36 +08:00
obj.onClick:Add(function()
self._view:GetController('moreBtn').selectedIndex = 0
end)
2025-07-30 18:35:43 +08:00
--print("cfg.redPointFct", cfg.redPointFct)
if cfg.redPointFct then
cfg.redPointFct(self, obj)
end
2025-05-30 13:35:36 +08:00
end
list_other.numItems = #moreList
end
function M:RefalshMoreBtn()
-- 有空优化吧
local tex = ""
2025-06-26 00:15:48 +08:00
if self._group.isOpenChatRoom == 1 then
tex = "关闭聊天室"
elseif self._group.isOpenChatRoom == 0 then
tex = "打开聊天室"
end
2025-09-09 14:58:47 +08:00
MORE_LIST[5].name = tex
local tex = ""
2025-06-26 00:15:48 +08:00
if self._group.isWatch == 1 then
tex = "关闭观战"
elseif self._group.isWatch == 0 then
tex = "打开观战"
end
2025-09-09 14:58:47 +08:00
MORE_LIST[6].name = tex
2025-07-02 17:19:20 +08:00
local tex = ""
2025-07-03 19:42:13 +08:00
if self._group.ban then
2025-07-02 17:19:20 +08:00
tex = "一键开启"
else
tex = "一键打烊"
end
MORE_LIST[1].name = tex
self:ChangeMore()
end
2025-07-28 20:42:56 +08:00
function M:ReflashChatRoomRedPoint()
self.cChatRoomRedPoint.selectedIndex = 0
if self._group.messageCount > 0 then
self.cChatRoomRedPoint.selectedIndex = 1
end
local tex = self._group.messageCount
if self._group.messageCount > 99 then
tex = "99+"
end
local tex_redPoint = self.btn_chatRoom:GetChild("tex_redPoint")
tex_redPoint.text = tex
end
2025-10-18 18:42:59 +08:00
function M:RefNotice(groupId)
local group = DataManager.groups:get(groupId)
FamilyNotice.TryShow({ group = group })
end
2025-07-30 18:35:43 +08:00
function M:Show()
2025-09-18 13:32:05 +08:00
ViewUtil.PlaySoundBg()
2025-07-30 18:35:43 +08:00
Broadcast.AddListener(BroadcastEvent.OnJoinsChange, ReflashJoinsRedPoint, self)
Broadcast.AddListener(BroadcastEvent.OnMemberChange, self.ReflashMember, self)
Broadcast.AddListener(BroadcastEvent.OnOutFamily, self.Reflash, self)
2025-07-30 18:35:43 +08:00
2025-08-08 20:17:08 +08:00
self._familyEventView:AddListener()
2025-08-06 18:34:58 +08:00
self:Reflash()
2025-09-05 16:23:34 +08:00
BaseView.Show(self)
2025-07-30 18:35:43 +08:00
end
function M:Close()
2025-07-30 18:35:43 +08:00
Broadcast.RemoveListener(BroadcastEvent.OnJoinsChange, ReflashJoinsRedPoint)
Broadcast.RemoveListener(BroadcastEvent.OnMemberChange, self.ReflashMember)
Broadcast.RemoveListener(BroadcastEvent.OnOutFamily, self.Reflash)
2025-07-30 18:35:43 +08:00
2025-07-25 22:17:17 +08:00
print("家族界面退出")
2025-08-18 20:04:47 +08:00
self._familyEventView:RemoveAll()
BaseView.Close(self)
end
2025-08-18 21:44:31 +08:00
function M:ReflashChatRoomBtn()
self.btn_chatRoom.visible = true
if self._group.lev == 3 and self._group.isOpenChatRoom == 0 then
self.btn_chatRoom.visible = false
end
end
2025-04-01 10:48:36 +08:00
return M