Test-TaizhouWarehousePhaseII/3d/Assets/3rdParty/ZCalendar/Scripts/ZCalendar.cs

165 lines
5.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace ZTools
{
[RequireComponent(typeof(ZCalendarModel))]
public class ZCalendar : MonoBehaviour
{
/// <summary>
/// <20><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ɻ<EFBFBD>ȡ<EFBFBD><C8A1>ÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD>
/// </summary>
public event Action<ZCalendarDayItem> UpdateDateEvent;
/// <summary>
/// <20><><EFBFBD>Ի<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ijһ<C4B3><D2BB>
/// </summary>
public event Action<ZCalendarDayItem> ChoiceDayEvent;
/// <summary>
/// ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>¼<EFBFBD>
/// </summary>
public event Action<ZCalendarDayItem, ZCalendarDayItem> RangeTimeEvent;
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD>
/// </summary>
public event Action CompleteEvent;
/// <summary>
/// <20><>ȡ<EFBFBD><C8A1>ǰѡ<C7B0>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public ZCalendarDayItem CrtTime { get; set; }
/// <summary>
/// model
/// </summary>
private ZCalendarModel zCalendarModel;
/// <summary>
/// controller
/// </summary>
private ZCalendarController zCalendarController;
/// <summary>
/// <20><><EFBFBD>
/// </summary>
private void Start()
{
zCalendarModel = this.GetComponent<ZCalendarModel>();
zCalendarController = new ZCalendarController()
{
zCalendar = this,
zCalendarModel = zCalendarModel,
pos = this.transform.localPosition
};
zCalendarController.Init();
// <20><><EFBFBD><EFBFBD>ʱ<EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>ʼ<EFBFBD><CABC>
Init();
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ʼ<EFBFBD><CABC>
/// </summary>
public void Init()
{
zCalendarController.InitDate(DateTime.Now);
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>DateTime<6D><65>ʽ<EFBFBD><CABD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public void Init(DateTime dateTime)
{
zCalendarController.InitDate(dateTime);
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>YYYY-MM-DD<44><44>ʽ<EFBFBD><CABD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public void Init(string dateTime)
{
string[] dateTimes = dateTime.Split('-');
zCalendarController.InitDate(new DateTime(int.Parse(dateTimes[0]), int.Parse(dateTimes[1]), int.Parse(dateTimes[2])));
}
/// <summary>
/// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
/// </summary>
public void Show()
{
zCalendarController.Show();
}
/// <summary>
/// <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD>
/// </summary>
public void Hide()
{
zCalendarController.Hide();
}
/// <summary>
/// <20>л<EFBFBD>ʱ<EFBFBD><CAB1>
/// </summary>
/// <param name="obj"></param>
[Obsolete("<22>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>UpdateDateEvent<6E><74>ȡ<EFBFBD>л<EFBFBD><D0BB>·<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ص<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>")]
public void UpdateDate(ZCalendarDayItem obj)
{
if (null != UpdateDateEvent)
{
UpdateDateEvent.Invoke(obj);
}
}
/// <summary>
/// <20><><EFBFBD>ڵ<EFBFBD><DAB5>
/// </summary>
[Obsolete("<22>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>ChoiceDayEvent<6E><74>ȡ<EFBFBD><C8A1>ǰѡ<C7B0><D1A1><EFBFBD>ʱ<EFBFBD><CAB1>")]
public void DayClick(ZCalendarDayItem dayItem)
{
if (null != ChoiceDayEvent)
{
ChoiceDayEvent.Invoke(dayItem);
}
CrtTime = dayItem;
}
/// <summary>
/// <20><><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD>
/// </summary>
[Obsolete("<22>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>CompleteEvent<6E><74>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>")]
public void DateComplete()
{
if (null != CompleteEvent)
{
CompleteEvent.Invoke();
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
/// </summary>
/// <param name="firstDay"></param>
/// <param name="secondDay"></param>
[Obsolete("<22>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>RangeTimeEvent<6E><74>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>")]
public void RangeCalendar(ZCalendarDayItem firstDay, ZCalendarDayItem secondDay )
{
if (null != RangeTimeEvent)
{
RangeTimeEvent.Invoke(firstDay, secondDay);
}
}
/// <summary>
/// 组件销毁时清理资源
/// </summary>
private void OnDestroy()
{
// 清理事件订阅,避免内存泄漏
UpdateDateEvent = null;
ChoiceDayEvent = null;
RangeTimeEvent = null;
CompleteEvent = null;
// 清理引用
zCalendarController = null;
zCalendarModel = null;
CrtTime = null;
// 移除 GC.Collect() 调用
// .NET 的垃圾回收器会自动管理内存,不需要手动调用 GC.Collect()
// 频繁调用 GC.Collect() 会导致垃圾回收效率下降,影响应用程序性能
// 如果有非托管资源需要释放,应该实现 IDisposable 接口,使用 using 语句确保资源释放
}
}
}