-- <* -- @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