using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //充值界面 public class RechargeWin : UIBase { [SerializeField] GroupButtonEx djq1Btn; [SerializeField] GroupButtonEx djqBtn; [SerializeField] GroupButtonEx goldBtn; [SerializeField] ScrollerController djq1Scroller; [SerializeField] ScrollerController djqScroller; [SerializeField] ScrollerController goldScroller; [SerializeField] Transform djqInfo; [SerializeField] Transform djqInfo1; List _list = new List(); protected override void InitComponent() { djq1Btn.AddListener(() => { OnSelectFuncType(2); }); djqBtn.AddListener(() => { OnSelectFuncType(0); }); goldBtn.AddListener(() => { OnSelectFuncType(1); }); } protected override void OnPreOpen() { djq1Scroller.OnRefreshCell += OnDjq1RefreshCell; djqScroller.OnRefreshCell += OnDjqRefreshCell; goldScroller.OnRefreshCell += OnGoldRefreshCell; RechargeManager.Instance.rechargeCountEvent += RechargeEvent; var availableMoneyTypes = GeneralDefine.GetPayMethodAvailableMoneyTypes(); bool showDjq1Btn = availableMoneyTypes.Contains(97); bool showDjqBtn = availableMoneyTypes.Contains(99); djq1Btn.gameObject.SetActive(showDjq1Btn); djqBtn.gameObject.SetActive(showDjqBtn); if (!showDjq1Btn && RechargeManager.Instance.selectTabIndex == 2) { RechargeManager.Instance.selectTabIndex = showDjqBtn ? 0 : 1; } if (!showDjqBtn && RechargeManager.Instance.selectTabIndex == 0) { RechargeManager.Instance.selectTabIndex = showDjq1Btn ? 2 : 1; } if (RechargeManager.Instance.selectTabIndex == 2) { djq1Btn.SelectBtn(); } else if (RechargeManager.Instance.selectTabIndex == 0) { djqBtn.SelectBtn(); } else if (RechargeManager.Instance.selectTabIndex == 1) { goldBtn.SelectBtn(); } Display(); } protected override void OnPreClose() { djq1Scroller.OnRefreshCell -= OnDjq1RefreshCell; djqScroller.OnRefreshCell -= OnDjqRefreshCell; goldScroller.OnRefreshCell -= OnGoldRefreshCell; RechargeManager.Instance.rechargeCountEvent -= RechargeEvent; } void RechargeEvent(int id) { Display(); } void Display() { CreateScroller(); } void CreateScroller() { if (RechargeManager.Instance.selectTabIndex == 2) { _list = RechargeManager.Instance.GetCTGIDListByType(27); djq1Scroller.SetActive(true); djqInfo1.SetActive(true); djqScroller.SetActive(false); djqInfo.SetActive(false); goldScroller.SetActive(false); if (djq1Scroller.GetCellTotalCount() == 0) { djq1Scroller.Refresh(); for (int i = 0; i < _list.Count; i++) { if (i % 3 == 0) { djq1Scroller.AddCell(ScrollerDataType.Header, i); } } djq1Scroller.Restart(); } else { djq1Scroller.m_Scorller.RefreshActiveCellViews(); } SDKUtils.Instance.SendTraceEvent(8, "充值", "现金礼券", "2"); } else if (RechargeManager.Instance.selectTabIndex == 0) { if (!GeneralDefine.GetPayMethodAvailableMoneyTypes().Contains(99)) { djq1Scroller.SetActive(false); djqInfo1.SetActive(false); djqScroller.SetActive(false); djqInfo.SetActive(false); goldScroller.SetActive(true); RechargeManager.Instance.selectTabIndex = 1; return; } _list = RechargeManager.Instance.GetCTGIDListByType(17); djq1Scroller.SetActive(false); djqInfo1.SetActive(false); djqScroller.SetActive(true); djqInfo.SetActive(true); goldScroller.SetActive(false); if (djqScroller.GetCellTotalCount() == 0) { djqScroller.Refresh(); for (int i = 0; i < _list.Count; i++) { if (i % 3 == 0) { djqScroller.AddCell(ScrollerDataType.Header, i); } } djqScroller.Restart(); } else { djqScroller.m_Scorller.RefreshActiveCellViews(); } SDKUtils.Instance.SendTraceEvent(8, "充值", "玄玉", "0"); } else if (RechargeManager.Instance.selectTabIndex == 1) { _list = RechargeManager.Instance.GetCTGIDListByType(2); djq1Scroller.SetActive(false); djqInfo1.SetActive(false); djqScroller.SetActive(false); djqInfo.SetActive(false); goldScroller.SetActive(true); if (goldScroller.GetCellTotalCount() == 0) { goldScroller.Refresh(); for (int i = 0; i < _list.Count; i++) { if (i % 3 == 0) { goldScroller.AddCell(ScrollerDataType.Header, i); } } goldScroller.Restart(); } else { goldScroller.m_Scorller.RefreshActiveCellViews(); } SDKUtils.Instance.SendTraceEvent(8, "充值", "元宝", "1"); } } void OnDjq1RefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as RechargeDJQLineCell; _cell.Display(cell.index, _list); } void OnDjqRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as RechargeDJQLineCell; _cell.Display(cell.index, _list); } void OnGoldRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as RechargeGoldLineCell; _cell.Display(cell.index, _list); } void OnSelectFuncType(int index) { RechargeManager.Instance.selectTabIndex = index; Display(); } }