using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using DataModel.Model; using System.Linq; using LitJson; public class CheckPanelSubjectItem : MonoBehaviour { practicesubject practicesubject1; List<practiceseat> practiceseats1; /// <summary> /// 科目管理的seatitem /// </summary> [HideInInspector] public List<CheckPanelSeatItem> items; /// <summary> /// 本人选择的岗位 /// </summary> [HideInInspector] public CheckPanelSeatItem MyChose; public Button self; public Text Name; /// <summary> /// 未启动 /// </summary> public Image state0; /// <summary> /// 进行中 /// </summary> public Image state1; /// <summary> /// 已结束 /// </summary> public Image state2; public ToggleGroup toggleGroup; public void Init(practicesubject practicesubject,int index) { practicesubject1 = practicesubject; Name .text= practicesubject1.Name; //if (practicesubject1.State==0) //{ // state0.gameObject.SetActive(true); // state1.gameObject.SetActive(false); // state2.gameObject.SetActive(false); //} //else if (practicesubject1.State == 1) //{ // state0.gameObject.SetActive(false); // state1.gameObject.SetActive(true); // state2.gameObject.SetActive(false); //} //else if (practicesubject1.State == 2) //{ // state0.gameObject.SetActive(false); // state1.gameObject.SetActive(false); // state2.gameObject.SetActive(true); //} //获取所有practiceseat StartCoroutine(MyNetMQClient.CallGet("http://" + MyNetMQClient.CallIP + "/Handler/Practice.ashx?action=querypracticeseat&PracticeSubjectId=" + practicesubject1.Id, str => { var json = JsonMapper.ToObject<CallResultList<practiceseat>>(str); if (json.state) { //生成岗位 practiceseats1 = json.data.OrderBy(a=>a.SeatNo).ToList(); items = new List<CheckPanelSeatItem>(); foreach (var item in practiceseats1) { GameObject obj = Instantiate<GameObject>(CheckPanel.instance.seatItemPrefb, CheckPanel.instance.seatGroup.transform); CheckPanelSeatItem script = obj.GetComponent<CheckPanelSeatItem>(); items.Add(script); script.Init(item, this); if (index == 0) { obj.SetActive(true); } else { obj.SetActive(false); } } //自己不能重复选择 if (practiceseats1.Any(a => !string.IsNullOrEmpty(a.UserAccount) && a.UserAccount == LoadManage.Instance.me.user.user_name)) { items.ForEach(b => { b.toggle.interactable = false; }); } //点击科目按钮 self.onClick.AddListener(() => { ShowSeat(); ShowSuebjcet(); ChangeButtonState(); }); //默认显示第一个 if(index==0) { ShowSuebjcet(); transform.GetComponent<Image>().sprite = CheckPanel.instance.选中sprite; } else { transform.GetComponent<Image>().sprite = CheckPanel.instance.未选中sprite; } } else { Debug.LogError(json.message); } })); } /// <summary> /// 切换seat /// </summary> public void ShowSeat() { CheckPanel.instance.seatGroup.transform.GetComponentsInChildren<CheckPanelSeatItem>(true).ToList().ForEach(a => { if(a.practiceseat1.Field_Char1== practicesubject1.Id) { a.gameObject.SetActive(true); } else { a.gameObject.SetActive(false); } }); } /// <summary> /// 切换subject /// </summary> public void ShowSuebjcet() { CheckPanel.instance.subejctText.text = practicesubject1.Name; CheckPanel.instance.训练方式Text.text = practicesubject1.OperateModel; CheckPanel.instance.操作流程Text.text = practicesubject1.OperateProcess; } private void ChangeButtonState() { CheckPanel.instance.subjectGroup.transform.GetComponentsInChildren<CheckPanelSubjectItem>(true).ToList().ForEach(a => { if (a == this) { a.transform.GetComponent<Image>().sprite = CheckPanel.instance.选中sprite; } else { a.transform.GetComponent<Image>().sprite = CheckPanel.instance.未选中sprite; } }); } }