diff --git a/Assets/ManagedResources/~Lua/Modules/TianShuMiJuan/TianShuMiJuanMainPanel.lua b/Assets/ManagedResources/~Lua/Modules/TianShuMiJuan/TianShuMiJuanMainPanel.lua index b9d4c90cf9..35ee822e05 100644 --- a/Assets/ManagedResources/~Lua/Modules/TianShuMiJuan/TianShuMiJuanMainPanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/TianShuMiJuan/TianShuMiJuanMainPanel.lua @@ -20,8 +20,15 @@ local tabs = { rpType = RedPointType.TianShuPokemon_Fetter,funcType = FUNCTION_OPEN_TYPE.POKEMON,bg = "t_tianshumijuan_lingshouditu",zi = "t_tianshumijuan_lingshoupian_zi_zh", }, } +local status = { + [0] = "全部", + [1] = "已激活", + [2] = "未激活", +} local curPage = 1 -local data = 1 +local data = {} +local curShai = 0 --0 全部 1 已激活 2 未激活 +local curData = {} --初始化组件(用于子类重写) function TianShuMiJuanMainPanel:InitComponent() self.itemPreList = {} @@ -73,6 +80,8 @@ function TianShuMiJuanMainPanel.SetChangeTabCallBack(index) return end curPage = index + curShai = 0 + self.shaiText.text = status[curShai] this:OnShow(self) end @@ -82,7 +91,11 @@ function TianShuMiJuanMainPanel:BindEvent() self:ClosePanel() end) Util.AddClick(self.shai, function() - + curShai = curShai + 1 + curShai = curShai%3 + self.shaiText.text = status[curShai] + curData = self:ShaiData() + self:RefreshData(curData) end) self.tabBox = TabBox.New() self.tabBox:SetTabAdapter(self.SetTabAdapter) @@ -104,6 +117,8 @@ end function TianShuMiJuanMainPanel:OnOpen(...) local args = {...} curPage = args[1] or 1 + curShai = 0 + self.shaiText.text = status[curShai] self.tabBox:Init(self.tabbox.gameObject, tabs, curPage) end @@ -111,21 +126,67 @@ end function TianShuMiJuanMainPanel:OnShow() self.bg.sprite = Util.LoadSprite(tabs[curPage].bg) self.title.sprite = Util.LoadSprite(tabs[curPage].zi) + data = TianShuMiJuanManger.GetFetterDataByFetterType(curPage) + curData = self:ShaiData() + self:RefreshData() +end + +function TianShuMiJuanMainPanel:RefreshData() + self:SortData() self.scroll:ForeachItemGO(function(index,go) go.gameObject:SetActive(false) end) - data = TianShuMiJuanManger.GetFetterDataByFetterType(curPage) - if not data or #data < 1 then + if not curData or #curData < 1 then self.empty.gameObject:SetActive(true) else self.empty.gameObject:SetActive(false) - self.scroll:SetData(data,function(index,go) - self:SetSingleData(go,data[index],index) + self.scroll:SetData(curData,function(index,go) + self:SetSingleData(go,curData[index],index) end) self.scroll:SetIndex(1) end end +function TianShuMiJuanMainPanel:ShaiData() + if not data or #data < 1 then + return + end + local shaiValue = 0 + if curShai == 0 then + return data + elseif curShai == 1 then + shaiValue = 1 + else + shaiValue = 0 + end + local returnData = {} + for k,v in ipairs(data) do + if shaiValue ~= 0 and v.enabled == shaiValue then + table.insert(returnData,v) + elseif shaiValue == 0 and v.enabled < 1 then + table.insert(returnData,v) + end + end + return returnData +end + +local sortData = { + [0] = 0, + [-1] = 1, + [1] = 2, +} +function TianShuMiJuanMainPanel:SortData() + if not curData or #curData < 1 then + return + end + table.sort(curData,function(a,b) + if sortData[a.enabled] == sortData[b.enabled] then + return a.id < b.id + end + return sortData[a.enabled] < sortData[b.enabled] + end) +end + function TianShuMiJuanMainPanel:SetSingleData(go,item,index) if not self.itemPreList[go] then self.itemPreList[go] = SubUIManager.Open(SubUIConfig.FetterItem,go.transform) @@ -135,7 +196,7 @@ function TianShuMiJuanMainPanel:SetSingleData(go,item,index) return end go.gameObject:SetActive(true) - self.itemPreList[go]:SetData(item) + self.itemPreList[go]:SetData(item,self:SortData) end --界面关闭时调用(用于子类重写) diff --git a/Assets/ManagedResources/~Lua/View/FetterItem.lua b/Assets/ManagedResources/~Lua/View/FetterItem.lua index d77c54e2c7..c42fa5929b 100644 --- a/Assets/ManagedResources/~Lua/View/FetterItem.lua +++ b/Assets/ManagedResources/~Lua/View/FetterItem.lua @@ -1,5 +1,6 @@ FetterItem = {} local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) +local func function FetterItem:New(gameObject) local b = {} b.gameObject = gameObject @@ -33,7 +34,10 @@ function FetterItem:BindEvent() TianShuMiJuanManger.UpdateFetterId({self.itemData.id}) local newWarPower = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL) UIManager.OpenPanel(UIName.WarPowerChangeNotifyPanelV2,{oldValue = oldWarPower,newValue = newWarPower}) - self:SetIcon(1) + --self:SetIcon(1) + if func then + func() + end end) end) end @@ -48,7 +52,8 @@ function FetterItem:RemoveListener() end function FetterItem:OnOpen() end -function FetterItem:SetData(data) +function FetterItem:SetData(data,_func) + func = _func self.itemData = data self.name.text = self.itemData.name if self.itemData.enabled < 1 then