From 7bea01b496bbb7aed4142c9234f688d58f0161af Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期二, 02 四月 2019 10:32:29 +0800
Subject: [PATCH] 3335 拍卖行修改

---
 System/Auction/FullServiceAuctionWin.cs |  317 +++++++++++++++++++++-------------------------------
 1 files changed, 131 insertions(+), 186 deletions(-)

diff --git a/System/Auction/FullServiceAuctionWin.cs b/System/Auction/FullServiceAuctionWin.cs
index 1b0d5dc..96ba14a 100644
--- a/System/Auction/FullServiceAuctionWin.cs
+++ b/System/Auction/FullServiceAuctionWin.cs
@@ -16,16 +16,12 @@
     {
 
         #region Built-in
-        [SerializeField] ScrollerController m_ScrollerController;
-        [SerializeField] ScrollerController m_ScrollerControllerJob;
-        [SerializeField] ScrollerController m_ScrollerControllerType;
-        [SerializeField] ScrollerController m_ScrollerControllerItem;
-        [SerializeField] GameObject m_JobTip;
-        [SerializeField] GameObject m_TypeTip;
-        [SerializeField] Button m_JobTipBtn;
-        [SerializeField] Button m_TypeTipBtn;
-        [SerializeField] Text m_JobTipText;
-        [SerializeField] Text m_TypeTipText;
+        [SerializeField] ScrollerController m_ClassifyController;
+        [SerializeField] AuctionChildClassifyBehaviour[] m_ChildClassifys;
+        [SerializeField] ScrollerController m_ChildClassifyController;
+        [SerializeField] Transform m_ContainerChildClassify;
+        [SerializeField] Transform[] m_ChildClassifyPositions;
+        [SerializeField] ScrollerController m_AuctionController;
 
         List<string> itemGuids = new List<string>();//鍏ㄦ湇鎷嶅搧鍒楄〃
 
@@ -37,53 +33,49 @@
 
         protected override void BindController()
         {
-            m_ScrollerController.OnRefreshCell += OnRefreshGridCell;
-            m_ScrollerControllerJob.OnRefreshCell += OnRefreshGridCellJob;
-            m_ScrollerControllerType.OnRefreshCell += OnRefreshGridCellType;
-            m_ScrollerControllerItem.OnRefreshCell += OnRefreshGridCellItem;
-            m_ScrollerControllerItem.lockType = EnhanceLockType.KeepVertical;
+            m_ClassifyController.OnRefreshCell += OnRefreshClassifyCell;
+
+            m_ChildClassifyController.OnRefreshCell += OnRefreshChildClassifyCell;
+            m_AuctionController.OnRefreshCell += OnRefreshGridCellItem;
+            m_AuctionController.lockType = EnhanceLockType.KeepVertical;
         }
 
         protected override void AddListeners()
         {
-            m_JobTipBtn.AddListener(OnClickJobTipBtn);
-            m_TypeTipBtn.AddListener(OnClickTypeTipBtn);
         }
 
         protected override void OnPreOpen()
         {
             model.isAuctionWindowOpen = false;
-
+            model.selectClassifyId = 0;
+            model.childClassifyIndex = Int2.zero;
             queryDirty = false;
 
             GlobalTimeEvent.Instance.secondEvent += PerSecond;
             model.serverAuctionRefresh += FullServiceAuctionUpdate;//鏁版嵁璇锋眰鍒锋柊
             model.auctionItemRefresh += RefreshAuctionItemUpdate;//鍒锋柊
             model.onAuctionRemove += ClearAuctionUpdate;//娓呴櫎
-            model.myBiddingAuctionRefresh += BiddingItemInfoUpdate;//绔炰环鐗╁搧淇℃伅鍒锋柊        
-            m_ScrollerControllerItem.onValueChange += OnValueChange;
+            model.myBiddingAuctionRefresh += BiddingItemInfoUpdate;//绔炰环鐗╁搧淇℃伅鍒锋柊      
+            model.selectClassifyRefresh += SelectClassifyRefresh;
+            m_AuctionController.onValueChange += OnValueChange;
 
             CloseChildClassify();
-
-            ResetServerAuctionInquiry();
+            ResetServerAuctionInquiry();
 
-            OnCreateGridLineCell(m_ScrollerController);
-            OnCreateGridLineCellJob(m_ScrollerControllerJob);
-            OnCreateGridLineCellType(m_ScrollerControllerType);
-            OnCreateGridLineCellItem(m_ScrollerControllerItem);
+            Display();
 
             var index = itemGuids.IndexOf(model.locationGuid);
             if (index != -1)
             {
-                m_ScrollerControllerItem.JumpIndex(index);
+                m_AuctionController.JumpIndex(index);
             }
 
             model.isLocationQuery = false;
             model.locationGuid = string.Empty;
 
-            SetTipText();
-        }
-
+            RefreshChildClassify();
+        }
+
         protected override void OnActived()
         {
             base.OnActived();
@@ -103,9 +95,43 @@
             model.onAuctionRemove -= ClearAuctionUpdate;
             model.myBiddingAuctionRefresh -= BiddingItemInfoUpdate;//绔炰环鐗╁搧淇℃伅鍒锋柊
             GlobalTimeEvent.Instance.secondEvent -= PerSecond;
-            m_ScrollerControllerItem.onValueChange -= OnValueChange;
+            m_AuctionController.onValueChange -= OnValueChange;
+            model.selectClassifyRefresh -= SelectClassifyRefresh;
 
             StopAllCoroutines();
+        }
+
+        protected override void OnAfterClose()
+        {
+        }
+        #endregion
+
+        void Display()
+        {
+            DisplayClassifies();
+            DisplayAuctionItems();
+        }
+
+        void DisplayClassifies()
+        {
+            var configs = AuctionConfig.GetValues();
+            m_ClassifyController.Refresh();
+            foreach (var config in configs)
+            {
+                m_ClassifyController.AddCell(ScrollerDataType.Header, config.Id);
+            }
+            m_ClassifyController.Restart();
+        }
+
+        private void SelectClassifyRefresh()
+        {
+            model.childClassifyIndex = Int2.zero;
+
+            CloseChildClassify();
+            RefreshChildClassify();
+
+            m_ClassifyController.m_Scorller.RefreshActiveCellViews();
+            queryDirty = true;
         }
 
         IEnumerator Co_Open()
@@ -120,19 +146,14 @@
             {
                 if (model.SatisfyQueryAuction(2))
                 {
-                    var inquiryIndex = AuctionInquiry.Instance.GetInquiryIndex();
+                    var inquiryIndex = model.GetQueryIndex();
                     if (itemGuids.Count > 0)
                     {
                         model.SendInquiryServerAcution(inquiryIndex, itemGuids[0], 2);
                     }
                 }
             }
-        }
-
-        protected override void OnAfterClose()
-        {
-        }
-        #endregion
+        }
 
         private void PerSecond()
         {
@@ -145,171 +166,96 @@
 
         private void FullServiceAuctionUpdate()
         {
-            OnCreateGridLineCellItem(m_ScrollerControllerItem);
+            DisplayAuctionItems();
         }
 
         private void RefreshAuctionItemUpdate()
         {
-            m_ScrollerControllerItem.m_Scorller.RefreshActiveCellViews();//鍒锋柊鍙
+            m_AuctionController.m_Scorller.RefreshActiveCellViews();//鍒锋柊鍙
         }
 
         private void ClearAuctionUpdate()
         {
-            OnCreateGridLineCellItem(m_ScrollerControllerItem);
+            DisplayAuctionItems();
         }
 
         private void BiddingItemInfoUpdate()
         {
-            OnCreateGridLineCellItem(m_ScrollerControllerItem);
+            DisplayAuctionItems();
         }
 
-        private void OnClickJobTipBtn()
+        private void OnRefreshClassifyCell(ScrollerDataType type, CellView cell)
         {
-            m_JobTip.SetActive(true);
+            var classifyCell = cell as ServerAuctionClassifyCell;
+            classifyCell.Display(cell.index);
         }
-
-        private void OnClickTypeTipBtn()
-        {
-            m_TypeTip.SetActive(true);
-        }
-        private void OnCreateGridLineCell(ScrollerController gridCtrl)
-        {
 
-            gridCtrl.Refresh();
-            for (int i = 0; i < auctionHelpModel.FullServiceAuctionList.Count; i++)
-            {
-                gridCtrl.AddCell(ScrollerDataType.Header, i);
-            }
-            gridCtrl.Restart();
-        }
-        private void OnRefreshGridCell(ScrollerDataType type, CellView cell)
+        private void OnRefreshChildClassifyCell(ScrollerDataType type, CellView cell)
         {
-            var index = cell.index;
-            if (index >= auctionHelpModel.FullServiceAuctionList.Count)
+            var classifyId = model.selectClassifyId;
+            var config = AuctionConfig.Get(classifyId);
+
+            var index = cell.index / 100;
+            var classifyIndex = cell.index % 100;
+
+            if (config != null)
             {
-                return;
-            }
-            var fullServiceAuction = auctionHelpModel.FullServiceAuctionList[index];
-            Text textName = cell.transform.Find("Text").GetComponent<Text>();
-            GameObject selected = cell.transform.Find("Selected").gameObject;
-            ButtonEx button = cell.GetComponent<ButtonEx>();
-            textName.text = fullServiceAuction.TypeName;
-            if (fullServiceAuction.Id == auctionHelpModel.SelectedGenreNow)
-            {
-                selected.SetActive(true);
-            }
-            else
-            {
-                selected.SetActive(false);
-            }
-            button.SetListener(() =>
-            {
-                if (fullServiceAuction.Id != auctionHelpModel.SelectedGenreNow)
+                var classifyNameArray = index == 0 ? config.ChooseItemName1 : config.ChooseItemName2;
+
+                Text textName = cell.transform.Find("Text").GetComponent<Text>();
+                Button button = cell.GetComponent<Button>();
+
+                textName.text = classifyNameArray[classifyIndex];
+
+                button.SetListener(() =>
                 {
                     CloseChildClassify();
-                    auctionHelpModel.SelectedGenreNow = fullServiceAuction.Id;
-                    queryDirty = true;
-                    m_ScrollerController.m_Scorller.RefreshActiveCellViews();//鍒锋柊鍙
-                    OnCreateGridLineCellJob(m_ScrollerControllerJob);
-                    OnCreateGridLineCellType(m_ScrollerControllerType);
-                    SetTipText();
-                }
-            });
 
-        }
-
-        private void OnCreateGridLineCellJob(ScrollerController gridCtrl)
-        {
-            var index = 0;
-            index = auctionHelpModel.FullServiceAuctionList.FindIndex((x) =>
-            {
-                return x.Id == auctionHelpModel.SelectedGenreNow;
-            });
-            if (index != -1)
-            {
-                var fullServiceAuction = auctionHelpModel.FullServiceAuctionList[index];
-                if (fullServiceAuction.ChooseItem1 != null && fullServiceAuction.ChooseItem1.Length != 0)
-                {
-                    gridCtrl.Refresh();
-                    for (int i = 0; i < fullServiceAuction.ChooseItem1.Length; i++)
-                    {
-                        gridCtrl.AddCell(ScrollerDataType.Header, i);
-                    }
-                    gridCtrl.Restart();
-                }
+                    var currentClassifyIndex = index == 0 ? model.childClassifyIndex.x : model.childClassifyIndex.y;
 
-            }
-        }
-        private void OnRefreshGridCellJob(ScrollerDataType type, CellView cell)
-        {
-            var index = cell.index;
-            var selectedGenreNow = auctionHelpModel.SelectedGenreNow;
-            if (auctionHelpModel.FullServiceAuctionDic.ContainsKey(selectedGenreNow))
-            {
-                var config = auctionHelpModel.FullServiceAuctionDic[selectedGenreNow];
-                Text textName = cell.transform.Find("Text").GetComponent<Text>();
-                Button button = cell.GetComponent<Button>();
-                textName.text = config.Config.ChooseItemName1[index];
-                button.SetListener(() =>
-                {
-                    m_JobTip.SetActive(false);
-                    if (index != config.JobEntry)
+                    if (classifyIndex != currentClassifyIndex)
                     {
-                        auctionHelpModel.FullServiceAuctionDic[selectedGenreNow].JobEntry = index;
+                        if (index == 0)
+                        {
+                            model.childClassifyIndex.x = classifyIndex;
+                        }
+                        else
+                        {
+                            model.childClassifyIndex.y = classifyIndex;
+                        }
+
                         queryDirty = true;
-                        SetTipText();
+                        RefreshChildClassify();
                     }
                 });
             }
         }
 
-        private void OnCreateGridLineCellType(ScrollerController gridCtrl)
+        public void DisplayChildClassify(int index)
         {
-            var index = 0;
-            index = auctionHelpModel.FullServiceAuctionList.FindIndex((x) =>
+            var config = AuctionConfig.Get(model.selectClassifyId);
+
+            var position = m_ChildClassifyPositions[0].localPosition;
+
+            if (index == 1)
             {
-                return x.Id == auctionHelpModel.SelectedGenreNow;
-            });
-            if (index != -1)
-            {
-                var fullServiceAuction = auctionHelpModel.FullServiceAuctionList[index];
-                if (fullServiceAuction.ChooseItem2 != null && fullServiceAuction.ChooseItem2.Length != 0)
-                {
-                    gridCtrl.Refresh();
-                    for (int i = 0; i < fullServiceAuction.ChooseItem2.Length; i++)
-                    {
-                        gridCtrl.AddCell(ScrollerDataType.Header, i);
-                    }
-                    gridCtrl.Restart();
-                }
+                position = config.ChooseItem1 == null || config.ChooseItem1.Length == 0 ?
+                    m_ChildClassifyPositions[0].localPosition : m_ChildClassifyPositions[1].localPosition;
             }
+
+            var classifyArray = index == 0 ? config.ChooseItem1 : config.ChooseItem2;
+            m_ChildClassifyController.Refresh();
+            for (int i = 0; i < classifyArray.Length; i++)
+            {
+                m_ChildClassifyController.AddCell(ScrollerDataType.Header, index * 100 + i);
+            }
+            m_ChildClassifyController.Restart();
+
+            m_ContainerChildClassify.localPosition = position;
+            m_ContainerChildClassify.gameObject.SetActive(true);
         }
-
-        private void OnRefreshGridCellType(ScrollerDataType type, CellView cell)
-        {
-            var index = cell.index;
-            var selectedGenreNow = auctionHelpModel.SelectedGenreNow;
-            if (auctionHelpModel.FullServiceAuctionDic.ContainsKey(selectedGenreNow))
-            {
-                var config = auctionHelpModel.FullServiceAuctionDic[selectedGenreNow];
-                Text textName = cell.transform.Find("Text").GetComponent<Text>();
-                Button button = cell.GetComponent<Button>();
-                textName.text = config.Config.ChooseItemName2[index];
-                button.SetListener(() =>
-                {
-                    m_TypeTip.SetActive(false);
-                    if (index != config.TypeEntry)
-                    {
-                        auctionHelpModel.FullServiceAuctionDic[selectedGenreNow].TypeEntry = index;
-                        queryDirty = true;
-                        SetTipText();
-                    }
-                });
-            }
 
-        }
-
-        private void OnCreateGridLineCellItem(ScrollerController gridCtrl)
+        private void DisplayAuctionItems()
         {
             var firstGuid = itemGuids.Count > 0 ? itemGuids[0] : string.Empty;
 
@@ -345,16 +291,16 @@
                 }
             }
 
-            gridCtrl.Refresh();
+            m_AuctionController.Refresh();
             for (int i = 0; i < itemGuids.Count; i++)
             {
-                gridCtrl.AddCell(ScrollerDataType.Header, i);
+                m_AuctionController.AddCell(ScrollerDataType.Header, i);
             }
-            gridCtrl.Restart();
+            m_AuctionController.Restart();
 
             if (jumpIndex != -1)
             {
-                gridCtrl.JumpIndex(jumpIndex);
+                m_AuctionController.JumpIndex(jumpIndex);
             }
 
 
@@ -373,39 +319,38 @@
             model.ResetServerAuctionInquiry();
             if (!model.isLocationQuery)
             {
-                var inquiryIndex = AuctionInquiry.Instance.GetInquiryIndex();
+                var inquiryIndex = model.GetQueryIndex();
                 model.SendInquiryServerAcution(inquiryIndex, string.Empty, 1);
             }
         }
 
         private void CloseChildClassify()
         {
-            m_JobTip.SetActive(false);
-            m_TypeTip.SetActive(false);
+            m_ContainerChildClassify.gameObject.SetActive(false);
         }
 
-        private void SetTipText()
+        private void RefreshChildClassify()
         {
-            var selectedGenreNow = auctionHelpModel.SelectedGenreNow;
-            if (auctionHelpModel.FullServiceAuctionDic.ContainsKey(selectedGenreNow))
+            var classifyId = model.selectClassifyId;
+            var config = AuctionConfig.Get(classifyId);
+            for (int i = 0; i < m_ChildClassifys.Length; i++)
             {
-                var config = auctionHelpModel.FullServiceAuctionDic[selectedGenreNow];
-                m_JobTipBtn.gameObject.SetActive(config.JobTipBool);
-                if (config.JobTipBool)
+                var classifyIds = i == 0 ? config.ChooseItem1 : config.ChooseItem2;
+                if (classifyIds == null || classifyIds.Length == 0)
                 {
-                    m_JobTipText.text = config.Config.ChooseItemName1[config.JobEntry];
+                    m_ChildClassifys[i].gameObject.SetActive(false);
                 }
-                m_TypeTipBtn.gameObject.SetActive(config.TypeTipBool);
-                if (config.TypeTipBool)
+                else
                 {
-                    m_TypeTipText.text = config.Config.ChooseItemName2[config.TypeEntry];
+                    m_ChildClassifys[i].gameObject.SetActive(true);
+                    m_ChildClassifys[i].Display(this, i);
                 }
             }
         }
 
         private void PushMyBiddingItems()
         {
-            var index = AuctionInquiry.Instance.GetInquiryIndex();
+            var index = model.GetQueryIndex();
 
             var myBiddingItems = model.GetMyBiddingAuctionItems();
             foreach (var guid in myBiddingItems)

--
Gitblit v1.8.0