using System; using System.Collections.Generic; using System.Data; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class ExclusiveBenefitWin : Window { [SerializeField] ScrollerController m_Controller; [SerializeField] Button CloseBtn; [SerializeField] Button buyBtn; [SerializeField] ImageEx buyImg; [SerializeField] TextEx buyTxt; TextEx orgPrice; ExclusiveBenefitModel model { get { return ModelCenter.Instance.GetModel(); } } VipModel vipModel { get { return ModelCenter.Instance.GetModel(); } } PackModel packModel { get { return ModelCenter.Instance.GetModelEx(); } } protected override void BindController() { var obj = buyBtn.FindComponent("Text", "Txt_orgPrice"); if (obj != null) orgPrice = obj as TextEx; } protected override void AddListeners() { CloseBtn.SetListener(() => { WindowCenter.Instance.Close(); }); } protected override void OnPreOpen() { m_Controller.OnRefreshCell += OnRefreshCell; vipModel.rechargeCountEvent += VipModel_rechargeCountEvent; DisplayScroll(); Display(); } void Display() { int ctgid = model.ctgid; OrderInfoConfig orderConfig; vipModel.TryGetOrderInfo(ctgid, out orderConfig); buyTxt.text = Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat(orderConfig.PayRMBNum)); if (orgPrice != null) { orgPrice.SetActiveIL(PlayerDatas.Instance.baseData.IsActive90Off); orgPrice.text = Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat(orderConfig.m_PayRMBNum)); } buyBtn.SetActive(!model.IsBuy()); buyImg.SetActive(model.IsBuy()); buyBtn.SetListener(() => { if (packModel.GetEmptyGridCount(PackType.Item) < 10) { SysNotifyMgr.Instance.ShowTip("GeRen_lhs_202580"); return; } vipModel.CTG(ctgid); }); } void VipModel_rechargeCountEvent(int obj) { if (obj == model.ctgid) { Display(); } } protected override void OnAfterOpen() { } protected override void OnPreClose() { m_Controller.OnRefreshCell -= OnRefreshCell; vipModel.rechargeCountEvent -= VipModel_rechargeCountEvent; } void OnUpdateRechargeGiftActEvent() { DisplayScroll(); } protected override void OnAfterClose() { } void DisplayScroll() { m_Controller.Refresh(); int ctgid = model.ctgid; List awards = new List(); vipModel.TryGetRechargeItem(ctgid, out awards); int lineCount = (int)Math.Ceiling((double)awards.Count / 7); for (int i = 0; i < lineCount; i++) { m_Controller.AddCell(ScrollerDataType.Header, i); } m_Controller.Restart(); } private void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as ExclusiveBenefitCell; _cell.Display(_cell.index); } } }