local FamilySelectNumber = {} local function search(self) local t = self.input_search.text local re = {} for _, player in pairs(self.group.members) do if string.match(player.nick, t) then re[#re + 1] = player end end self.players = re end function FamilySelectNumber.New(data) setmetatable(FamilySelectNumber, { __index = BaseWindow }) local inst = setmetatable({}, { __index = FamilySelectNumber }) --inst._full = true inst._scale = true inst._close_destroy = true inst._full_offset = false inst._anim_pop = 0 inst._animation = false inst._data = data inst._data_deskMap = {} for k, v in pairs(data.deskList) do inst._data_deskMap[v.uid] = 1 end BaseWindow.init(inst, "ui://Family/com_SelectNumber") inst:Init() return inst end function FamilySelectNumber:Refalsh() self.list_number.numItems = #self.players --self.list_number.numItems = #self.group.members end function FamilySelectNumber:Show(groupId, callback) self.group = DataManager.groups.groupMap[groupId] self.players = self.group.members self.callback = callback self:Refalsh() BaseWindow.Show(self) end function FamilySelectNumber:Init() self.input_search = self._view:GetChild("input_search") 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() search(self) self:Refalsh() end) self.btn_close.onClick:Set(function() self:Close() end) self.list_number:SetVirtual() self.list_number.itemRenderer = function(index, obj) local i = index + 1 local player = self.players[i] --self.group.members[i] obj:GetController('lev').selectedIndex = player.lev - 1 obj:GetController('ban').selectedIndex = player.ban obj:GetController('banDesk').selectedIndex = self._data_deskMap[player.uid] or 0 obj:GetChild('name').emojies = EmojiDitc.EmojiesDitc obj:GetChild('name').text = player.nick obj:GetChild('id').text = string.format("ID:%s", player.uid) 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 end end return FamilySelectNumber