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

450 lines
15 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

local FamilyInviteFamilyView = import('.Family.FamilyInviteFamilyView')
local CreatePlayView = import('.Family.CreatePlayView')
local GroupGameSettingView = import(".NewGroup.MngView.GroupGameSettingView_jaingxi")
---无窗口
local FamilyAllNumbers = import(".Family.FamilyAllNumbers")
local FamilyNumberRecord = import(".Family.FamilyNumberRecord")
local FamilyAuditNumber = import(".Family.FamilyAuditNumber")
local FamilyJoinAndCreate = import(".Family.FamilyJoinAndCreate")
---
FamilyView = {}
local M = FamilyView
function FamilyView.new()
UIPackage.AddPackage("base/Family/ui/Family")
setmetatable(M, { __index = BaseView })
local self = setmetatable({}, { __index = M })
self.class = 'FamilyMainView'
self._full = true
self._close_destroy = false
self._fristRoom = true
self:init('ui://Family/Main')
return self
end
function M:init(url)
BaseView.InitView(self, url)
self._full_offset = false
local view = self._view
local fgCtr = ControllerManager.GetController(NewGroupController)
self.familyType = view:GetController('familyType')
self.btn_close = view:GetChild('btn_close')
self:InitCloseClick()
fgCtr:FG_GroupList(function(res)
local groups = res.Data.groups
if #groups > 0 then
self.familyType.selectedIndex = 1
self:ConnetFamily(1, groups, true)
else
self.familyType.selectedIndex = 3
end
end)
-------绑定成员战绩按钮
view:GetChild('btn_family_record').onClick:Set(function()
self._child_familyNumberRecord = FamilyNumberRecord.New(self)
self.lastType = 1
end)
end
function M:InitCloseClick()
self.btn_close.onClick:Set(function()
if not self.lastType or self.familyType.selectedIndex == 1 then
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)
end
function M:ShareWx()
local familyInviteFamilyView = FamilyInviteFamilyView.new()
familyInviteFamilyView:Show()
end
function M:CreateFamily()
self.familyType.selectedIndex = 3
self.lastType = 1
self._view:GetController('createOrJoin').selectedIndex = 0
self._child_familyJoinAndCreate = FamilyJoinAndCreate.new(self)
end
function M:JoinFamily()
self.familyType.selectedIndex = 3
self.lastType = 1
self._view:GetController('createOrJoin').selectedIndex = 1
end
function M:PlayEdit()
self.familyType.selectedIndex = 2
self.lastType = 1
end
function M:AllNumber()
self.lastType = 1
self._child_familyAllNumbers = FamilyAllNumbers.new(self)
end
function M:AuditNumber()
self.lastType = 1
self._child_familyAuditNumber = FamilyAuditNumber.new(self)
end
function M:ChangeNumber(fgCtr, group_id, limit, num, minus_only, sort_type)
local list_familyNumber = self._view:GetChild('list_familyNumber')
list_familyNumber:SetVirtual()
fgCtr:FG_GroupMembers(group_id, limit, num, minus_only, sort_type, function(res)
local members = self._group.members
-- print("==========================res.Data.members")
pt(self._group.members)
ViewUtil:CloseModalWait()
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, "获取成员列表失败")
else
list_familyNumber.itemRenderer = function(index, obj)
obj:GetChild('text_name').text = members[index + 1].nick
end
list_familyNumber.numItems = res.Data.member_num
return 1
end
end)
return 0
end
function M:ConnetFamilyRoom(fgCtr, id)
fgCtr:FG_EnterGroup(id, function(res)
ViewUtil:CloseModalWait()
if res.ReturnCode ~= 0 then
ViewUtil.ErrorTip(res.ReturnCode, "获取房间列表列表失败")
else
self:UpdateFamilyRoom(fgCtr, id)
return 1
end
end)
return 0
end
function M:UpdateFamilyRoom(fgCtr, id)
local list_room = self._view:GetChild('list_room')
list_room:SetVirtual()
local list_gamePlay = self._view:GetChild('list_gamePlay')
list_gamePlay:SetVirtual()
local playList = self._group.playList
--初始化玩法列表,用于房间使用
local playGameInfoTable = {}
for i = 1, #playList do
playGameInfoTable[playList[i].id] = {
gameId = playList[i].gameId,
config = playList[i].config,
name = playList[i].name,
}
end
local roomList = self._group.rooms
local roomCtr = ControllerManager.GetController(RoomController)
list_room.itemRenderer = function(index, obj)
if index < #roomList then
local newIndex = index + 1
local config = ExtendManager.GetExtendConfig(playGameInfoTable[roomList[newIndex].pid].gameId)
local mode = config:GetGameInfo()
local gamePlay = mode:LoadConfigToDetail(playGameInfoTable[roomList[newIndex].pid].config)
obj:GetChild('Label_gameRule').title = gamePlay
obj:GetChild('game_type').text = string.format("%s房间-%s", playGameInfoTable[roomList[newIndex].pid].name,
roomList[newIndex].id)
obj:GetChild('btn_joinGame'):GetController('type').selectedIndex = 1
obj:GetChild('btn_joinGame').onClick:Set(function()
roomCtr:PublicJoinRoom(
Protocol.WEB_FG_JOIN_ROOM,
roomList[newIndex].id,
false,
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
ViewManager.ChangeView(ViewManager.View_Main, playGameInfoTable[roomList[newIndex].pid]
.gameId)
end
end,
id,
roomList[newIndex].pid
)
end)
else
local newIndex = index - #roomList + 1
local config = ExtendManager.GetExtendConfig(playList[newIndex].gameId)
local mode = config:GetGameInfo()
local gamePlay = mode:LoadConfigToDetail(playList[newIndex].config)
obj:GetChild('Label_gameRule').title = gamePlay
obj:GetChild('game_type').text = playList[newIndex].name
obj:GetChild('btn_joinGame'):GetController('type').selectedIndex = 0
obj:GetChild('btn_joinGame').onClick:Set(function()
roomCtr:PublicJoinRoom(
Protocol.WEB_FG_MATCH_ROOM,
"",
true,
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
ViewManager.ChangeView(ViewManager.View_Main, playList[newIndex].gameId)
end
end,
id,
playList[newIndex].id
)
end)
end
end
list_gamePlay.itemRenderer = function(index, obj)
if index == 0 then
obj:GetChild('num').text = string.format("%d/7", #playList)
obj:GetChild('btn_addPlay').onClick:Set(function()
local tem = GroupGameSettingView.new(self.blur_view, id, 0, nil, function(play)
local group = DataManager.groups:get(id)
group:addPlay(play)
-- self:FillView()
self:UpdateFamilyRoom(fgCtr, id)
printlog("刷新玩法===>>>>")
group.update_play = true
end)
tem:Show()
end)
return
end
obj:GetChild('text_title').text = playList[index].game_name
obj:GetChild('Label_details'):GetChild('title').text = playList[index].config
obj:GetController('type').selectedIndex = 1
obj:GetChild('btn_del').onClick:Add(function()
fgCtr:FG_DelPlay(id, playList[index].id, function()
ViewUtil.ShowBannerOnScreenCenter("删除成功")
self:UpdateFamilyRoom(fgCtr, id)
end)
end)
end
local all_num = #playList + #roomList
-- print("=================================================list_room", list_room, list_room.numItems, all_num)
pt(list_room)
list_room.numItems = all_num
list_gamePlay.numItems = #playList + 1
end
function M:ConnetFamily(index, groups, isCreate)
UpdateBeat:Remove(self.OnUpdate, self)
ViewUtil:CloseModalWait()
local list_family = self._view:GetChild('list_family')
list_family:SetVirtual()
self._group = DataManager.groups:get(groups[index].id)
-- print("===================================self._group")
pt(self._group)
self._roomNum = self._group.room_num
if isCreate then
list_family.itemRenderer = function(i, obj)
local j = i + 1
obj:GetChild('name').text = groups[j].name
obj.onClick:Add(function()
self:ConnetFamily(j, DataManager.groups.groupList, false)
end)
end
list_family.numItems = #groups
end
local fgCtr = ControllerManager.GetController(NewGroupController)
ViewUtil.ShowModalWait(self._root_view, "正在加载亲友圈权限中......")
self:ChangeOther(tonumber(self._group.lev) + 1)
allLoad = 1
ViewUtil.ShowModalWait(self._root_view, "正在加载成员列表中......")
allLoad = allLoad +
self:ChangeNumber(fgCtr, self._group.id, 0, self._group.total_member_num, false,
1)
ViewUtil.ShowModalWait(self._root_view, "正在加载房间列表中......")
allLoad = allLoad + self:ConnetFamilyRoom(fgCtr, self._group.id)
UpdateBeat:Add(self.OnUpdate, self)
end
function M:OnUpdate()
-- --12001事件
-- if self._group.update_room then
-- local fgCtr = ControllerManager.GetController(NewGroupController)
-- 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
end
local IDENTITY_LIST = {
{
level = 0, --圈主
},
{
level = 1, --副圈主
otherList = {
{
name = "邀请朋友",
Fct = M.ShareWx
},
{
name = "游戏记录",
Fct = M.ShareWx
},
{
name = "玩法管理",
Fct = M.PlayEdit
},
{
name = "充值房卡",
Fct = M.ShareWx
},
{
name = "申请消息",
Fct = M.AuditNumber
},
{
name = "查看成员",
Fct = M.AllNumber
},
{
name = "创建亲友圈",
Fct = M.CreateFamily
},
{
name = "高级选项",
Fct = M.CreateFamily
},
{
name = "亲友圈排行榜",
Fct = M.CreateFamily
}
}
},
{
level = 2, --管理员
otherList = {
{
name = "邀请朋友",
Fct = M.ShareWx
},
{
name = "游戏记录",
Fct = M.ShareWx
},
{
name = "玩法管理",
Fct = M.PlayEdit
},
{
name = "充值房卡",
Fct = M.ShareWx
},
{
name = "申请消息",
Fct = M.AuditNumber
},
{
name = "查看成员",
Fct = M.AllNumber
},
{
name = "创建亲友圈",
Fct = M.CreateFamily
},
{
name = "高级选项",
Fct = M.CreateFamily
},
{
name = "亲友圈排行榜",
Fct = M.CreateFamily
}
}
},
{
level = 3, --成员
otherList = {
{
name = "邀请朋友",
Fct = M.ShareWx
},
{
name = "创建亲友圈",
Fct = M.CreateFamily
},
{
name = "加入亲友圈",
Fct = M.JoinFamily
},
}
},
}
function M:ChangeOther(i)
local otherList = IDENTITY_LIST[i].otherList
local list_other = self._view:GetChild('list_other')
self._lev = i
list_other:SetVirtual()
list_other.itemRenderer = function(index, obj)
obj:GetChild('text').text = otherList[index + 1].name
obj.onClick:Add(handler(self, otherList[index + 1].Fct))
end
list_other.numItems = #otherList
end
return M