changhong/lua_probject/base_project/Game/View/NewGroup/MngView/GroupMngMenKangView.lua

711 lines
25 KiB
Lua

-- 牌友圈成员列表
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 = 20,
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 = 1
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("btn_search")
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,
self.curGroup.total_member_num,
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(nil, "正在加载预警值")
local sendRequest = 0
local allFlag = false
for i = 1, #allmembers do
local member = allmembers[i]
if i == #allmembers then
allFlag = true
end
pt(member)
if member.lev < 3 or member.partnerLev ~= 0 then
table.insert(self.member_data, member)
sendRequest = sendRequest + 1
fgCtr:FG_GetBanMemberHB(self.group_id, member.uid, function(res)
--pt(res)
sendRequest = sendRequest - 1
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 allFlag and sendRequest == 0 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 allFlag and sendRequest == 0 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