-- 牌友圈成员列表 local GroupNumberInputView = import('.GroupNumberInputView') local GroupMemberFagLogView = import('.GroupMemberFagLogView') local GroupSetPermissionView = import('.GroupSetPermissionView') local GroupBanSameTableView = import('.GroupBanSameTableView') local GroupMemberOperateView = import('.GroupMemberOperateView') local GroupAddMemberInfoView = import('.GroupAddMemberInfoView') local GroupStatMember = import('.GroupStatMember') local GroupMngFagPackView = import('../GroupMngFagPackView') local MngPermission = import('.MngPermission') local GroupMngMenKangView = { numberMap = { {}, {} }, backTable = {}, pageNum = 4, start = 1, page = 1 } local M = GroupMngMenKangView setmetatable(M, { __index = BaseWindow }) local gid function GroupMngMenKangView.new(group_id, blur_view) local self = setmetatable({}, { __index = M }) self.class = 'GroupMngMenKangView' self.group_id = group_id self.curGroup = DataManager.groups:get(self.group_id) self.member_data = {} self.online = 2 self.stype = 2 self:FillView() return self end function M:initData() if self._view:GetController('page').selectedIndex == 0 then self:GetMemberData(0) elseif self._view:GetController('page').selectedIndex == 1 then self:GetMemberData(0) --self:GetJoinsData() end end -- 管理员权限 local MngPermissionList = { DeleteMember = 1, -- 删除成员 AddMember = 2, --添加成员 SetFag = 3, --设置体力值 BanPlaying = 4, --禁止游戏 BanSameTable = 5 --禁止同桌 } local function CheckPermission(lev, permission) if lev == 2 and not permission then ViewUtil.ErrorTip(nil, '您无权操作!如有需要请联系盟主。', 1) return false end return true end function M:FillView() BaseWindow.init(self, 'ui://NewGroup/View_GroupMenKang') local rtype = self._view:GetChild("n132") rtype.visible = false rtype.onChanged:Set(function() if tostring(self.online) == rtype.value then return end self.online = tonumber(rtype.value) self:GetMemberData(0) --printlog("aaaaaaaa222222222222222222222222222222") end) local rtype = self._view:GetChild("n136") rtype.onClick:Set(function() self:GetMemberData(0) self._ctr_search.selectedIndex = 0 --printlog("aaaaaaaa222222222222222222222222222222") end) -- 初始化成员列表 self.lst_member = self._view:GetChild('lst_member') self.lst_member:SetVirtual() self.lst_member.itemRenderer = function(index, obj) self:OnRenderItem(index, obj) end -- self.lst_member.scrollPane.onPullUpRelease:Set( -- function() -- --printlog("aaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbb ",self.lst_member.numItems) -- self:GetMemberData(self.lst_member.numItems) -- end -- ) -- 初始化搜索成员列表 self.lst_member_find = self._view:GetChild('lst_member_find') self.lst_member_find:SetVirtual() self.lst_member_find.itemRenderer = function(index, obj) self:OnRenderItemFind(index, obj) end --local n50=self._view:GetChild('n50') --print(n50) --n50.displayObject.gameObject.transform.localPosition.x=214 --print(n50.displayObject.gameObject.transform.localPosition.x) -- 搜索玩家 self._ctr_search = self._view:GetController('search') self._view:GetChild('btn_search').onClick:Set( function() ViewUtil.ShowModalWait(nil) local text = self._view:GetChild('tex_id').text local qid, qnick if text == "" then ViewUtil.CloseModalWait() ViewUtil.ErrorTip(nil, '输入不能为空') return end qid = tonumber(text) or 0 qnick = text local fgCtr = ControllerManager.GetController(NewGroupController) fgCtr:FG_FindMember( self.group_id, qid, function(res) ViewUtil.CloseModalWait() if self._is_destroy then return end if res.ReturnCode ~= 0 then ViewUtil.ErrorTip(res.ReturnCode, '找不到成员') else self._view:GetChild('tex_id').text = '' self._ctr_search.selectedIndex = 1 self.numberMap[2][qid] = res.Data.members ViewUtil.CloseModalWait() table.insert(self.backTable, { 2, qid }) self.lst_member_find.numItems = #res.Data.members end end, qnick ) end ) local btn_back = self._view:GetChild('btn_back') btn_back.onClick:Set( function() print("ling btn_back", #self.backTable) if #self.backTable > 1 then table.remove(self.backTable) local tempIndex = self.backTable[#self.backTable] local tempTable = self.numberMap[tempIndex[1]][tempIndex[2]] self.lst_member_find.numItems = #tempTable else self._ctr_search.selectedIndex = 0 print('btn_back') self.lst_member.numItems = self:GetChildNumForPage() end end ) local group = DataManager.groups:get(self.group_id) local perm_array = MngPermission.getPermData(group.permission) self._view:GetChild('btn_less').onClick:Set(function() if self.start >= 2 then self.start = self.start - 1 print("add") self.lst_member.numItems = self:GetChildNumForPage() self._view:GetChild('text_ye').text = string.format("%d/%d", self.start, self.page) else ViewUtil.ErrorMsg(self._view, nil, "当前页数不能减少") end end) self._view:GetChild('btn_add').onClick:Set(function() if self.start < self.page then self.start = self.start + 1 self._view:GetChild('text_ye').text = string.format("%d/%d", self.start, self.page) print("less") self.lst_member.numItems = self:GetChildNumForPage() else ViewUtil.ErrorMsg(self._view, nil, "当前页数不能增加") end end) self:GetMemberData(0) end -- 快速访问 function M:navigation() self._view:GetController('page').selectedIndex = 2 self:initData() end -- 获取成员数据 function M:GetMemberData(index) --print("11111111111111111111") --print(debug.traceback()) -- local iClear = false -- local rtype = self._view:GetChild("n132").value -- if tostring(self.online) ~= rtype then -- iClear = true -- end local group = DataManager.groups:get(self.group_id) if index == 0 then group:clearMember() end ViewUtil.ShowModalWait(nil) local fgCtr = ControllerManager.GetController(NewGroupController) fgCtr:FG_GroupMembers12( self.group_id, index, 6, self.stype, self.online, function(res) ViewUtil.CloseModalWait() if res.ReturnCode ~= 0 then ViewUtil.ErrorTip(res.ReturnCode, '获取成员列表失败') else local allmembers = group.members self.member_data = {} ViewUtil.ShowModalWait("正在加载预警值") for i = 1, #allmembers do local member = allmembers[i] if member.lev > 0 then table.insert(self.member_data, member) fgCtr:FG_GetBanMemberHB(self.group_id, member.uid, function(res) --pt(res) if res.ReturnCode == 0 then -- local diaoduView = GroupSetMemberInfoDiaoduView.new(self.group_id, member.uid) -- diaoduView:SetCurrentState(res.Data.group_black + 1, res.Data) member.banInfo = res.Data if i == #allmembers then -- coroutine.wait(0.5) ViewUtil.CloseModalWait() self.page = math.ceil(#self.member_data / self.pageNum) self.lst_member.numItems = self:GetChildNumForPage() self._view:GetChild('text_ye').text = string.format("%d/%d", self.start, self.page) end else ViewUtil.ErrorTip(res.ReturnCode, "获取整组调度失败!") if i == #allmembers then -- coroutine.wait(0.5) ViewUtil.CloseModalWait() self.page = math.ceil(#self.member_data / self.pageNum) self.lst_member.numItems = self:GetChildNumForPage() self._view:GetChild('text_ye').text = string.format("%d/%d", self.start, self.page) end end end) end end if index == 0 then -- self._view:GetChild('tex_memb_num').text = res.Data.member_num -- self._view:GetChild('tex_total_hp').text = d2ad(res.Data.hp_num1+res.Data.otherHp) end end end ) end -- 修改体力值 local function __change_fag(gid, pid, is_add, cur_hp, callback) local gniv = GroupNumberInputView.new( nil, function(num) num = ad2d((is_add and num or -num)) ViewUtil.ShowModalWait() local fgCtr = ControllerManager.GetController(NewGroupController) fgCtr:FG_ChangeFag( gid, pid, num, function(res1) ViewUtil.CloseModalWait() -- if gniv._is_destroy then -- return -- end if (res1.ReturnCode == 0) then callback(res1.Data) else ViewUtil.ErrorTip(res1.ReturnCode, '更改积分失败!') end end ) -- item:GetChild("tex_fag").text = (self_user or show_fag) and num or show_fag_str end, is_add and 1 or 2, cur_hp and d2ad(cur_hp) or nil ) gniv:Show() end -- 填充成员对象 function M:FillItem(obj, member, refresh, index) local group = DataManager.groups:get(self.group_id) obj:GetChild('tex_name').text = ViewUtil.stringEllipsis(member.nick) obj:GetChild('btn_head').icon = 'ui://Common/Head0' obj:GetChild('tex_childId').text = index obj:GetChild('text_menkan').text = member.banInfo.ban_max_value ImageLoad.Load(member.portrait, obj:GetChild('btn_head')._iconObject, self.class) -- obj.data = member.id -- 显示玩家标签,合伙人、管理员 -- local ctr_type = obj:GetController('type') local tex_lev = obj:GetChild('tex_lev') if member.lev < 3 then if member.lev == 1 then tex_lev.text = "盟主" else tex_lev.text = "董事" end elseif member.partnerLev ~= 0 then tex_lev.text = "董事" else tex_lev.text = "成员" end -- 体力值数据 local tex_fag = obj:GetChild('tex_fag') tex_fag.text = d2ad(member.hp) obj:GetChild('tex_id').text = '' .. member.uid --obj:GetChild("tex_cost_count").text = d2ad(member.last_hp_cost) --if member.online == 1 then -- obj:GetChild('tex_last_login').text = '在线' -- else if member.last_time ~= 0 then -- local now_time = os.date("*t",now) -- local today = os.time({year=now_time.year, month=now_time.month, day=now_time.day, hour=0,min=0,sec=0}) -- local cha = math.ceil((today - member.last_time) / (24 * 60 *60)) -- if (cha > 0) then -- obj:GetChild('tex_last_login').text = cha.."天前" --'最近登录\n' .. os.date('%Y/%m/%d', member.last_time) -- else -- obj:GetChild('tex_last_login').text = os.date('%Y/%m/%d', member.last_time) -- end --print("11111aaaaaaaaaaaaaaaaaaaa ",os.date('%Y/%m/%d', member.last_time)) obj:GetChild('tex_last_login').text = "最近登录:" .. os.date('%Y/%m/%d', member.last_time) else obj:GetChild('tex_last_login').text = '加入时间\n' .. os.date('%Y/%m/%d', member.join_time) end -- end obj:GetChild('tex_zongchangci').text = member.total_round obj:GetChild('tex_ruhui').text = os.date('%Y/%m/%d %H:%M:%S', member.join_time) --上级 obj:GetChild('tex_shangjiName').text = member.parentId_nick or "" if member.parentId == 0 then obj:GetChild('tex_shangjiID').text = "" else obj:GetChild('tex_shangjiID').text = member.parentId end local perm_array = MngPermission.getPermData(group.permission) -- 体力值操作按钮事件 if group.lev < 3 or member.parentId == DataManager.SelfUser.account_id then obj:GetController('fag').selectedIndex = 1 else obj:GetController('fag').selectedIndex = 0 end --obj:GetChild("btn_tag").title = member.score local fgCtr = ControllerManager.GetController(NewGroupController) local p = group:getMember(member.uid) local mp = group:getMember(DataManager.SelfUser.account_id) obj:GetChild('btn_fag_add').onClick:Set( function() if not CheckPermission(group.lev, perm_array[MngPermissionList.SetFag]) then return end __change_fag( self.group_id, member.uid, true, nil, function(data) local hp = data.hp member.hp = hp if p then p.hp = hp if mp and mp ~= p then local mhp = data.mhp mp.hp = mhp end end print("fag_add") self.lst_member.numItems = self:GetChildNumForPage() -- 搜索出的玩家显示 if self._view:GetController('search').selectedIndex == 1 then obj:GetChild('tex_fag').text = d2ad(hp) end end ) end ) obj:GetChild('btn_fag_minus').onClick:Set( function() if not CheckPermission(group.lev, perm_array[MngPermissionList.SetFag]) then return end __change_fag( self.group_id, member.uid, false, member.hp, function(data) local hp = data.hp member.hp = hp if p then p.hp = hp if mp and mp ~= p then local mhp = data.mhp mp.hp = mhp end end print('btn_fag_minus') self.lst_member.numItems = self:GetChildNumForPage() -- 搜索出的玩家显示 if self._view:GetController('search').selectedIndex == 1 then obj:GetChild('tex_fag').text = d2ad(hp) end end ) end ) obj:GetChild('btn_score_detail').onClick:Set( function() local mflv = GroupMemberFagLogView.new(self.group_id, member) mflv:Show() end ) obj:GetChild('btn_operate').onClick:Set( function() local mflv = GroupMemberOperateView.new( self.group_id, member, function(delete) if delete ~= nil and delete == true then local group = DataManager.groups:get(self.group_id) self.member_data = group.members print('btn_operate') self.lst_member.numItems = self:GetChildNumForPage() self._view:GetController('search').selectedIndex = 0 else print('btn_operate') self.lst_member.numItems = self:GetChildNumForPage() if refresh then self:FillItem(obj, member) end end end, function() self:GetMemberData(0) end ) mflv:Show() end ) local btnBxx = obj:GetChild('btn_bxx') btnBxx.visible = (not (member.lev == 3 and member.partnerLev == 0)) and not (DataManager.SelfUser.account_id == member.uid) --btnBxx.visible = not (DataManager.SelfUser.account_id == member.uid) obj:GetChild('btn_bxx').onClick:Set( function() local ctrNum = 1 -- if not (member.lev == 3 and member.partnerLev == 0) then -- ctrNum = 2 -- end ctrNum = 2 local gmv = GroupMngFagPackView.new(self.curGroup.id, self._root_view, ctrNum, member.uid) gmv:SetCallback( function() btnBxx.selected = false end ) gmv:Show() end ) local superBtn = obj:GetChild('super_btn') -- superBtn.visible = group.lev == 1 local superBtnUp = obj:GetChild('superior_btn_up') obj:GetChild("superior_btn_up").onClick:Set( function() ViewUtil.ShowModalWait(nil) local text = member.parentId local tempNumberList = self.numberMap[2][text] if tempNumberList == nil then tempNumberList = {} for j = 1, #self.member_data do local number = self.member_data[j] if number.uid == text then table.insert(tempNumberList, number) end end self.numberMap[2][text] = tempNumberList end self._view:GetChild('tex_id').text = '' self._view:GetController('search').selectedIndex = 1 ViewUtil.CloseModalWait() table.insert(self.backTable, { 2, text }) self.lst_member_find.numItems = #tempNumberList end ) obj:GetChild("super_btn").onClick:Set( function() ViewUtil.ShowModalWait(nil) local text = member.uid local tempNumberList = self.numberMap[1][text] if tempNumberList == nil then tempNumberList = {} for j = 1, #self.member_data do local number = self.member_data[j] if number.parentId == text then table.insert(tempNumberList, number) end end self.numberMap[1][text] = tempNumberList end self._view:GetChild('tex_id').text = '' self._view:GetController('search').selectedIndex = 1 ViewUtil.CloseModalWait() table.insert(self.backTable, { 1, text }) self.lst_member_find.numItems = #tempNumberList end ) obj:GetChild("btn_in").onClick:Set(function() self._view:GetController('set').selectedIndex = 1 self._view:GetChild('input_value').text = member.banInfo.ban_max_value self._view:GetChild('btn_sendMenkang').onClick:Set(function() ViewUtil.ShowModalWait() local fgCtr = ControllerManager.GetController(NewGroupController) fgCtr:FG_BanMemberHB( self.group_id, member.uid, 2, 25, tonumber(self._view:GetChild('input_value').text), function(response) ViewUtil.CloseModalWait() if (response.ReturnCode == 0) then ViewUtil.ShowBannerOnScreenCenter('设置成功!', 1) member.banInfo.ban_max_value = response.Data.ban_max_value obj:GetChild('text_menkan').text = member.banInfo.ban_max_value self._view:GetController('set').selectedIndex = 0 else ViewUtil.ErrorTip(response.ReturnCode, '设置失败!') end end ) end) end) end function M:OnRenderItem(index, obj) --printlog("aaaaaaaaaawwwwwwwwwwwwwwwwwwwwwwwwwwww ",index) local i = (self.start - 1) * self.pageNum + index + 1 local member = self.member_data[i] if member then self:FillItem(obj, member, false, i) end end function M:OnRenderItemFind(index, obj) --printlog("aaaaaaaaaawwwwwwwwwwwwwwwwwwwwwwwwwwww ",index) local lastKey = self.backTable[#self.backTable] local tempTable = self.numberMap[lastKey[1]][lastKey[2]] local member = tempTable[index + 1] if member then self:FillItem(obj, member, true, index + 1) end end --获取申请列表 function M:GetJoinsData() local group = DataManager.groups:get(self.group_id) if group.joins > 0 then ViewUtil.ShowModalWait() local fgCtr = ControllerManager.GetController(NewGroupController) fgCtr:FG_GroupJoins( self.group_id, function(res) ViewUtil.CloseModalWait() if (res.ReturnCode == 0) then local joins = res.Data.joins group.joins = #joins if #joins == 0 then group.update_joins = true end self:FillJoinList(joins) else ViewUtil.ErrorTip(res.ReturnCode, '获取申请列表失败!') self:FillJoinList({}) end end ) else self:FillJoinList({}) end end --填充申请 function M:FillJoinList(data) local lst_joins = self._view:GetChild('lst_joins') lst_joins:RemoveChildrenToPool() for i = 1, #data do local item = lst_joins:AddItemFromPool() item:GetChild('tex_name').text = ViewUtil.stringEllipsis(data[i].nick) item:GetChild('tex_id').text = data[i].id local btn_head = item:GetChild('btn_head') ImageLoad.Load(data[i].portrait, btn_head._iconObject) item:GetChild('btn_yes').onClick:Set( function() self:VerifyPlayerJoin(data[i].id, true) end ) item:GetChild('btn_no').onClick:Set( function() self:VerifyPlayerJoin(data[i].id, false) end ) end end function M:VerifyPlayerJoin(id, allow) ViewUtil.ShowModalWait() local fgCtr = ControllerManager.GetController(NewGroupController) fgCtr:FG_GroupVerifyJoin( self.group_id, id, allow, function(res) ViewUtil.CloseModalWait() if (res.ReturnCode == 0) then self:GetJoinsData() else ViewUtil.ErrorTip(res.ReturnCode, '操作申请失败') end end ) end function M:OnNumButtonAction(context) local typer = string.sub(context.sender.name, 5) if typer == 'del' then if (self._currenIndex > 0) then self._currenIndex = self._currenIndex - 1 self._texnum_str = string.sub(self._texnum_str, 0, self._currenIndex) self.tex_num.text = self._texnum_str end else if (self._currenIndex < 6) then self._currenIndex = self._currenIndex + 1 self._texnum_str = self._texnum_str .. typer self.tex_num.text = self._texnum_str end end end function M:ClearNumTex() self._texnum_str = '' self._currenIndex = 0 self.tex_num.text = self._texnum_str end function M:GetChildNumForPage() local numberNum = #self.member_data if self.start * self.pageNum > numberNum then return numberNum - (self.start - 1) * self.pageNum end return self.pageNum end return M