diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..0593f9d3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +wb_unity_pro2/ diff --git a/lua_probject/base_project/Game/Controller/NewGroupController.lua b/lua_probject/base_project/Game/Controller/NewGroupController.lua index 8a693d52..4cb9d4a5 100644 --- a/lua_probject/base_project/Game/Controller/NewGroupController.lua +++ b/lua_probject/base_project/Game/Controller/NewGroupController.lua @@ -1570,7 +1570,7 @@ function M:FG_SetFamilyHeartbeat(group_id, playerId, callback) end) end --- +--显示&隐藏成员 ---@param isShow 1是显示 0是隐藏 function M:FG_SetGroupShow(isShow, groupId, callback) local _client = ControllerManager.GroupClient @@ -1581,3 +1581,14 @@ function M:FG_SetGroupShow(isShow, groupId, callback) callback(res) 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 diff --git a/lua_probject/base_project/Game/Protocol.lua b/lua_probject/base_project/Game/Protocol.lua index 0e49527f..96beb6d7 100644 --- a/lua_probject/base_project/Game/Protocol.lua +++ b/lua_probject/base_project/Game/Protocol.lua @@ -271,6 +271,9 @@ Protocol = { WEB_FG_SET_Family_Diamond = "group/add_group_diamo", -- 亲友圈发送伪心跳 WEB_FG_SET_Family_Heartbeat = "group/set_group_heartbeat", + + -- 亲友圈聊天室 + WEB_FG_GETCHATROOM = 'group/get_chat_rooms', -------------- group-log--------------------- -- 获取奖励日志 WEB_FG_GET_REWARDS_LOG = "group/log/get_reward_log", diff --git a/lua_probject/base_project/Game/View/Family/FamilyBanDesk.lua b/lua_probject/base_project/Game/View/Family/FamilyBanDesk.lua index 0dff9842..4d3f3649 100644 --- a/lua_probject/base_project/Game/View/Family/FamilyBanDesk.lua +++ b/lua_probject/base_project/Game/View/Family/FamilyBanDesk.lua @@ -3,42 +3,116 @@ local FamilySelectNumber = import(".FamilySelectNumber") --region LOCAL local BanDesk = {} -local root = {} local rootLastIndex = 0 -local function HideMainView() - rootLastIndex = root.familyType.selectedIndex - root.familyType.selectedIndex = 0 +local function HideMainView(self) + rootLastIndex = self.root.familyType.selectedIndex + self.root.familyType.selectedIndex = 0 end -local function ShowMainView() - root.familyType.selectedIndex = rootLastIndex or 1 +local function ShowMainView(self) + self.root.familyType.selectedIndex = rootLastIndex or 1 end -local function DelPlayer() +local function LoadData(BanData) 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 --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) local view = BanDesk.New() - root = r - HideMainView() + self.root = r + HideMainView(self) view:Show() end @@ -49,7 +123,7 @@ end function BanDesk:Close() BaseView.Close(self) - ShowMainView() + ShowMainView(self) end function BanDesk.New() @@ -70,11 +144,31 @@ function BanDesk:Init() self.btn_close = self._view:GetChild("btn_close") 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:Close() 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) local data = self.BanData[index +1] @@ -82,24 +176,40 @@ function BanDesk:Init() local tex_name = obj:GetChild("tex_name") local list_BanedPlayers = obj:GetChild("list_BanedPlayers") 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) - 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 btn_delPlayer = playerObj:GetChild("btn_delPlayer") - local btn_addPlayer = playerObj:GetChild("btn_addPlayer") local tex_name = playerObj:GetChild("tex_name") 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 - ImageLoad.Load(loader_icon, player.portrait) - + local btn_delPlayer = playerObj:GetChild("btn_delPlayer") + btn_delPlayer.onClick:Set(function() + -- 删除玩家按钮 + self.changedIndex = index + DelPalyer(data, player.uid, self) + end) end list_BanedPlayers.numItems = #data.deskList @@ -107,28 +217,19 @@ function BanDesk:Init() local add_play = list_BanedPlayers:AddItemFromPool() add_play:GetController("cStyle").selectedIndex = 1 add_play:GetChild("btn_addPlayer").onClick:Set(function() - - local view = FamilySelectNumber.New() - view:Show(root._group.id, function(number) - 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) + -- 添加玩家按钮 + self.changedIndex = index + AddPlayer(data, self) end) - end - end function BanDesk:Reflash() local fgCtr = ControllerManager.GetController(NewGroupController) - local groupId = root._group.id + local groupId = self.root._group.id fgCtr:FG_GetBanTable1(groupId,function(res) - pt(res) - self.BanData = res.Data.ban_list - self.list_banItem.numItems = #self.BanData self:GetBanTableCallback(res) end) end @@ -136,7 +237,7 @@ end function BanDesk:GetBanTableCallback(res) print("BanDesk:GetBanTableCallback") - self.BanData = res.Data.ban_list + self.BanData = Sort(res.Data.ban_list) self.list_banItem.numItems = #self.BanData -- 最后一个添加ban按钮 @@ -145,7 +246,7 @@ function BanDesk:GetBanTableCallback(res) addBanItem:GetController("cStyle").selectedIndex = 1 btn_addBanItem.onClick:Set(function() local fgCtr = ControllerManager.GetController(NewGroupController) - local groupId = root._group.id + local groupId = self.root._group.id local banList = {} fgCtr:FG_SetBanTable1(groupId, -1, banList, "新建关系", function() self:Reflash() @@ -153,5 +254,33 @@ function BanDesk:GetBanTableCallback(res) 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 \ No newline at end of file diff --git a/lua_probject/base_project/Game/View/Family/FamilyChatRoom.lua b/lua_probject/base_project/Game/View/Family/FamilyChatRoom.lua index 5e63fc9b..476a9e4e 100644 --- a/lua_probject/base_project/Game/View/Family/FamilyChatRoom.lua +++ b/lua_probject/base_project/Game/View/Family/FamilyChatRoom.lua @@ -42,6 +42,16 @@ end function FamilyChatRoom:Show() local cChatRoom = self.root._view:GetController("cIsChatRoom") 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 return FamilyChatRoom \ No newline at end of file diff --git a/wb_new_ui/assets/Family/BanDesk/com_banDesk.xml b/wb_new_ui/assets/Family/BanDesk/com_banDesk.xml index de96bcc6..4d6fa157 100644 --- a/wb_new_ui/assets/Family/BanDesk/com_banDesk.xml +++ b/wb_new_ui/assets/Family/BanDesk/com_banDesk.xml @@ -1,5 +1,8 @@ + + + @@ -14,5 +17,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/wb_new_ui/assets/Family/ChatRoom/Image/Rectangle 291.png b/wb_new_ui/assets/Family/ChatRoom/Image/Rectangle 291.png new file mode 100644 index 00000000..c1bf2439 Binary files /dev/null and b/wb_new_ui/assets/Family/ChatRoom/Image/Rectangle 291.png differ diff --git a/wb_new_ui/assets/Family/package.xml b/wb_new_ui/assets/Family/package.xml index 485ea0e5..73552b53 100644 --- a/wb_new_ui/assets/Family/package.xml +++ b/wb_new_ui/assets/Family/package.xml @@ -334,6 +334,7 @@ + \ No newline at end of file diff --git a/wb_unity_pro/Assets/ART/base/Family/ui/Family_atlas0.png b/wb_unity_pro/Assets/ART/base/Family/ui/Family_atlas0.png index c8ca1a68..708f6aa6 100644 Binary files a/wb_unity_pro/Assets/ART/base/Family/ui/Family_atlas0.png and b/wb_unity_pro/Assets/ART/base/Family/ui/Family_atlas0.png differ diff --git a/wb_unity_pro/Assets/ART/base/Family/ui/Family_fui.bytes b/wb_unity_pro/Assets/ART/base/Family/ui/Family_fui.bytes index 7be91a5c..ca08f015 100644 Binary files a/wb_unity_pro/Assets/ART/base/Family/ui/Family_fui.bytes and b/wb_unity_pro/Assets/ART/base/Family/ui/Family_fui.bytes differ