yunque9/lua_probject/base_project/Game/View/NewGroup/GroupSettingView.lua

132 lines
3.8 KiB
Lua
Raw Normal View History

2025-05-24 14:29:14 +08:00
--牌友圈设置View对象
--author--
local CreateGroupView = import(".CreateGroupView")
local GroupSettingView = {}
local M = GroupSettingView
function GroupSettingView.new(blur_view)
setmetatable(M, {__index = BaseWindow})
local self = setmetatable({}, {__index = M})
self.class = "GroupSettingView"
self._close_destroy = true
self._blur_view = blur_view
self:init("ui://NewGroup/Win_GroupSetting")
return self
end
local function __removeGroup(self,msg,curData)
local fgCtr = ControllerManager.GetController(NewGroupController)
local _curren_msg = MsgWindow.new(self._root_view, msg, MsgWindow.MsgMode.OkAndCancel)
_curren_msg.onOk:Add(function()
ViewUtil.ShowModalWait(self._root_view)
local func = curData.owner == DataManager.SelfUser.account_id and fgCtr.FG_RemoveGroup or fgCtr.FG_ExitGroup
func(fgCtr, curData.id, function(res)
if self._is_destroy then
return
end
ViewUtil.CloseModalWait()
if res.ReturnCode == 0 then
self.change = true
local groups = DataManager.groups.groupList
if #groups > 0 then
self:FillData()
else
self:Destroy()
end
else
ViewUtil.ErrorTip(res.ReturnCode,"删除大联盟失败!")
end
end)
end)
_curren_msg:Show()
end
function M:init(url)
BaseWindow.init(self,url)
local lst_group = self._view:GetChild("lst_group")
local btn_remove = self._view:GetChild("btn_remove")
btn_remove.onClick:Set(function()
local group = lst_group:GetChildAt(lst_group.selectedIndex).data
__removeGroup(self,"您确定解散该大联盟吗?",group)
end)
local btn_exit = self._view:GetChild("btn_exit")
btn_exit.onClick:Set(function()
local group = lst_group:GetChildAt(lst_group.selectedIndex).data
__removeGroup(self,"您确定退出该大联盟吗?",group)
end)
lst_group.onClickItem:Add(function(context)
local group = context.data.data
if group.lev == 1 then
self._view:GetController("opt").selectedIndex = 2
else
local option = group.option or 0
if bit:_and(option,2) > 0 then
self._view:GetController("opt").selectedIndex = 1
else
self._view:GetController("opt").selectedIndex = 0
end
end
end)
end
function M:FillData()
local groups = DataManager.groups.groupList
local lst_group = self._view:GetChild("lst_group")
lst_group:RemoveChildrenToPool()
local fgCtr = ControllerManager.GetController(NewGroupController)
for i = 1, #groups do
local group = groups[i]
local item = lst_group:AddItemFromPool()
item:GetChild("tex_name").text = group.name
item:GetChild("tex_id").text = group.id
item:GetChild("tex_nick").text ="创建人:" .. group.o_nick
item.data = group
end
if #groups > 0 and lst_group.selectedIndex == -1 then
lst_group.selectedIndex = 0
if groups[1].lev == 1 then
self._view:GetController("opt").selectedIndex = 2
else
local option = groups[1].option or 0
if bit:_and(option,2) > 0 then
self._view:GetController("opt").selectedIndex = 1
else
self._view:GetController("opt").selectedIndex = 0
end
end
end
if #groups == 0 then
self._view:GetController("opt").selectedIndex = 0
end
end
function M:SetCallback(callback)
self.callback = callback
end
-- 销毁窗口
function M:Destroy(remove_map)
if self.change and self.callback then
self.callback()
end
BaseWindow.Destroy(self,remove_map)
end
return M