using GCGame.Table;
using Module.Log;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class FlashSalePanel_new : MarketingUIBaseCS
{
    #region Single
    public static FlashSalePanel_new _instance;
    public static FlashSalePanel_new Instance
    {
        get
        {
            if (_instance != null)
            {
                return _instance;
            }

            LogModule.ErrorLog("Can't get instances");
            return null;
        }
    }

    private void Awake()
    {
        if (_instance == null)
        {
            _instance = this;
        }

        closeBtn.onClick.AddListener(ClosePanel);
    }

    private void OnDisable()
    {
        if (MarketingActsRoot.Instance() != null)
        {
            MarketingActsRoot.Instance().ClearShowingWin(_ActID);
        }
    }
    #endregion

    public Button closeBtn;
    public UIContainerSelect menuContainer;                 // 列表容器
    public GameObject pageContainer;                        // 页面容器
    public List<MarketingActState> actPageInfo;             // 菜单信息

    private int curPageID;                                  // 当前显示页面ID

    private void OnEnable()
    {
        Init();
    }

    private void Init()
    {
        AskForInfo();
    }

    // 请求
    private void AskForInfo()
    {
        MarketingActsReq request = new MarketingActsReq();
        request.actType = _ActID;
        request.SendMsg();
    }

    protected override void MarketingActRetInner(MarketingActsRet marketActsRet)
    {
        base.MarketingActRetInner(marketActsRet);
        SetMenu(marketActsRet.actIDState);
        
    }

    private void SetMenu(List<MarketingActState> menuInfos)
    {
        if (menuInfos.Count > 0)
        {
            List<MarketingActState> selectMenus = new List<MarketingActState>();
            selectMenus.Add(menuInfos[0]);
            menuContainer.InitSelectContent(menuInfos, selectMenus, OnMenuSelect);
        }
    }

    // 加载页面
    private void OnMenuSelect(object info)
    {
        MarketingActState selectMenu = info as MarketingActState;
        if (selectMenu != null)
        {
            if (MarketingActsRoot.Instance()._ShowingWin.ContainsKey(curPageID))
            {
                if (MarketingActsRoot.Instance()._ShowingWin[curPageID] != null)
                {
                    MarketingActsRoot.Instance()._ShowingWin[curPageID].SetActive(false);
                }
                else
                {
                    LogModule.DebugLog("Try to get an activity in Openservice. But is Null, please check _ActId = " + curPageID);
                }

                MarketingActsRoot.Instance()._ShowingWin.Remove(curPageID);
            }

            ///////////// 临时修复Bug:会出现没及时删除旧页面的情况
            if (MarketingActsRoot.Instance()._ShowingWin.ContainsKey(selectMenu.actID))
            {
                if (MarketingActsRoot.Instance()._ShowingWin[selectMenu.actID] != null)
                {
                    MarketingActsRoot.Instance()._ShowingWin[selectMenu.actID].SetActive(false);
                }
                else
                {
                    LogModule.DebugLog("Try to get an activity in Openservice. But is Null, please check _ActId = " + curPageID);
                }

                MarketingActsRoot.Instance()._ShowingWin.Remove(selectMenu.actID);
            }
            ////////////

            Tab_ActInfoClient tab = TableManager.GetActInfoClientByID(selectMenu.actID, 0);
            Hashtable parm = new Hashtable();
            parm.Add("ActState", selectMenu);

            LuaUIManager.Instance.ShowLuaUIAsChild(tab.UIPath, pageContainer, MarketingActsRoot.Instance().LoadUICallBack, parm, true);
            curPageID = selectMenu.actID;
            FlashSalePaging. Instance.ReqActList(selectMenu.actID);
        }
        else
        {
            LogModule.ErrorLog("No this page.");
        }
    }

    public void ClosePanel()
    {
        gameObject.SetActive(false);
    }
}