Files
ChunilENG/Assets/Scripts/UI/Panel_WorkTimeAnalysis.cs

138 lines
4.2 KiB
C#
Raw Normal View History

2025-02-20 09:59:37 +09:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using WI;
using UnityEngine.UI;
2025-03-11 10:23:44 +09:00
using TMPro;
using System;
2025-02-20 09:59:37 +09:00
namespace CHN
{
public class Panel_WorkTimeAnalysis : PanelBase, ISingle
2025-02-20 09:59:37 +09:00
{
2025-03-11 10:23:44 +09:00
private Button Button_StartDay;
private Button Button_EndDay;
private TextMeshProUGUI Text_StartDay;
private TextMeshProUGUI Text_EndDay;
private TMP_Dropdown Dropdown_Facility;
private TMP_InputField InputField_WorkOrderNumber;
private Button Button_Search;
2025-02-20 09:59:37 +09:00
private Button Button_Close;
2025-03-11 10:23:44 +09:00
private TextMeshProUGUI ITEMCD;
2025-02-20 09:59:37 +09:00
2025-03-11 10:23:44 +09:00
private UI_Calendar ui_Calendar;
2025-03-12 09:55:47 +09:00
private RectTransform ChartData;
public UI_BarChart barChart;
private Panel_Effect effect;
2025-03-11 10:23:44 +09:00
public Action<string, string, string, string> onSearchData;
public Action<string> onClose;
public float fadeTime;
2025-02-20 09:59:37 +09:00
public override void AfterAwake()
{
2025-03-11 10:23:44 +09:00
ui_Calendar = transform.GetComponentInChildren<UI_Calendar>(true);
2025-03-12 09:55:47 +09:00
barChart = transform.GetComponentInChildren<UI_BarChart>();
2025-03-11 10:23:44 +09:00
Button_Close.onClick.AddListener(OnClickCloseButton);
2025-03-11 10:23:44 +09:00
Button_StartDay.onClick.AddListener(OnClickStartDayBtn);
Button_EndDay.onClick.AddListener(OnClickEndDayBtn);
Button_Search.onClick.AddListener(OnClickSearchBtn);
ui_Calendar.Close();
Text_StartDay.text = DateTime.Now.ToString("yyyy-MM-dd");
Text_EndDay.text = DateTime.Now.ToString("yyyy-MM-dd");
2025-03-12 09:55:47 +09:00
ChartData.gameObject.SetActive(false);
gameObject.transform.localScale = Vector3.zero;
}
public void Open()
{
effect.ActivePanel(gameObject);
gameObject.SetActive(true);
gameObject.transform.SetAsLastSibling();
StopAllCoroutines();
StartCoroutine(ScaleUp());
2025-02-20 09:59:37 +09:00
}
public void Close()
{
effect.DeactivePanel(gameObject);
gameObject.SetActive(false);
gameObject.transform.localScale = Vector3.zero;
}
public void OnClickCloseButton()
2025-02-20 09:59:37 +09:00
{
onClose?.Invoke("<22>۾<EFBFBD> <20>ð<EFBFBD> <20>м<EFBFBD>");
2025-02-20 09:59:37 +09:00
}
2025-03-11 10:23:44 +09:00
private void OnClickStartDayBtn()
{
ui_Calendar.Open(Text_StartDay);
}
private void OnClickEndDayBtn()
{
ui_Calendar.Open(Text_EndDay);
}
public void SetFacilityDropDown(WorkConditionFacilityData facilityData)
{
Dropdown_Facility.ClearOptions();
string[] data = facilityData.data;
List<TMP_Dropdown.OptionData> optionList = new List<TMP_Dropdown.OptionData>();
foreach (string str in data)
{
optionList.Add(new TMP_Dropdown.OptionData(str));
}
Dropdown_Facility.AddOptions(optionList);
Dropdown_Facility.value = 0;
}
private void OnClickSearchBtn()
{
DateTime startDate = Convert.ToDateTime(Text_StartDay.text);
DateTime endDate = Convert.ToDateTime(Text_EndDay.text);
string startDateString = startDate.ToString("yyyy-MM-ddTHH:mm:ssZ");
string endDateString = endDate.ToString("yyyy-MM-ddTHH:mm:ssZ");
string MCHCD = Dropdown_Facility.options[Dropdown_Facility.value].text;
string WO = InputField_WorkOrderNumber.text;
onSearchData?.Invoke(startDateString, endDateString, MCHCD, WO);
}
2025-03-12 09:55:47 +09:00
public void SetWorkTimeData(List<BarChartData> barChartData)
{
ChartData.gameObject.SetActive(true);
if (barChartData.Count > 0)
{
ITEMCD.text = barChartData[0].itemcd;
}
barChart.SetChartData(barChartData);
}
IEnumerator ScaleUp()
{
float timer = 0f;
float percent = 0f;
while (percent < 1)
{
timer += Time.deltaTime;
percent = timer / fadeTime;
transform.localScale = Vector3.Lerp(transform.localScale, Vector3.one, percent);
yield return null;
}
}
2025-02-20 09:59:37 +09:00
}
2025-02-20 09:59:37 +09:00
}