using Assets.Scripts; using Assets.Scripts.Apis.Models; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class RowerWelldone : PFUIPanel { [SerializeField] GameObject AllRecord, Record,Rank; Dictionary caches; Transform rankContent, gradeContent; public string id { get; private set; } public override void Show() { base.Show(); Debug.Log("well done show"); } // Start is called before the first frame update protected override void Awake() { caches = new Dictionary(); rankContent = transform.Find("Container/Left/Scroll View").GetComponent().content; gradeContent = transform.Find("Container/Right/Scroll View").GetComponent().content; } void Start() { UIManager.AddEvent(transform.Find("Container/BtnDefine").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b => { startTime = false; Close(); //UIManager.ShowHomePanel(); //UIManager.ShowUserInfoPanel(); }); UIManager.AddEvent(transform.Find("Container/BtnView").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b => { Close(); Application.OpenURL($"{App.websiteDict[App.Host]}rower/record/{id}?Token={App.CurrentUser.cookie}"); }); } // Update is called once per frame void Update() { if (startTime) { timer -= Time.deltaTime; if (timer <= 0) { remainTime--; if (remainTime == 0) { startTime = false; Close(); return; } transform.Find("Container/BtnDefine/Text").GetComponent().text = $"{"DEFINE"}({remainTime.ToString("#0")})"; timer += 1f; } } } float timer = 1f, remainTime = 10f; bool startTime = false; public async void Initial(string id) { Debug.Log("Initial"); if (string.IsNullOrEmpty(id)) return; this.id = id; var res = await ConfigHelper.rowerApi.GetSegmentDataAndRanking(id); if (res.result) { DisplayData(res.data, caches); startTime = true; remainTime = 10f; timer = 1f; transform.Find("Container/BtnDefine/Text").GetComponent().text = $"{"DEFINE"}({remainTime.ToString("#0")})"; } } private void DisplayData(RowerSegmentData data, Dictionary caches) { rankContent.DestroyChildren(); gradeContent.DestroyChildren(); for (int i = 0; i < data.ranks.Count; i++) { var item = data.ranks[i]; var game = Instantiate(Rank); game.transform.Find("Content/Rank").GetComponent().text = (i + 1).ToString("00"); game.transform.Find("Content/NickName").GetComponent().text = item.NickName; Utils.DisplayImageTempDict(game.transform.Find("Content/Avatar").GetComponent(), item.WxHeadImg, caches); game.transform.Find("Content/Time").GetComponent().text = data.info.Type == 1 ? TimeSpan.FromSeconds(item.Time).ToString() : item.TotalDistance.ToString("#0M"); game.transform.SetParent(rankContent); game.transform.localScale = Vector3.one; game.SetActive(true); if (item.UserId == App.CurrentUser.Id) { game.transform.Find("Content/Rank").GetComponent().color = Utils.HexToColorHtml("#f93086"); game.transform.Find("Content/NickName").GetComponent().color = Utils.HexToColorHtml("#f93086"); game.transform.Find("Content/Time").GetComponent().color = Utils.HexToColorHtml("#f93086"); } else { game.transform.Find("Content/Rank").GetComponent().color = Utils.HexToColorHtml("#ffffff"); game.transform.Find("Content/NickName").GetComponent().color = Utils.HexToColorHtml("#ffffff"); game.transform.Find("Content/Time").GetComponent().color = Utils.HexToColorHtml("#ffffff"); } } for (int i = 0; i < data.segmentList.Count; i++) { var item = data.segmentList[i]; var game = i == 0 ? Instantiate(AllRecord) : Instantiate(Record); var content = i != 0 ? game.transform.Find("Content") : game.transform; content.Find("Index").GetComponent().text = i == 0 ? "ALL" : i.ToString("00"); content.Find("Time").GetComponent().text = TimeSpan.FromSeconds(item.Ticks).ToString(); content.Find("Distance").GetComponent().text = item.Distance.ToString("#0"); content.Find("500").GetComponent().text = TimeSpan.FromSeconds(item.Speed).ToString(); content.Find("Power").GetComponent().text = item.Power.ToString("#0"); content.Find("HR").GetComponent().text = item.HeartRate.ToString("#0"); content.Find("Count").GetComponent().text = item.StrokeCount.ToString("#0"); content.Find("Carlories").GetComponent().text = item.Energy.ToString("#0"); //game.transform.Find("Content/Rank").GetComponent().text = (i + 1).ToString("00"); //game.transform.Find("Content/NickName").GetComponent().text = item.NickName; //Utils.DisplayImageTempDict(game.transform.Find("Content/Avatar").GetComponent(), item.WxHeadImg, caches); //game.transform.Find("Content/Time").GetComponent().text = data.info.Type == 1 ? TimeSpan.FromSeconds(item.Time).ToString() : item.TotalDistance.ToString("#0"); game.transform.SetParent(gradeContent); game.transform.localScale = Vector3.one; game.SetActive(true); } transform.Find("Container/Left/MyRank").GetComponent().text = data.info.MyRank; transform.Find("Container/Right/Time").GetComponent().text = data.info.CreateTime; } }