-- <*
|
|
-- @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("<color=%s>%s</color>",
|
|
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("<color=%s>%s人拼单</color>", ColorUtil.GRAY_DARK, sl_cfg.max_num)
|
|
or string.format("<color=#fdffc2>%s人拼单</color>", 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
|