155 lines
5.3 KiB
Lua
155 lines
5.3 KiB
Lua
local PreparationBefore = quick_class("PreparationBefore")
|
||
local this = PreparationBefore
|
||
local ThemeActivityTaskConfig = ConfigManager.GetConfig(ConfigName.ThemeActivityTaskConfig)
|
||
local itemsGrid = {}--item重复利用
|
||
|
||
|
||
function PreparationBefore:ctor(mainPanel, gameObject)
|
||
self.mainPanel = mainPanel
|
||
self.gameObject = gameObject
|
||
self:InitComponent(gameObject)
|
||
self:BindEvent()
|
||
end
|
||
--初始化组件(用于子类重写)
|
||
function PreparationBefore:InitComponent(gameObject)
|
||
this.rewardPre = Util.GetGameObject(gameObject, "rewardPre")
|
||
this.rect = Util.GetGameObject(gameObject, "rect")
|
||
local rootHight = this.rect.transform.rect.height
|
||
local width = this.rect.transform.rect.width
|
||
this.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, this.rect.transform,
|
||
this.rewardPre, nil, Vector2.New(width, rootHight), 1, 1, Vector2.New(0, 10))
|
||
this.ScrollView.moveTween.MomentumAmount = 1
|
||
this.ScrollView.moveTween.Strength = 2
|
||
end
|
||
|
||
--绑定事件(用于子类重写)
|
||
function PreparationBefore:BindEvent()
|
||
end
|
||
|
||
--添加事件监听(用于子类重写)
|
||
function PreparationBefore:AddListener()
|
||
end
|
||
|
||
--移除事件监听(用于子类重写)
|
||
function PreparationBefore:RemoveListener()
|
||
end
|
||
|
||
--界面打开时调用(用于子类重写)
|
||
function PreparationBefore:OnOpen()
|
||
|
||
end
|
||
|
||
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
|
||
function PreparationBefore:OnShow()
|
||
PreparationBefore:OnShowData()
|
||
end
|
||
function PreparationBefore:OnSortingOrderChange()
|
||
|
||
end
|
||
function PreparationBefore:OnShowData()
|
||
local allData = this.InitDynamicActData()
|
||
this.ScrollView:SetData(allData, function (index, go)
|
||
this.SingleDataShow(go, allData[index])
|
||
end)
|
||
end
|
||
--刷新每一条的显示数据
|
||
function this.SingleDataShow(go, data)
|
||
--绑定组件
|
||
local titleImage = Util.GetGameObject(go, "titleImage/titleText"):GetComponent("Text")
|
||
local content = Util.GetGameObject(go, "content")--data.reward
|
||
|
||
local getFinishImage = Util.GetGameObject(go, "getFinishImage")
|
||
local getRewardProgress = Util.GetGameObject(go, "getRewardProgress")
|
||
local getRewardProgressText = Util.GetGameObject(go, "getRewardProgress/Txt")
|
||
|
||
local lingquBtn = Util.GetGameObject(go, "lingquButton")
|
||
local qianwangBtn = Util.GetGameObject(go, "qianwangButton")
|
||
|
||
if itemsGrid[go] then
|
||
itemsGrid[go]:OnOpen(false, data.reward, 1,false,false,false)
|
||
itemsGrid[go].gameObject:SetActive(true)
|
||
else
|
||
|
||
itemsGrid[go] = SubUIManager.Open(SubUIConfig.ItemView, content.transform)
|
||
itemsGrid[go].gameObject:SetActive(true)
|
||
itemsGrid[go]:OnOpen(false, data.reward, 1,false,false,false)
|
||
|
||
end
|
||
|
||
titleImage.text = data.content
|
||
getRewardProgress:GetComponent("Slider").value = data.progress/data.value
|
||
getRewardProgressText:GetComponent("Text").text = data.progress.."/"..data.value
|
||
|
||
--0-未完成,1-完成未领取 2-已领取
|
||
local state = data.state
|
||
|
||
getFinishImage:SetActive(state == 2)
|
||
lingquBtn:SetActive(state == 1)
|
||
qianwangBtn:SetActive(state == 0)
|
||
getRewardProgress:SetActive(state ~= 2)
|
||
|
||
Util.AddOnceClick(lingquBtn, function()
|
||
NetManager.TakeMissionRewardRequest(TaskTypeDef.PreparationBefore,data.id, function(msg)
|
||
UIManager.OpenPanel(UIName.RewardItemPopup, msg.drop, 1,function ()
|
||
PreparationBefore:OnShowData()
|
||
end)
|
||
end)
|
||
end)
|
||
Util.AddOnceClick(qianwangBtn, function()
|
||
--跳转任务
|
||
JumpManager.GoJump(data.jump)
|
||
end)
|
||
end
|
||
|
||
--界面关闭时调用(用于子类重写)
|
||
function PreparationBefore:OnClose()
|
||
|
||
end
|
||
|
||
--界面销毁时调用(用于子类重写)
|
||
function PreparationBefore:OnDestroy()
|
||
|
||
end
|
||
|
||
function this.InitDynamicActData()
|
||
local id = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.PreparationBefore)
|
||
|
||
if (not id) or id < 1 then
|
||
return nil
|
||
end
|
||
this.allData = {}
|
||
local allListData = ConfigManager.GetAllConfigsDataByKey(ConfigName.ThemeActivityTaskConfig, "ActivityId", id)
|
||
local allMissionData = TaskManager.GetTypeTaskList(TaskTypeDef.PreparationBefore)--TODO定义任务类型
|
||
for i = 1,#allListData do
|
||
for j = 1,#allMissionData do
|
||
if allListData[i].Id == allMissionData[j].missionId then
|
||
local data = {}
|
||
data.id = allMissionData[j].missionId
|
||
data.progress = allMissionData[j].progress
|
||
local strs = string.split(GetLanguageStrById(allListData[i].Show),"#")
|
||
data.title = strs[1]
|
||
data.content = strs[2]
|
||
data.value = allListData[i].TaskValue[2][1]
|
||
data.state = allMissionData[j].state
|
||
data.type = allListData[i].Type
|
||
data.reward = {allListData[i].Integral[1][1],allListData[i].Integral[1][2]}
|
||
data.jump = allListData[i].Jump[1]
|
||
table.insert(this.allData,data)
|
||
end
|
||
end
|
||
end
|
||
|
||
table.sort(this.allData,function (a,b)
|
||
if a.state == b.state then
|
||
return a.progress > b.progress
|
||
else
|
||
-- if a.state==2 or b.state==2 then
|
||
-- return false
|
||
-- end
|
||
return a.state > b.state
|
||
end
|
||
end)
|
||
return this.allData
|
||
end
|
||
|
||
return PreparationBefore |