筛选排序提交

dev_chengFeng
jiaoyangna 2021-03-23 14:56:13 +08:00
parent 9e19cd5322
commit 218110d709
2 changed files with 75 additions and 9 deletions

View File

@ -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
--界面关闭时调用(用于子类重写)

View File

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