From c0e4f8ce949b7f69523e19edc5ebee41a9c8faab Mon Sep 17 00:00:00 2001 From: 1076390229 <1076390229@qq.com> Date: Mon, 28 Jul 2025 21:44:23 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B3=E8=AF=B7=E6=B6=88=E6=81=AF=E6=95=B4?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Game/View/Common/BaseWindow.lua | 8 ++ .../Game/View/Family/FamilyAuditNumber.lua | 79 ++++++++++-------- .../Game/View/Family/FamilyEventView.lua | 12 ++- .../base_project/Game/View/FamilyView.lua | 8 +- wb_new_ui/assets/Family/Main.xml | 24 +----- wb_new_ui/assets/Family/package.xml | 1 + .../ART/base/Family/ui/Family_fui.bytes | Bin 119690 -> 120035 bytes 7 files changed, 67 insertions(+), 65 deletions(-) diff --git a/lua_probject/base_project/Game/View/Common/BaseWindow.lua b/lua_probject/base_project/Game/View/Common/BaseWindow.lua index 260c51a1..41a41df6 100644 --- a/lua_probject/base_project/Game/View/Common/BaseWindow.lua +++ b/lua_probject/base_project/Game/View/Common/BaseWindow.lua @@ -263,3 +263,11 @@ function BaseWindow.DestroyAll() WindowQueue = {} WindowMap = {} end + +function BaseWindow.FindWindow(viewName) + for _, view in pairs(WindowQueue) do + if view.class == viewName then + return view + end + end +end \ No newline at end of file diff --git a/lua_probject/base_project/Game/View/Family/FamilyAuditNumber.lua b/lua_probject/base_project/Game/View/Family/FamilyAuditNumber.lua index 44e109b6..919d48a6 100644 --- a/lua_probject/base_project/Game/View/Family/FamilyAuditNumber.lua +++ b/lua_probject/base_project/Game/View/Family/FamilyAuditNumber.lua @@ -1,10 +1,7 @@ ---local NumberRemark = import(".FamilyNumberRemark") local GroupSetTagView = import("..NewGroup.GroupSetTagView") local FamilyAuditNumber = {} -local M = FamilyAuditNumber - local function AddItem(self, index, obj) local group = DataManager.groups:get(self._group.id) local info = group.joinsData[index + 1] @@ -23,40 +20,63 @@ local function AddItem(self, index, obj) end function FamilyAuditNumber.new(root) - setmetatable(M, { __index = root }) - local self = setmetatable({}, { __index = M }) - - local list = self._view:GetChild('list_auditNumberList') - --list:RemoveChildrenToPool() - --list:SetVirtual() - list.itemRenderer = function(index, obj) - AddItem(self, index, obj) - end - + setmetatable(FamilyAuditNumber, { __index = BaseView }) + local self = setmetatable({}, { __index = FamilyAuditNumber }) + self.class = "FamilyAuditNumber" + self._scale = true + self._animation = false + self:init("ui://Family/com_auditNumber") return self end -function M:Reflash() - local list = self._view:GetChild('list_auditNumberList') - local group = DataManager.groups:get(self._group.id) - list.numItems = #group.joinsData +function FamilyAuditNumber:init(url) + BaseView.InitView(self, url) + + self.btn_close = self._view:GetChild("btn_close") + self.list_auditNumberList = self._view:GetChild("list_auditNumberList") + + self.list_auditNumberList = self._view:GetChild('list_auditNumberList') + + self.btn_close.onClick:Set(function() + self:Close() + end) + + self.list_auditNumberList.itemRenderer = function(index, obj) + AddItem(self, index, obj) + end end -function M:Show() +function FamilyAuditNumber:Reflash() + local group = DataManager.groups:get(self._group.id) + self.list_auditNumberList.numItems = #group.joinsData +end + +function FamilyAuditNumber:Show(group) + self._group = group local fgCtr = ControllerManager.GetController(NewGroupController) fgCtr:FG_GroupJoins(self._group.id, function(res) if res.ReturnCode ~= 0 then ViewUtil.ErrorTip(res.ReturnCode, "获取成员列表失败") return else - --self.data[self._group.id] = res.Data.joins - self.familyType.selectedIndex = 6 self:Reflash() end end) + + local mgr_ctr = ControllerManager.GetController(GroupMgrController) + mgr_ctr:AddEventListener(GroupMgrEvent.OnNewApply, handler(self, self.OnNewApply)) + + BaseView.Show(self) end -function M:ClickBtn(isAllow, uid) +function FamilyAuditNumber:Close() + local mgr_ctr = ControllerManager.GetController(GroupMgrController) + mgr_ctr:RemoveEventListener(GroupMgrEvent.OnNewApply, handler(self, self.OnNewApply)) + + BaseView.Close(self) +end + +function FamilyAuditNumber:ClickBtn(isAllow, uid) local fgCtr = ControllerManager.GetController(NewGroupController) fgCtr:FG_GroupVerifyJoin(self._group.id, uid, isAllow == 1, function(res) if res.ReturnCode ~= 0 then @@ -76,24 +96,11 @@ function M:ClickBtn(isAllow, uid) end) end -function M:OnNewApply(arg) +function FamilyAuditNumber:OnNewApply(arg) local group = DataManager.groups:get(self._group.id) - - --[[ - arg = arg[1] - - local msg = {} - msg.nick = arg.nick - msg.id = arg.uid - msg.portrait = arg.portrait - msg.tag = arg.remark - local groupInfo = self.data[self._group.id] - groupInfo[#groupInfo + 1] = msg - ]] - local list = self._view:GetChild('list_auditNumberList') local obj = list:AddItemFromPool() AddItem(self, #group.joinsData - 1, obj) end -return M +return FamilyAuditNumber diff --git a/lua_probject/base_project/Game/View/Family/FamilyEventView.lua b/lua_probject/base_project/Game/View/Family/FamilyEventView.lua index 55c1209d..a7390d6e 100644 --- a/lua_probject/base_project/Game/View/Family/FamilyEventView.lua +++ b/lua_probject/base_project/Game/View/Family/FamilyEventView.lua @@ -23,7 +23,7 @@ function FamilyEventView.new(root) mgr_ctr:AddEventListener(GroupMgrEvent.InviteResponse, handler(self, self._evtInviteResponse)) mgr_ctr:AddEventListener(GroupMgrEvent.IsOpenChatRoom, handler(self, self._evtIsOpenChatRoom)) mgr_ctr:AddEventListener(GroupMgrEvent.ChatRoomData, handler(self, self._evtChatRoomData)) - mgr_ctr:AddEventListener(GroupMgrEvent.OnNewApply, handler(self, self._evtOnNewApply)) + --mgr_ctr:AddEventListener(GroupMgrEvent.OnNewApply, handler(self, self._evtOnNewApply)) mgr_ctr:AddEventListener(GroupMgrEvent.OnNewRecord, handler(self, self._evtOnNewRecord)) mgr_ctr:AddEventListener(GroupMgrEvent.Onpush_assistant, handler(self, self._evtOnPush_assistant)) mgr_ctr:AddEventListener(GroupMgrEvent.OnMemberState, handler(self, self._evtOnMemberState)) @@ -49,7 +49,7 @@ function M:RemoveAll() mgr_ctr:RemoveEventListener(GroupMgrEvent.InviteResponse, handler(self, self._evtInviteResponse)) mgr_ctr:RemoveEventListener(GroupMgrEvent.IsOpenChatRoom, handler(self, self._evtIsOpenChatRoom)) mgr_ctr:RemoveEventListener(GroupMgrEvent.ChatRoomData, handler(self, self._evtChatRoomData)) - mgr_ctr:RemoveEventListener(GroupMgrEvent.OnNewApply, handler(self, self._evtOnNewApply)) + --mgr_ctr:RemoveEventListener(GroupMgrEvent.OnNewApply, handler(self, self._evtOnNewApply)) mgr_ctr:RemoveEventListener(GroupMgrEvent.OnNewRecord, handler(self, self._evtOnNewRecord)) mgr_ctr:RemoveEventListener(GroupMgrEvent.Onpush_assistant, handler(self, self._evtOnPush_assistant)) mgr_ctr:RemoveEventListener(GroupMgrEvent.OnMemberState, handler(self, self._evtOnMemberState)) @@ -139,6 +139,7 @@ function M:_evtNewMailTip(...) print("family event _evtNewMailTip") end +--[[ function M:_evtOnNewApply(...) print("_evtOnNewApply") local arg = { ... } @@ -151,6 +152,7 @@ function M:_evtOnNewApply(...) view:ChangeOther() self._child_familyAuditNumber:OnNewApply(arg) end +]] function M:_evtInviteResponse(...) local arg = { ... } @@ -310,7 +312,11 @@ function M:_evtOnFamilyReflash(...) end view:ChangeOther() - view._child_familyAuditNumber:Reflash() + + local win = BaseWindow.FindWindow("FamilyAuditNumber") + if win then + win:Reflash() + end end end diff --git a/lua_probject/base_project/Game/View/FamilyView.lua b/lua_probject/base_project/Game/View/FamilyView.lua index 10da066f..e6e35134 100644 --- a/lua_probject/base_project/Game/View/FamilyView.lua +++ b/lua_probject/base_project/Game/View/FamilyView.lua @@ -93,7 +93,7 @@ function M:init(url) local view = self._view self.lastTime = os.time() - self._child_familyAuditNumber = FamilyAuditNumber.new(self) + --self._child_familyAuditNumber = FamilyAuditNumber.new(self) self.com_FamilyChatRoom = FamilyChatRoom:Init(view:GetChild('com_chatRoom'), self) local fgCtr = ControllerManager.GetController(NewGroupController) @@ -316,8 +316,10 @@ function M:AllNumber() end function M:AuditNumber() - self.lastType = 1 - self._child_familyAuditNumber:Show() + local view = FamilyAuditNumber.new(self) + view:Show(self._group) + --self.lastType = 1 + --self._child_familyAuditNumber:Show() --self._child_familyAuditNumber = FamilyAuditNumber.new(self) end diff --git a/wb_new_ui/assets/Family/Main.xml b/wb_new_ui/assets/Family/Main.xml index af9c6ca7..c9d1b249 100644 --- a/wb_new_ui/assets/Family/Main.xml +++ b/wb_new_ui/assets/Family/Main.xml @@ -1,6 +1,6 @@ - + @@ -176,28 +176,6 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/wb_new_ui/assets/Family/package.xml b/wb_new_ui/assets/Family/package.xml index 1774005e..53a1e115 100644 --- a/wb_new_ui/assets/Family/package.xml +++ b/wb_new_ui/assets/Family/package.xml @@ -392,6 +392,7 @@ + \ No newline at end of file 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 691c992f1df2668e45a5cd654ae791840ef0bf81..d561d35c889baad2a603ce895452016feb0e7daf 100644 GIT binary patch delta 6273 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