hengyang_client/lua_probject/base_project/Game/View/Family/FamilySelectNumber.lua

91 lines
2.6 KiB
Lua
Raw Permalink Normal View History

2025-06-25 22:49:44 +08:00
local FamilySelectNumber = {}
2025-07-07 16:09:48 +08:00
local function search(self)
local t = self.input_search.text
local re = {}
2025-10-20 18:30:18 +08:00
for _, player in pairs(self.group.members) do
2025-07-07 16:09:48 +08:00
if string.match(player.nick, t) then
re[#re + 1] = player
end
end
self.players = re
end
2025-10-20 18:30:18 +08:00
function FamilySelectNumber.New(data)
setmetatable(FamilySelectNumber, { __index = BaseWindow })
local inst = setmetatable({}, { __index = FamilySelectNumber })
2025-07-05 21:36:09 +08:00
--inst._full = true
inst._scale = true
2025-06-25 22:49:44 +08:00
inst._close_destroy = true
inst._full_offset = false
inst._anim_pop = 0
inst._animation = false
2025-10-20 18:30:18 +08:00
inst._data = data
inst._data_deskMap = {}
for k, v in pairs(data.deskList) do
inst._data_deskMap[v.uid] = 1
end
2025-06-25 22:49:44 +08:00
BaseWindow.init(inst, "ui://Family/com_SelectNumber")
2025-10-20 18:30:18 +08:00
2025-06-25 22:49:44 +08:00
inst:Init()
return inst
end
2025-07-07 16:09:48 +08:00
function FamilySelectNumber:Refalsh()
self.list_number.numItems = #self.players
--self.list_number.numItems = #self.group.members
end
2025-06-25 22:49:44 +08:00
function FamilySelectNumber:Show(groupId, callback)
self.group = DataManager.groups.groupMap[groupId]
2025-07-07 16:09:48 +08:00
self.players = self.group.members
2025-06-25 22:49:44 +08:00
self.callback = callback
2025-07-07 16:09:48 +08:00
self:Refalsh()
2025-06-25 22:49:44 +08:00
BaseWindow.Show(self)
end
function FamilySelectNumber:Init()
2025-07-07 16:09:48 +08:00
self.input_search = self._view:GetChild("input_search")
2025-06-25 22:49:44 +08:00
self.list_number = self._view:GetChild("list_number")
self.btn_search = self._view:GetChild("btn_search")
self.btn_close = self._view:GetChild("btn_close")
self.btn_search.onClick:Set(function()
2025-07-07 16:09:48 +08:00
search(self)
self:Refalsh()
2025-06-25 22:49:44 +08:00
end)
self.btn_close.onClick:Set(function()
self:Close()
end)
2025-10-20 18:30:18 +08:00
self.list_number:SetVirtual()
2025-06-25 22:49:44 +08:00
self.list_number.itemRenderer = function(index, obj)
local i = index + 1
2025-07-07 16:09:48 +08:00
local player = self.players[i] --self.group.members[i]
2025-06-25 22:49:44 +08:00
obj:GetController('lev').selectedIndex = player.lev - 1
obj:GetController('ban').selectedIndex = player.ban
2025-10-20 18:30:18 +08:00
obj:GetController('banDesk').selectedIndex = self._data_deskMap[player.uid] or 0
obj:GetChild('name').emojies = EmojiDitc.EmojiesDitc
2025-06-25 22:49:44 +08:00
obj:GetChild('name').text = player.nick
obj:GetChild('id').text = string.format("ID:%s", player.uid)
2025-10-20 18:30:18 +08:00
ImageLoad.Load(player.portrait, obj:GetChild('btn_head')._iconObject)
if not self._data_deskMap[player.uid] then
obj:GetChild('n17').onClick:Set(function()
if self.callback then
self.callback(player)
end
self.callback = nil
self:Close()
end)
end
2025-06-25 22:49:44 +08:00
end
end
2025-10-20 18:30:18 +08:00
return FamilySelectNumber