using System.Collections; using System.Collections.Generic; using UnityEngine; using WI; using UnityEngine.UI; using static MQTT; using System; namespace CHN { public class Panel_CompleteAlramHistory : PanelBase { public UI_CompleteTimeAlarmInfo prefab_completeTimeAlarmInfo; public ScrollRect ScrollView_CompleteAlramHistory; public Dictionary completeInfoList = new(); public List notCheckAlramList = new(); public Action onCheckAlarm; public Action onCheckAlarmData; public override void AfterAwake() { prefab_completeTimeAlarmInfo = Resources.Load("Prefabs/UI/PRF_UI_CompleteTimeAlramInfo"); notCheckAlramList.Clear(); completeInfoList.Clear(); SetActive(false); } public void SetActive() { var isActive = rectTransform.gameObject.activeSelf; var active = isActive ? false : true; SetActive(active); } public void Open() { SetActive(true); } public void Close() { SetActive(false); } public void SetAlarmInfoItems(List infos) { for (int i = 0; i < infos.Count; i++) { if (completeInfoList.ContainsKey(infos[i].completeInfo.worknm)) { completeInfoList[infos[i].completeInfo.worknm].SetInfo(infos[i].completeInfo); } else { var infoItem = Instantiate(prefab_completeTimeAlarmInfo, ScrollView_CompleteAlramHistory.content); infoItem.SetInfo(infos[i].completeInfo); infoItem.onCheck += CheckAlram; infoItem.isCheck = infos[i].isCheck; completeInfoList.Add(infos[i].completeInfo.worknm, infoItem); if (!infoItem.isCheck) { notCheckAlramList.Add(infoItem); } } } BlinkAlarmItems(); } private void BlinkAlarmItems() { onCheckAlarm?.Invoke(notCheckAlramList.Count); } private void CheckAlram(UI_CompleteTimeAlarmInfo completeTimeAlarmInfo) { notCheckAlramList.Remove(completeTimeAlarmInfo); onCheckAlarmData?.Invoke(completeTimeAlarmInfo.completeInfo, completeTimeAlarmInfo.isCheck); onCheckAlarm?.Invoke(notCheckAlramList.Count); } } }