EmpowerExchangeView = EmpowerExchangeView or BaseClass(BaseItem) local EmpowerExchangeView = EmpowerExchangeView function EmpowerExchangeView:__init() self.base_file = "empower" self.layout_file = "EmpowerExchangeView" self.emExchange_item_list ={} self.model = EmpowerModel:GetInstance() self:Load() end function EmpowerExchangeView:Load_callback() self.nodes = { "des:tmp", "icon_bg/icon:img", "icon_bg/add_btn:obj", "icon_bg/count:tmp", "icon_bg" } self:GetChildren(self.nodes) self.itemCon = self:GetChild("ScrollView/Viewport/Content") self.girlIcon = self:GetChild("girlIcon"):GetComponent("Image") -- lua_resM:setOutsideImageSprite(self, self.girlIcon, GameResPath.GetRoleBg("empower_shop_girl"), false) --self.freshBtn = self:GetChild("freshBtn").gameObject self.num_txt = self:GetChild("moneyBg/num"):GetComponent("TextMeshProUGUI") self.des_tmp.text = string.format('%s可兑换为%s升品石', HtmlColorTxt( "万能升品石", ColorUtil.PURPLE_DARK), HtmlColorTxt( "任意部位", ColorUtil.GREEN_DARK)) SetAnchoredPositionX(self.des, -210) SetAnchoredPositionX(self.icon_bg, 235) self:AddEvents() if self.need_refreshData then self:UpdateView() end end function EmpowerExchangeView:AddEvents( ) local on_click = function ( click_obj ) if self.add_btn_obj == click_obj then local empower_coin_good_id = self.model:GetEmpowerCoinGoodId() UIToolTipMgr:getInstance():AppendGoodsTips(empower_coin_good_id, nil, nil,nil,nil,nil,nil,true) end end AddClickEvent(self.add_btn_obj, on_click) -- 监听材料数目变化 local function onBagChange() self:UpdateGoodsCount( ) end self.bag_change_event_id = GoodsModel:getInstance():Bind(GoodsModel.CHANGE_BAGLIST, onBagChange) -- 监听界面刷事件 local function update_view_func() self:UpdateView( ) end self:BindEvent(self.model, EmpowerConst.UPDATE_EXCHANGE_VIEW, update_view_func) end function EmpowerExchangeView:UpdateView( ) local exchangeReward = self.model:GetConfigMarbleKvVal("exchange_reward") local list = ErlangParser:GetInstance():Parse(exchangeReward) local good_id,cost_num = self:GetExchangeGoodId() for k,v in pairs(list) do local item = self.emExchange_item_list[k] if item == nil then item = EmpowerShopItem.New(self.itemCon) self.emExchange_item_list[k] = item end local data = {} data.goods_id = v[2] data.num = v[3] data.price = cost_num data.discount = 0 data.is_pay = false data.money_type = EmpowerConst.EmpowerMoneyId if v.state == 1 then data.is_gray = true else data.is_gray = false end if v[1] == 100 then data.bind = true else data.bind = false end self.emExchange_item_list[k]:SetData(data,k,true) end -- 当前持有的数目 local asset, source = WordManager:GetCommonMoneyIcon(EmpowerConst.EmpowerMoneyId) self.icon.sizeDelta = co.TableXY(26,21) lua_resM:setImageSprite(self, self.icon_img, asset, source) --exchange_cost self:UpdateGoodsCount( ) end -- 更新材料数目 function EmpowerExchangeView:UpdateGoodsCount( ) local empower_coin_good_id = self.model:GetEmpowerCoinGoodId() local num = GoodsModel:getInstance():GetTypeGoodsNum(empower_coin_good_id) self.count_tmp.text = num self.model:Fire(EmpowerConst.UPDATA_EMTREASURE_COIN_NUM,num) end function EmpowerExchangeView:SetData( data ) self.data = data if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function EmpowerExchangeView:GetExchangeGoodId( ) local exchange_cost = self.model:GetConfigMarbleKvVal("exchange_cost") local exchange_cost_list = ErlangParser:GetInstance():Parse(exchange_cost)[1] self.exchangePropId = exchange_cost_list[2] local exchangePropNum = exchange_cost_list[3] return self.exchangePropId,exchangePropNum end function EmpowerExchangeView:__delete( ) for i, v in ipairs(self.emExchange_item_list) do v:DeleteMe() v = nil end self.emExchange_item_list = {} if self.bag_change_event_id then GoodsModel:getInstance():UnBind(self.bag_change_event_id) self.bag_change_event_id = nil end end