禁止同桌协议调通,聊天室开始联调

master
DESKTOP-7R8JEQQ\k 2025-06-24 21:50:51 +08:00
parent 530a2171b4
commit 9cc8e006a4
10 changed files with 213 additions and 43 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
wb_unity_pro2/

View File

@ -1570,7 +1570,7 @@ function M:FG_SetFamilyHeartbeat(group_id, playerId, callback)
end) end)
end end
-- --显示&隐藏成员
---@param isShow 1是显示 0是隐藏 ---@param isShow 1是显示 0是隐藏
function M:FG_SetGroupShow(isShow, groupId, callback) function M:FG_SetGroupShow(isShow, groupId, callback)
local _client = ControllerManager.GroupClient local _client = ControllerManager.GroupClient
@ -1581,3 +1581,14 @@ function M:FG_SetGroupShow(isShow, groupId, callback)
callback(res) callback(res)
end) end)
end end
--聊天室
---@groupId 亲友圈id
function M:GetChatRoom(groupId, callback)
local _client = ControllerManager.GroupClient
local _data = {}
_data.id = groupId
_client:send(Protocol.WEB_FG_GETCHATROOM, _data, function(res)
callback(res)
end)
end

View File

@ -271,6 +271,9 @@ Protocol = {
WEB_FG_SET_Family_Diamond = "group/add_group_diamo", WEB_FG_SET_Family_Diamond = "group/add_group_diamo",
-- 亲友圈发送伪心跳 -- 亲友圈发送伪心跳
WEB_FG_SET_Family_Heartbeat = "group/set_group_heartbeat", WEB_FG_SET_Family_Heartbeat = "group/set_group_heartbeat",
-- 亲友圈聊天室
WEB_FG_GETCHATROOM = 'group/get_chat_rooms',
-------------- group-log--------------------- -------------- group-log---------------------
-- 获取奖励日志 -- 获取奖励日志
WEB_FG_GET_REWARDS_LOG = "group/log/get_reward_log", WEB_FG_GET_REWARDS_LOG = "group/log/get_reward_log",

View File

@ -3,42 +3,116 @@ local FamilySelectNumber = import(".FamilySelectNumber")
--region LOCAL --region LOCAL
local BanDesk = {} local BanDesk = {}
local root = {}
local rootLastIndex = 0 local rootLastIndex = 0
local function HideMainView() local function HideMainView(self)
rootLastIndex = root.familyType.selectedIndex rootLastIndex = self.root.familyType.selectedIndex
root.familyType.selectedIndex = 0 self.root.familyType.selectedIndex = 0
end end
local function ShowMainView() local function ShowMainView(self)
root.familyType.selectedIndex = rootLastIndex or 1 self.root.familyType.selectedIndex = rootLastIndex or 1
end end
local function DelPlayer() local function LoadData(BanData)
end end
local function AddPlayer() local function GetIconFromGroupData(playerId, group)
local player = group.memberMap[playerId]
if player then
return player.portrait
end
print("玩家不在group中无法找到头像 玩家id=",playerId)
return ""
end
local function AllUid(deskList)
local re = {}
pt(deskList)
for _, player in pairs(deskList) do
re[#re + 1] = player.uid
end
return re
end
local function AddPlayer(data, self)
-- 点击弹出选择成员界面
local view = FamilySelectNumber.New()
view:Show(self.root._group.id, function(number)
local players = AllUid(data.deskList)
players[#players + 1] = number.uid
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_SetBanTable1(self.root._group.id, data.deskId, players, data.deskName, function() self:ReflashDesk() end)
end)
end
local function DelPalyer(data, uid, self)
local players = AllUid(data.deskList)
for _, id in pairs(players) do
if id == uid then
players[_] = nil
end
end
-- 修复下标的连续性不然json.encode会吧空下标也解析出来
local fix = {}
for _, id in pairs(players) do
fix[#fix + 1] = id
end
players = fix
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_SetBanTable1(self.root._group.id, data.deskId, players, data.deskName, function() self:ReflashDesk() end)
end
local function DelDesk(data, self)
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_SetBanTable1(self.root._group.id, data.deskId, {}, data.deskName, function() self:Reflash() end)
end
local function ChangeName(deskData, name, self)
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_SetBanTable1(self.root._group.id, deskData.deskId, AllUid(deskData.deskList), name, function()
self:ReflashDesk()
self:CloseRemaskWindow()
end)
end
local function Sort(BanData)
-- 把空的桌子放到下面
local emtpy = {}
for index, desk in pairs(BanData) do
if desk.deskList == nil or #desk.deskList == 0 then
emtpy[#emtpy + 1] = desk
BanData[index] = nil
end
end
local re = {}
for _, desk in pairs(BanData) do
re[#re + 1] = desk
end
for _, desk in pairs(emtpy) do
re[#re + 1] = desk
end
return re
end end
--endregion --endregion
--[[ 禁止同桌数据
BanDesk.BanData = {
{ name = "备注1", deskList = {{name = "大哥", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}, {name = "大哥2", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}} },
{ name = "备注2", deskList = {{name = "大哥", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}, {name = "大哥3", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}} },
{ name = "备注3", deskList = {{name = "大哥", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}, {name = "大哥4", portrait = "https://thirdwx.qlogo.cn/mmopen/vi_32/Q3auHgzwzM5wiaLFFbHru0weDn6qaXkzW14MLJcqEMxsv2C0EuAxPH1Cf5DGZLmd4EppPeDWlksCuXtFJQC85mw/132"}} },
}]]
function BanDesk:TryShow(r) function BanDesk:TryShow(r)
local view = BanDesk.New() local view = BanDesk.New()
root = r self.root = r
HideMainView() HideMainView(self)
view:Show() view:Show()
end end
@ -49,7 +123,7 @@ end
function BanDesk:Close() function BanDesk:Close()
BaseView.Close(self) BaseView.Close(self)
ShowMainView() ShowMainView(self)
end end
function BanDesk.New() function BanDesk.New()
@ -70,11 +144,31 @@ function BanDesk:Init()
self.btn_close = self._view:GetChild("btn_close") self.btn_close = self._view:GetChild("btn_close")
self.list_banItem = self._view:GetChild("list_banItem") self.list_banItem = self._view:GetChild("list_banItem")
self.cSetName = self._view:GetController("cSetName")
self.btn_bgRemask = self._view:GetChild("btn_bgRemask")
self.btn_confirmRemask = self._view:GetChild("btn_confirmRemask")
self.btn_quitRemask = self._view:GetChild("btn_quitRemask")
self.input_name = self._view:GetChild("input_name")
self.btn_confirmRemask = self._view:GetChild("btn_confirmRemask")
self.input_name = self._view:GetChild('input_name')
self.btn_close.onClick:Set(function() self.btn_close.onClick:Set(function()
self:Close() self:Close()
end) end)
self.btn_quitRemask.onClick:Set(function()
self:CloseRemaskWindow()
end)
self.btn_bgRemask.onClick:Set(function()
self:CloseRemaskWindow()
end)
self.btn_confirmRemask.onClick:Set(function()
local name = self.input_name.text
ChangeName(self.selectBanItem, name, self)
end)
self.list_banItem.itemRenderer = function(index, obj) self.list_banItem.itemRenderer = function(index, obj)
local data = self.BanData[index +1] local data = self.BanData[index +1]
@ -82,24 +176,40 @@ function BanDesk:Init()
local tex_name = obj:GetChild("tex_name") local tex_name = obj:GetChild("tex_name")
local list_BanedPlayers = obj:GetChild("list_BanedPlayers") local list_BanedPlayers = obj:GetChild("list_BanedPlayers")
local btn_del = obj:GetChild("btn_del") local btn_del = obj:GetChild("btn_del")
local btn_edit = obj:GetChild("btn_edit")
tex_name.text = data.name tex_name.text = data.deskName
obj:GetController("cStyle").selectedIndex = 0
btn_del.onClick:Set(function() btn_edit.onClick:Set(function()
-- 删除 -- 修改备注
self.changedIndex = index
self.selectBanItem = data
self:OpenRemaskWindow()
end) end)
list_BanedPlayers.itemRenderer = function(playerIndex, playerObj, index) btn_del.onClick:Set(function()
-- 删除整个桌子
DelDesk(data, self)
end)
list_BanedPlayers.itemRenderer = function(playerIndex, playerObj)
local loader_icon = playerObj:GetChild("loader_icon") local loader_icon = playerObj:GetChild("loader_icon")
local btn_delPlayer = playerObj:GetChild("btn_delPlayer")
local btn_addPlayer = playerObj:GetChild("btn_addPlayer")
local tex_name = playerObj:GetChild("tex_name") local tex_name = playerObj:GetChild("tex_name")
local player = data.deskList[playerIndex + 1] local player = data.deskList[playerIndex + 1]
playerObj:GetController("cStyle").selectedIndex = 0
tex_name.text = player.nick
local img = GetIconFromGroupData(player.uid, self.root._group)
ImageLoad.Load(img, loader_icon)
tex_name.text = player.name local btn_delPlayer = playerObj:GetChild("btn_delPlayer")
ImageLoad.Load(loader_icon, player.portrait) btn_delPlayer.onClick:Set(function()
-- 删除玩家按钮
self.changedIndex = index
DelPalyer(data, player.uid, self)
end)
end end
list_BanedPlayers.numItems = #data.deskList list_BanedPlayers.numItems = #data.deskList
@ -107,28 +217,19 @@ function BanDesk:Init()
local add_play = list_BanedPlayers:AddItemFromPool() local add_play = list_BanedPlayers:AddItemFromPool()
add_play:GetController("cStyle").selectedIndex = 1 add_play:GetController("cStyle").selectedIndex = 1
add_play:GetChild("btn_addPlayer").onClick:Set(function() add_play:GetChild("btn_addPlayer").onClick:Set(function()
-- 添加玩家按钮
local view = FamilySelectNumber.New() self.changedIndex = index
view:Show(root._group.id, function(number) AddPlayer(data, self)
data.deskList[#data.deskList + 1] = number.uid
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:FG_SetBanTable1(root._group.id, data.deskId, data.deskList, data.deskName, function() self:Reflash() end)
end) end)
end)
end end
end end
function BanDesk:Reflash() function BanDesk:Reflash()
local fgCtr = ControllerManager.GetController(NewGroupController) local fgCtr = ControllerManager.GetController(NewGroupController)
local groupId = root._group.id local groupId = self.root._group.id
fgCtr:FG_GetBanTable1(groupId,function(res) fgCtr:FG_GetBanTable1(groupId,function(res)
pt(res)
self.BanData = res.Data.ban_list
self.list_banItem.numItems = #self.BanData
self:GetBanTableCallback(res) self:GetBanTableCallback(res)
end) end)
end end
@ -136,7 +237,7 @@ end
function BanDesk:GetBanTableCallback(res) function BanDesk:GetBanTableCallback(res)
print("BanDesk:GetBanTableCallback") print("BanDesk:GetBanTableCallback")
self.BanData = res.Data.ban_list self.BanData = Sort(res.Data.ban_list)
self.list_banItem.numItems = #self.BanData self.list_banItem.numItems = #self.BanData
-- 最后一个添加ban按钮 -- 最后一个添加ban按钮
@ -145,7 +246,7 @@ function BanDesk:GetBanTableCallback(res)
addBanItem:GetController("cStyle").selectedIndex = 1 addBanItem:GetController("cStyle").selectedIndex = 1
btn_addBanItem.onClick:Set(function() btn_addBanItem.onClick:Set(function()
local fgCtr = ControllerManager.GetController(NewGroupController) local fgCtr = ControllerManager.GetController(NewGroupController)
local groupId = root._group.id local groupId = self.root._group.id
local banList = {} local banList = {}
fgCtr:FG_SetBanTable1(groupId, -1, banList, "新建关系", function() fgCtr:FG_SetBanTable1(groupId, -1, banList, "新建关系", function()
self:Reflash() self:Reflash()
@ -153,5 +254,33 @@ function BanDesk:GetBanTableCallback(res)
end) end)
end end
function BanDesk:ReflashDesk()
-- 只刷新一个元素,暂时怎么处理,有时间优化
local data = self.BanData[self.changedIndex +1]
local obj = self.list_banItem:GetChildAt(self.changedIndex)
local tex_name = obj:GetChild("tex_name")
local list_BanedPlayers = obj:GetChild("list_BanedPlayers")
tex_name.text = data.deskName
obj:GetController("cStyle").selectedIndex = 0
list_BanedPlayers.numItems = #data.deskList
local add_play = list_BanedPlayers:AddItemFromPool()
add_play:GetController("cStyle").selectedIndex = 1
add_play:GetChild("btn_addPlayer").onClick:Set(function()
-- 添加玩家按钮
self.changedIndex = self.changedIndex
AddPlayer(data, self)
end)
end
-- 打开备注界面
function BanDesk:OpenRemaskWindow()
self.cSetName.selectedIndex = 1
end
function BanDesk:CloseRemaskWindow()
self.cSetName.selectedIndex = 0
end
return BanDesk return BanDesk

View File

@ -42,6 +42,16 @@ end
function FamilyChatRoom:Show() function FamilyChatRoom:Show()
local cChatRoom = self.root._view:GetController("cIsChatRoom") local cChatRoom = self.root._view:GetController("cIsChatRoom")
cChatRoom.selectedIndex = 1 cChatRoom.selectedIndex = 1
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:GetChatRoom(self.root._group.id, function(res)
self:GetChatCallBack(res)
end)
end
function FamilyChatRoom:GetChatCallBack(res)
print("收到聊天室协议")
pt(res)
end end
return FamilyChatRoom return FamilyChatRoom

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<component size="2532,1170"> <component size="2532,1170">
<controller name="cSetName" pages="0,,1," selected="0">
<remark page="1" value="显示修改备注"/>
</controller>
<displayList> <displayList>
<image id="n0_jw05" name="n0" src="mc627d05" fileName="Main/Image/Rectangle 91.png" xy="225,165" size="2082,993"/> <image id="n0_jw05" name="n0" src="mc627d05" fileName="Main/Image/Rectangle 91.png" xy="225,165" size="2082,993"/>
<image id="n1_jw05" name="n1" src="jw057d2l" fileName="BanDesk/Image/Rectangle 286.png" xy="243,183" size="2046,957"/> <image id="n1_jw05" name="n1" src="jw057d2l" fileName="BanDesk/Image/Rectangle 286.png" xy="243,183" size="2046,957"/>
@ -14,5 +17,17 @@
<text id="n4_jw05" name="n4" xy="327,1069" size="1050,56" font="ui://27vd145bg2mo7ij0" fontSize="42" color="#8b6914" text="2.管理员可以设置最多100个关系每个关系最多6个玩家"/> <text id="n4_jw05" name="n4" xy="327,1069" size="1050,56" font="ui://27vd145bg2mo7ij0" fontSize="42" color="#8b6914" text="2.管理员可以设置最多100个关系每个关系最多6个玩家"/>
<image id="n5_jw05" name="n5" src="jw057d31" fileName="BanDesk/Image/9 拷贝.png" xy="1100,30"/> <image id="n5_jw05" name="n5" src="jw057d31" fileName="BanDesk/Image/9 拷贝.png" xy="1100,30"/>
<component id="n6_jw05" name="btn_close" src="in3i7cu9" fileName="Main/Component/btn_close.xml" xy="54,6"/> <component id="n6_jw05" name="btn_close" src="in3i7cu9" fileName="Main/Component/btn_close.xml" xy="54,6"/>
<component id="n8_mwyl" name="btn_bgRemask" src="sfjv7d3g" fileName="MyFamily/Component/btn_bg.xml" xy="0,0" size="2532,1170" group="n17_mwyl"/>
<image id="n9_mwyl" name="n9" src="sfjv7d3l" fileName="MyFamily/Image/Rectangle 40.png" xy="648,309" size="1236,771" group="n17_mwyl"/>
<image id="n10_mwyl" name="n10" src="sfjv7d3h" fileName="MyFamily/Image/Rectangle 39.png" xy="622,285" size="1287,828" group="n17_mwyl"/>
<image id="n11_mwyl" name="n11" src="c8pn7czw" fileName="RoomCrad/Image/title_top.png" xy="630,193" size="1272,254" group="n17_mwyl"/>
<image id="n12_mwyl" name="n12" src="mwyl7d4w" fileName="ChatRoom/Image/Rectangle 291.png" xy="720,604" size="1092,79" group="n17_mwyl"/>
<text id="n13_mwyl" name="n13" xy="1000,203" size="531,175" group="n17_mwyl" font="ui://27vd145bh35o7ili" fontSize="66" color="#ffffff" align="center" vAlign="middle" autoSize="none" text="备注修改"/>
<component id="n14_mwyl" name="btn_confirmRemask" src="sfjv7d3n" fileName="MyFamily/Component/btn_confirmNotice.xml" xy="1095,887" size="342,129" group="n17_mwyl"/>
<text id="n15_mwyl" name="input_name" xy="740,600" size="1052,86" group="n17_mwyl" font="ui://27vd145bh35o7im7" fontSize="42" color="#222222" vAlign="middle" autoSize="none" text="" input="true" prompt="请输入备注"/>
<component id="n16_mwyl" name="btn_quitRemask" src="sfjv7d3k" fileName="MyFamily/Component/btn_quitNotice.xml" xy="1771,163" group="n17_mwyl"/>
<group id="n17_mwyl" name="n17" xy="0,0" size="2532,1170" advanced="true">
<gearDisplay controller="cSetName" pages="1"/>
</group>
</displayList> </displayList>
</component> </component>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -334,6 +334,7 @@
<image id="j0cy7d4t" name="Component 1.png" path="/MyFamily/Image/"/> <image id="j0cy7d4t" name="Component 1.png" path="/MyFamily/Image/"/>
<component id="j0cy7d4u" name="btn_showNumber.xml" path="/MyFamily/Component/"/> <component id="j0cy7d4u" name="btn_showNumber.xml" path="/MyFamily/Component/"/>
<component id="txni7d4v" name="com_SelectNumber.xml" path="/SelectNumber/" exported="true"/> <component id="txni7d4v" name="com_SelectNumber.xml" path="/SelectNumber/" exported="true"/>
<image id="mwyl7d4w" name="Rectangle 291.png" path="/ChatRoom/Image/" scale="9grid" scale9grid="31,29,22,36"/>
</resources> </resources>
<publish name="Family" path="..\wb_unity_pro\Assets\ART\base\Family\ui" packageCount="2"/> <publish name="Family" path="..\wb_unity_pro\Assets\ART\base\Family\ui" packageCount="2"/>
</packageDescription> </packageDescription>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 MiB

After

Width:  |  Height:  |  Size: 3.2 MiB