124 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Lua
		
	
			
		
		
	
	
			124 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Lua
		
	
---
 | 
						||
---CostConfirmPopup.Show(itemId, costNum, content, tip, func, costTipType)
 | 
						||
---     参数:itemId         物品id  (not nil)
 | 
						||
---           costNum       要消耗的数量(not nil)
 | 
						||
---           content       显示内容(not nil)
 | 
						||
---           tip           提示信息,nil则不显示
 | 
						||
---           func           确认按钮回调事件
 | 
						||
---           costTipType    界面类型,用于判断是否需要 不再显示 功能,默认不需要,
 | 
						||
---               需要 不再显示 功能的,需在下面 COST_CONFIRM_TYPE 中注册相应的类型,并作为参数传入
 | 
						||
---
 | 
						||
 | 
						||
require("Base/BasePanel")
 | 
						||
CostConfirmPopup = Inherit(BasePanel)
 | 
						||
local this=CostConfirmPopup
 | 
						||
 | 
						||
-- 界面类型
 | 
						||
COST_CONFIRM_TYPE = {
 | 
						||
    NO_POPUP_TOGGLE = 0,
 | 
						||
    SOUL_PRINT = 1,
 | 
						||
    BUYTREASURE_LEVEL = 2,
 | 
						||
}
 | 
						||
--初始化组件(用于子类重写)
 | 
						||
function CostConfirmPopup:InitComponent()
 | 
						||
    this.spLoader = SpriteLoader.New()
 | 
						||
    this.tipConfirmBtn=Util.GetGameObject(this.gameObject,"Panel/ConfirmBtn")
 | 
						||
    this.tipBackBtn=Util.GetGameObject(this.gameObject,"Panel/BackBtn")
 | 
						||
 | 
						||
    this.toggleBox = Util.GetGameObject(this.gameObject, "Panel/box/toggle")
 | 
						||
    this.tipToggle = Util.GetGameObject(this.toggleBox, "Toggle"):GetComponent("Toggle")
 | 
						||
    this.costIcon = Util.GetGameObject(this.gameObject,"Panel/box/base/CostNum/CostItemIcon"):GetComponent("Image")
 | 
						||
    this.costNumText = Util.GetGameObject(this.gameObject,"Panel/box/base/CostNum"):GetComponent("Text")
 | 
						||
    this.contentText = Util.GetGameObject(this.gameObject,"Panel/box/base/content"):GetComponent("Text")
 | 
						||
    this.tipText = Util.GetGameObject(this.gameObject,"Panel/box/tip"):GetComponent("Text")
 | 
						||
end
 | 
						||
 | 
						||
--绑定事件(用于子类重写)
 | 
						||
function CostConfirmPopup:BindEvent()
 | 
						||
    --提示框确定按钮
 | 
						||
    Util.AddClick(this.tipConfirmBtn, function()
 | 
						||
        -- 不是
 | 
						||
        if this.costTipType ~= COST_CONFIRM_TYPE.NO_POPUP_TOGGLE then
 | 
						||
            if this.tipToggle.isOn then
 | 
						||
                local currentTime = os.date("%Y%m%d", PlayerManager.serverTime)
 | 
						||
                RedPointManager.PlayerPrefsSetStr(PlayerManager.uid .. "isShowPopUp" .. this.costTipType, currentTime)
 | 
						||
            end
 | 
						||
        end
 | 
						||
 | 
						||
        if this.func then this.func() end
 | 
						||
        self:ClosePanel()
 | 
						||
    end)
 | 
						||
    --提示框关闭按钮
 | 
						||
    Util.AddClick(this.tipBackBtn, function()
 | 
						||
        self:ClosePanel()
 | 
						||
    end)
 | 
						||
end
 | 
						||
 | 
						||
--添加事件监听(用于子类重写)
 | 
						||
function CostConfirmPopup:AddListener()
 | 
						||
end
 | 
						||
 | 
						||
--移除事件监听(用于子类重写)
 | 
						||
function CostConfirmPopup:RemoveListener()
 | 
						||
end
 | 
						||
 | 
						||
--界面打开时调用(用于子类重写)
 | 
						||
function CostConfirmPopup:OnOpen(itemId, costNum, content, tip, func, costTipType)
 | 
						||
    this.itemId = itemId
 | 
						||
    this.costNum = costNum
 | 
						||
    this.content = content
 | 
						||
    this.tip = tip
 | 
						||
    this.func = func
 | 
						||
    this.costTipType = costTipType or COST_CONFIRM_TYPE.NO_POPUP_TOGGLE
 | 
						||
end
 | 
						||
 | 
						||
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
 | 
						||
function CostConfirmPopup:OnShow()
 | 
						||
 | 
						||
    --基础显示
 | 
						||
    this.costIcon.sprite = SetIcon(this.spLoader, this.itemId)
 | 
						||
    this.costNumText.text="×"..this.costNum
 | 
						||
    this.contentText.text=","..this.content
 | 
						||
 | 
						||
    -- 判断是否需要显示tip
 | 
						||
    if this.tip then
 | 
						||
        this.tipText.gameObject:SetActive(true)
 | 
						||
        this.tipText.text=this.tip
 | 
						||
    else
 | 
						||
        this.tipText.gameObject:SetActive(false)
 | 
						||
    end
 | 
						||
 | 
						||
    -- 今日不再弹出功能
 | 
						||
    this.tipToggle.isOn = false -- 默认关闭
 | 
						||
    this.toggleBox:SetActive(this.costTipType ~= COST_CONFIRM_TYPE.NO_POPUP_TOGGLE)
 | 
						||
end
 | 
						||
 | 
						||
--
 | 
						||
function CostConfirmPopup.Show(itemId, costNum, content, tip, func, costTipType)
 | 
						||
    -- 界面默认类型为没有控制弹出功能的类型
 | 
						||
    costTipType = costTipType or COST_CONFIRM_TYPE.NO_POPUP_TOGGLE
 | 
						||
    if costTipType == COST_CONFIRM_TYPE.NO_POPUP_TOGGLE then
 | 
						||
        UIManager.OpenPanel(UIName.CostConfirmPopup, itemId, costNum, content, tip, func, costTipType)
 | 
						||
        return
 | 
						||
    end
 | 
						||
 | 
						||
    --如果是同一天不必再弹出,否则弹出确认界面
 | 
						||
    local lastPopupDay = RedPointManager.PlayerPrefsGetStr(PlayerManager.uid .. "isShowPopUp"..costTipType)
 | 
						||
    local currentDay = os.date("%Y%m%d", PlayerManager.serverTime)
 | 
						||
    if lastPopupDay == currentDay  then
 | 
						||
        if func then func() end
 | 
						||
    else
 | 
						||
        UIManager.OpenPanel(UIName.CostConfirmPopup, itemId, costNum, content, tip, func, costTipType)
 | 
						||
    end
 | 
						||
 | 
						||
end
 | 
						||
--界面关闭时调用(用于子类重写)
 | 
						||
function CostConfirmPopup:OnClose()
 | 
						||
end
 | 
						||
 | 
						||
--界面销毁时调用(用于子类重写)
 | 
						||
function CostConfirmPopup:OnDestroy()
 | 
						||
    this.spLoader:Destroy()
 | 
						||
end
 | 
						||
 | 
						||
return CostConfirmPopup |