-- <*
-- @Author: Saber
-- @Description: 社团拼单订单节点
-- *>
GuildSpellListItem = GuildSpellListItem or BaseClass(BaseItem)
local GuildSpellListItem = GuildSpellListItem
function GuildSpellListItem:__init(parent_wnd,prefab_asset,layer_name)
self.base_file = "guild"
self.layout_file = "GuildSpellListItem"
self.parent_wnd = parent_wnd
self.layer_name = layer_name
self.cur_selected_order = 0
self.model = GuildModel:getInstance()
self:Load()
end
function GuildSpellListItem:Load_callback()
local nodes = {
"bg:img",
"selected:obj",
"name:tmp", "type_lb:tmp", "finished:obj",
}
self:GetChildren(nodes)
self:AddEvents()
if self.need_refreshData then
self:UpdateView()
end
end
function GuildSpellListItem:AddEvents( )
local function click_event(target)
if target == self.gameObject then
if self.data then
if self.data.order ~= self.cur_selected_order then
local function ok()
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40036, 0, self.data.order)
end
local cur_sl_data = self.model:GetCurSelectedSpellListData()
if cur_sl_data and cur_sl_data.state < 3 and TableSize(cur_sl_data.teams) > 0 then -- 除开自己外还有别人,需要弹出提示窗口
local ask_str = "切换拼单目标将会重置已邀请玩家,需要重新邀请。\n是否确定切换?"
Alert.show(ask_str, Alert.Type.Two, ok, nil, "确定", "取消")
else
ok()
end
end
end
end
end
AddClickEvent(self.gameObject, click_event)
local function updateSelectedSLData()
self:UpdateSelected()
end
self:BindEvent(self.model, GuildModel.UPDATE_SELECTED_GUILD_SL_DATA, updateSelectedSLData)
end
function GuildSpellListItem:SetData( data )
self.data = data
if self.is_loaded then
self.need_refreshData = false
self:UpdateView()
else
self.need_refreshData = true
end
end
function GuildSpellListItem:UpdateView( )
-- 获取订单配置
local sl_cfg = Config.Guildorder[self.data.cfg]
lua_resM:setImageSprite(self, self.bg_img, "guildExtra1_asset", "guild_sl_itembg" .. sl_cfg.color)
-- 如果已完成,则需要灰化部分节点
local is_finished = self.data.state >= 3
self.finished_obj:SetActive(is_finished)
SetImageGray(self.bg_img, is_finished)
self.name_tmp.text = string.format("%s",
is_finished and ColorUtil.GRAY_DARK or GuildModel.SpellListColor[sl_cfg.color],
Trim(sl_cfg.name))
self.type_lb_tmp.text = is_finished and string.format("%s人拼单", ColorUtil.GRAY_DARK, sl_cfg.max_num)
or string.format("%s人拼单", sl_cfg.max_num)
self:UpdateSelected()
end
function GuildSpellListItem:UpdateSelected( )
self.cur_selected_order = self.model:GetCurSelectedSpellListId()
if self.data then
local is_selected = self.data.order == self.cur_selected_order
self.selected_obj:SetActive(is_selected)
end
end
function GuildSpellListItem:__delete( )
end