Bladeren bron

Merge remote-tracking branch 'origin/master'

ZhangXin 1 jaar geleden
bovenliggende
commit
2e6ebd9693

+ 33 - 2
Assets/Resources/UI/Common/Course.prefab

@@ -149,6 +149,8 @@ GameObject:
   - component: {fileID: 8118701178713947143}
   - component: {fileID: 7858823938432082925}
   - component: {fileID: 3290068495117907982}
+  - component: {fileID: 3188751517116485115}
+  - component: {fileID: 3582203552977509126}
   m_Layer: 0
   m_Name: Course
   m_TagString: Untagged
@@ -287,7 +289,7 @@ MonoBehaviour:
   onValueChanged:
     m_PersistentCalls:
       m_Calls: []
-  m_IsOn: 1
+  m_IsOn: 0
 --- !u!223 &3290068495117907982
 Canvas:
   m_ObjectHideFlags: 0
@@ -309,6 +311,35 @@ Canvas:
   m_SortingLayerID: 0
   m_SortingOrder: 1000
   m_TargetDisplay: 0
+--- !u!114 &3188751517116485115
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 854205249902916973}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreReversedGraphics: 1
+  m_BlockingObjects: 0
+  m_BlockingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+--- !u!225 &3582203552977509126
+CanvasGroup:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 854205249902916973}
+  m_Enabled: 1
+  m_Alpha: 1
+  m_Interactable: 1
+  m_BlocksRaycasts: 1
+  m_IgnoreParentGroups: 0
 --- !u!1 &3214046910220200682
 GameObject:
   m_ObjectHideFlags: 0
@@ -479,7 +510,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 1
+  m_IsActive: 0
 --- !u!224 &1344871591472042824
 RectTransform:
   m_ObjectHideFlags: 0

+ 177 - 3
Assets/Resources/UI/From/MainMenuView.prefab

@@ -278,6 +278,9 @@ GameObject:
   - component: {fileID: 3275082030205200103}
   - component: {fileID: 9197125314676349381}
   - component: {fileID: 9124917781199321869}
+  - component: {fileID: 8734867291744389445}
+  - component: {fileID: 2173156886131904256}
+  - component: {fileID: 8421106096210489268}
   m_Layer: 0
   m_Name: NextPageBtn
   m_TagString: Untagged
@@ -298,7 +301,7 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 2861531902931025395}
-  m_RootOrder: 1
+  m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 1, y: 0.5}
   m_AnchorMax: {x: 1, y: 0.5}
@@ -343,6 +346,88 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!114 &8734867291744389445
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2515297278978732693}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 9124917781199321869}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!223 &2173156886131904256
+Canvas:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2515297278978732693}
+  m_Enabled: 1
+  serializedVersion: 3
+  m_RenderMode: 2
+  m_Camera: {fileID: 0}
+  m_PlaneDistance: 100
+  m_PixelPerfect: 0
+  m_ReceivesEvents: 1
+  m_OverrideSorting: 1
+  m_OverridePixelPerfect: 0
+  m_SortingBucketNormalizedSize: 0
+  m_AdditionalShaderChannelsFlag: 0
+  m_SortingLayerID: 0
+  m_SortingOrder: 1003
+  m_TargetDisplay: 0
+--- !u!114 &8421106096210489268
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2515297278978732693}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreReversedGraphics: 1
+  m_BlockingObjects: 0
+  m_BlockingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
 --- !u!1 &2896998827563964681
 GameObject:
   m_ObjectHideFlags: 0
@@ -450,8 +535,8 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 2474193194582226531}
-  - {fileID: 3275082030205200103}
   - {fileID: 7962461523276269587}
+  - {fileID: 3275082030205200103}
   m_Father: {fileID: 4701472332952497822}
   m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -549,6 +634,9 @@ GameObject:
   - component: {fileID: 7962461523276269587}
   - component: {fileID: 8663192561262613793}
   - component: {fileID: 5689670561688225126}
+  - component: {fileID: 2482470631233135073}
+  - component: {fileID: 8693556221378511455}
+  - component: {fileID: 8643553858740986961}
   m_Layer: 0
   m_Name: LastPageBtn
   m_TagString: Untagged
@@ -569,7 +657,7 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 2861531902931025395}
-  m_RootOrder: 2
+  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0.5}
   m_AnchorMax: {x: 0, y: 0.5}
@@ -614,6 +702,88 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!114 &2482470631233135073
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6387527739224058681}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 5689670561688225126}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!223 &8693556221378511455
+Canvas:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6387527739224058681}
+  m_Enabled: 1
+  serializedVersion: 3
+  m_RenderMode: 2
+  m_Camera: {fileID: 0}
+  m_PlaneDistance: 100
+  m_PixelPerfect: 0
+  m_ReceivesEvents: 1
+  m_OverrideSorting: 1
+  m_OverridePixelPerfect: 0
+  m_SortingBucketNormalizedSize: 0
+  m_AdditionalShaderChannelsFlag: 0
+  m_SortingLayerID: 0
+  m_SortingOrder: 1003
+  m_TargetDisplay: 0
+--- !u!114 &8643553858740986961
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6387527739224058681}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreReversedGraphics: 1
+  m_BlockingObjects: 0
+  m_BlockingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
 --- !u!1 &7062215212552549765
 GameObject:
   m_ObjectHideFlags: 0
@@ -1221,6 +1391,10 @@ PrefabInstance:
       propertyPath: m_IsActive
       value: 1
       objectReference: {fileID: 0}
+    - target: {fileID: 6143485940291919030, guid: bf68dcd7d74341a4388b32377cfc433e, type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 7858823938432082925, guid: bf68dcd7d74341a4388b32377cfc433e, type: 3}
       propertyPath: m_IsOn
       value: 1

+ 2 - 1
Assets/Scripts/Project/Config/CourseDefine.cs

@@ -16,5 +16,6 @@ public enum CoursType
     中药资源与鉴定,
     中药质量控制与分析,
     药事管理法规,
-    中医药方剂
+    中医药方剂,
+    中药检索
 }

+ 91 - 7
Assets/Scripts/Project/View/MainMenuController.cs

@@ -7,30 +7,90 @@ using UnityEngine;
 using UnityEngine.UI;
 using WS;
 
-
+[ObjectSystem]
+public class MainMenuControllerUpdateSystem : UpdateSystem<MainMenuController>
+{
+    public override void Update(MainMenuController self)
+    {
+        self.Update();
+    }
+}
 public class MainMenuController : Controller<MainMenuView, MainMenuModel>
 {
-    List<string> courses = new List<string>
+    List<CoursType> courses = new List<CoursType>
     {
-        "中药检索","中药学古文献","药物化学","药物化学","药物化学","药物化学"
+        CoursType.中药检索,
+        CoursType.中药学古文献,
+        CoursType.药物采集,
+        CoursType.药物炮制,
+        CoursType.药物化学,
+        CoursType.药物药理,
+        CoursType.中药药剂,
+        CoursType.中药资源与鉴定,
+        CoursType.中药质量控制与分析,
+        CoursType.药事管理法规,
+        CoursType.中医药方剂
     };
     protected override void BindingViewModel()
     {
+        _Model.currentPageIndex.Value = 1;
         refreshCourseList();
         ToggleGroupAddListener();
+        _Model.Bind(_View.nextPageBtn,NextBtnClick);
+        _Model.Bind(_View.lastPageBtn, LastBtnClick);
     }
     public override void OpenView()
     {
         base.OpenView();
     }
+    public void Update()
+    {
+        if (_Model.currentPageIndex.Value == Math.Ceiling((double)courses.Count / 6))
+        {
+            _View.nextPageBtn.interactable = false;
+        }
+        else
+        {
+            _View.nextPageBtn.interactable = true;
+        }
 
+        if (_Model.currentPageIndex.Value == 1)
+        {
+            _View.lastPageBtn.interactable = false;
+        }
+        else
+        {
+            _View.lastPageBtn.interactable = true;
+        }
+    }
+    void NextBtnClick()
+    {
+        _Model.currentPageIndex.Value++;
+        refreshCourseList() ;
+    }
+    void LastBtnClick()
+    {
+        _Model.currentPageIndex.Value--;
+        refreshCourseList() ;
+    }
     void refreshCourseList()
     {
+
         ReferenceCollector[] rcArray = _View.group.GetComponentsInChildren<ReferenceCollector>();
         for (int i = 0; i < rcArray.Length; i++)
         {
-            rcArray[i].GetComponent<TextMeshProUGUI>("Index").text = i.ToString();
-            rcArray[i].GetComponent<TextMeshProUGUI>("CourseName").text = courses[i];
+            int courseIndex = (_Model.currentPageIndex.Value - 1)*6+i;
+            if (courseIndex>=courses.Count)
+            {
+                rcArray[i].GetComponent<CanvasGroup>().alpha = 0;
+            }
+            else
+            {
+                rcArray[i].GetComponent<CanvasGroup>().alpha=1;
+                rcArray[i].GetComponent<TextMeshProUGUI>("Index").text = courseIndex.ToString();
+                rcArray[i].GetComponent<TextMeshProUGUI>("CourseName").text = courses[courseIndex].ToString();
+            }
+
         }
     }
     void ToggleGroupAddListener()
@@ -43,6 +103,11 @@ public class MainMenuController : Controller<MainMenuView, MainMenuModel>
             rc.GetComponent<Button>("EnterBtn").onClick.AddListener(OnEnterBtnClick);
             toggles[index].onValueChanged.AddListener((isOn) =>
             {
+                if (isOn)
+                {
+                    _Model.onSelectCourse.Value = courses[index];
+                }
+
                 Color color;
                 ColorUtility.TryParseHtmlString("#FFDC63",out color);
                 rc.GetComponent<TextMeshProUGUI>("Index").color=isOn?color:Color.black;
@@ -55,8 +120,17 @@ public class MainMenuController : Controller<MainMenuView, MainMenuModel>
     }
     void OnEnterBtnClick()
     {
-        SearchTypeEntryController controller = FacadeComponent.Instance.CreateController<SearchTypeEntryController>();
-        controller.OpenView();
+        CloseView();
+        if (_Model.onSelectCourse.Value==CoursType.中药检索)
+        {
+            SearchViewController searchView = FacadeComponent.Instance.CreateController<SearchViewController>();
+            searchView.OpenView();
+        }
+        else
+        {
+            SearchTypeEntryController controller = FacadeComponent.Instance.CreateController<SearchTypeEntryController>();
+            controller.OpenView();
+        }
     }
 }
 public class MainMenuView : View
@@ -92,7 +166,17 @@ public class MainMenuView : View
 }
 public class MainMenuModel : Model
 {
+    /// <summary>
+    /// 当前页索引
+    /// </summary>
+    public BindableProperty<int> currentPageIndex;
+    /// <summary>
+    /// 当前选中课程
+    /// </summary>
+    public BindableProperty<CoursType> onSelectCourse;
     public override void InitProperty()
     {
+        currentPageIndex = CreateProperty<int>();
+        onSelectCourse = CreateProperty<CoursType>();
     }
 }