FM/Assets/Scripts/Runtime/UI/Item/CommodityItem.cs

116 lines
3.4 KiB
C#
Raw Normal View History

2025-07-10 23:16:27 +08:00
using System;
using Runtime;
2025-06-17 09:31:12 +08:00
using UnityEngine.UI;
using TMPro;
using UnityEngine;
2025-07-10 23:16:27 +08:00
using ZXL.Helper;
2025-06-17 09:31:12 +08:00
namespace HK
{
public class CommodityItem : UIItemBase
{
2025-07-10 23:16:27 +08:00
[SerializeField] private Button btnEditor;
[SerializeField] private Button btnDelete;
[SerializeField] private RawImage rawPic;
[SerializeField] private Button btnReduce;
[SerializeField] private TMP_Text txtCount;
[SerializeField] private Button btnAdd;
[SerializeField] private TMP_Text txtPrice;
[SerializeField] private TMP_Text txtProductName;
ShoppingCartData shoppingCartData;
public Action OnUpdateCallback;
2025-06-17 09:31:12 +08:00
public override void OnInit()
{
base.OnInit();
2025-07-10 23:16:27 +08:00
2025-06-17 09:31:12 +08:00
#region AutoGen_Init
2025-07-10 23:16:27 +08:00
btnEditor = GetValue<Button>("btnEditor");
btnDelete = GetValue<Button>("btnDelete");
rawPic = GetValue<RawImage>("rawPic");
btnReduce = GetValue<Button>("btnReduce");
txtCount = GetValue<TMP_Text>("txtCount");
btnAdd = GetValue<Button>("btnAdd");
txtPrice = GetValue<TMP_Text>("txtPrice");
txtProductName = GetValue<TMP_Text>("txtProductName");
btnEditor.onClick.AddListener(OnClickbtnEditor);
btnDelete.onClick.AddListener(OnClickbtnDelete);
btnReduce.onClick.AddListener(OnClickbtnReduce);
btnAdd.onClick.AddListener(OnClickbtnAdd);
2025-06-17 09:31:12 +08:00
#endregion
}
#region AutoGen_Method
2025-07-10 23:16:27 +08:00
private void OnClickbtnEditor()
{
}
private void OnClickbtnDelete()
{
ShoppingCartManager.Instance.RemoveFromCart(shoppingCartData);
GameObject.Destroy(gameObject);
}
private void OnClickbtnReduce()
{
if (shoppingCartData.count<=1)
{
return;
}
2025-07-10 23:16:27 +08:00
shoppingCartData.count--;
ShoppingCartManager.Instance.RefreshCart();
2025-07-10 23:16:27 +08:00
txtCount.text = shoppingCartData.count.ToString();
OnUpdateCallback?.Invoke();
}
private void OnClickbtnAdd()
{
if (shoppingCartData.count >= 10)
{
return;
}
2025-07-10 23:16:27 +08:00
shoppingCartData.count++;
ShoppingCartManager.Instance.RefreshCart();
2025-07-10 23:16:27 +08:00
txtCount.text = shoppingCartData.count.ToString();
OnUpdateCallback?.Invoke();
}
2025-06-17 09:31:12 +08:00
#endregion
2025-07-10 23:16:27 +08:00
public void SetData(ShoppingCartData data)
{
shoppingCartData = data;
rawPic.texture = TextureHelper.ConvertByteArrayToTexture2D(data.previewImage);
txtCount.text = data.count.ToString();
txtPrice.text = data.bookAmount.ToString("F");
2025-07-10 23:16:27 +08:00
txtProductName.text = data.bookName;
}
2025-06-17 09:31:12 +08:00
public override void OnDispose()
{
base.OnDispose();
2025-07-10 23:16:27 +08:00
2025-06-17 09:31:12 +08:00
#region AutoGen_Dispose
2025-07-10 23:16:27 +08:00
btnEditor.onClick.RemoveListener(OnClickbtnEditor);
btnDelete.onClick.RemoveListener(OnClickbtnDelete);
btnReduce.onClick.RemoveListener(OnClickbtnReduce);
btnAdd.onClick.RemoveListener(OnClickbtnAdd);
btnEditor = null;
btnDelete = null;
rawPic = null;
btnReduce = null;
txtCount = null;
btnAdd = null;
txtPrice = null;
txtProductName = null;
2025-06-17 09:31:12 +08:00
#endregion
}
}
}