123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- ---@class KLShapeShiftCardShopPanel:UIKmlLuaPanelBase
- ---@field view KLShapeShiftCardShopPanelView
- local KLShapeShiftCardShopPanel = class(UIKmlLuaPanelBase)
- local this = KLShapeShiftCardShopPanel
- function this:AsyncLoadUI()
- end
- ---创建时调用一次
- function this:Init()
- GUI:DataListInitData(self.view.datalist_currency,
- function()
- return self:CurrentCountFunc()
- end,
- nil,
- nil,
- function(realIndex, kmlcontrol)
- return self:CurrentUpdateFunc(realIndex, kmlcontrol)
- end)
- GUI:DataListInitData(self.view.card_datalist_1,
- function()
- return self:Item_1CountFunc()
- end,
- function(realIndex)
- return self:Item_1GetFunc(realIndex)
- end,
- nil,
- function(realIndex, kmlCtrl)
- return self:Item_1UpdateFunc(realIndex, kmlCtrl)
- end)
- GUI:DataListInitData(self.view.card_datalist_2,
- function()
- return self:Item_2CountFunc()
- end,
- function(realIndex)
- return self:Item_2GetFunc(realIndex)
- end,
- nil,
- function(realIndex, kmlCtrl)
- return self:Item_2UpdateFunc(realIndex, kmlCtrl)
- end)
- self.Items_1 = {}
- self.Items_2 = {}
- end
- function this:CurrentCountFunc()
- return #self.currencyList
- end
- function this:CurrentUpdateFunc(realIndex)
- local data = self.currencyList[realIndex + 1]
- local item_tokens = GUI:GetChildControl(self.view.datalist_currency, realIndex, "item_tokens")
- local text_tokens_num = GUI:GetChildControl(self.view.datalist_currency, realIndex, "text_tokens_num")
- local btn_tokens_add = GUI:GetChildControl(self.view.datalist_currency, realIndex, "btn_tokens_add")
- GUI:Item_setItemId(item_tokens, data)
- local count = SL:GetBagItemCount(data)
- self.currencyCount[data] = count
- GUI:Text_setString(text_tokens_num, tostring(count))
- GUI:AddOnClickEvent(item_tokens, self, self.BtnTipsOnClick, data)
- GUI:AddOnClickEvent(btn_tokens_add, self, self.BtnAddOnClick, data)
- end
- function this:Item_1CountFunc()
- return #self.allShopItemTbl[self.allTypeTbl[1]]
- end
- function this:Item_1GetFunc()
- local item = GUI:UIPanel_Open("dev/outui/ShapeShiftCard/Item/KLShapeShiftCardShop/KLShapeShiftCardShopItem", self.view.card_datalist_1, self, nil, true)
-
- local kmlCtrl = item.view.root
- self.Items_1[kmlCtrl] = item
- return kmlCtrl
- end
- ---@param kmlCtrl KingML.KmlControl
- function this:Item_1UpdateFunc(realIndex, kmlCtrl)
- local item = self.Items_1[kmlCtrl]
- local info = self.allShopItemTbl[self.allTypeTbl[1]][realIndex + 1]
- item:RefreshUI(info)
- end
- function this:Item_2CountFunc()
- return #self.allShopItemTbl[self.allTypeTbl[2]]
- end
- function this:Item_2GetFunc()
- local item = GUI:UIPanel_Open("dev/outui/ShapeShiftCard/Item/KLShapeShiftCardShop/KLShapeShiftCardShopItem", self.view.card_datalist_2, self, nil, true)
-
- local kmlCtrl = item.view.root
- self.Items_2[kmlCtrl] = item
- return kmlCtrl
- end
- ---@param kmlCtrl KingML.KmlControl
- function this:Item_2UpdateFunc(realIndex, kmlCtrl)
- local item = self.Items_2[kmlCtrl]
- local info = self.allShopItemTbl[self.allTypeTbl[2]][realIndex + 1]
- item:RefreshUI(info)
- end
- function this:BtnAddOnClick(_, cfgid)
- SL:CommonItemGetPath(nil, cfgid, nil, nil, self)
- end
- ---注册UI事件和服务器消息
- function this:RegistEvents()
- SL:RegisterLUAEvent(LUA_EVENT_BAG_CHANGE_AFTER, self.LUA_EVENT_BAG_CHANGE_AFTER, self)
- end
- ---界面显示时调用一次
- function this:Show()
- end
- ---创建或者刷新界面数据时调用
- function this:Refresh()
- ---@type cfg_card_shop_column[]
- local cfg_card_shop = SL:GetConfigTable("cfg_card_shop")
- self.allShopItemTbl = {}
- self.allTypeTbl = {}
- for _, v in pairs(cfg_card_shop) do
- if not self.allShopItemTbl[v.type] then
- self.allShopItemTbl[v.type] = {}
- self.allTypeTbl[#self.allTypeTbl + 1] = v.type
- end
- self.allShopItemTbl[v.type][#self.allShopItemTbl[v.type] + 1] = v
- end
- GUI:DataListUpdateData(self.view.card_datalist_1)
- GUI:DataListUpdateData(self.view.card_datalist_2)
- self.currencyList = {}
- self.currencyCount = {}
- local currencyList = string.split(SL:GetConfig("cfg_global", 18001).value, '#')
- for _, v in ipairs(currencyList) do
- self.currencyList[#self.currencyList + 1] = tonumber(v)
- end
- GUI:DataListUpdateData(self.view.datalist_currency)
- end
- function this:BtnTipsOnClick(_, eventData)
- SL:OpenTips(nil, eventData)
- end
- ---实时刷新道具
- function this:LUA_EVENT_BAG_CHANGE_AFTER()
- local isRefresh = false
- for _, v in pairs(self.currencyList) do
- if SL:GetBagItemCount(v) ~= self.currencyCount[v] then
- isRefresh = true
- break
- end
- end
- if isRefresh then
- ---刷新商城红点
- GUI:DataListUpdateData(self.view.datalist_currency)
- GUI:DataListUpdateData(self.view.card_datalist_1)
- GUI:DataListUpdateData(self.view.card_datalist_2)
- ---@type KLShapeShiftCardMainPanel
- local ui = GUI:GetUI("dev/outui/ShapeShiftCard/Panel/KLShapeShiftCardMain/KLShapeShiftCardMainPanel")
- if ui then
- ui:RefreshMainRedPoint()
- end
- end
- end
- function this:Close()
- self.Items_1 = nil
- self.Items_2 = nil
- self.allTypeTbl = nil
- self.allShopItemTbl = nil
- self.currencyList = nil
- self.currencyCount = nil
- end
- return this
|