FM/Assets/Scripts/FUJIFILM/UI/Item/ShopCartItem.cs

130 lines
4.0 KiB
C#

using System;
using HK.FUJIFILM;
using Runtime;
using UnityEngine.UI;
using TMPro;
using UnityEngine;
using ZXL.Helper;
namespace HK
{
public class ShopCartItem : UIItemBase
{
[SerializeField] private Button btnDelete;
[SerializeField] private Button btnEditor;
[SerializeField] private RawImage rawPic;
[SerializeField] private TMP_Text txtProductName;
[SerializeField] private Button btnAdd;
[SerializeField] private TMP_Text txtCount;
[SerializeField] private Button btnRemove;
[SerializeField] private TMP_Text txtMonetary;
[SerializeField] private TMP_Text txtPrice;
ShoppingCartData shoppingCartData;
public Action OnUpdateCallback;
public Action OnDeleteCallback;
public override void OnInit()
{
base.OnInit();
#region AutoGen_Init
btnDelete = GetValue<Button>("btnDelete");
btnEditor = GetValue<Button>("btnEditor");
rawPic = GetValue<RawImage>("rawPic");
txtProductName = GetValue<TMP_Text>("txtProductName");
btnAdd = GetValue<Button>("btnAdd");
txtCount = GetValue<TMP_Text>("txtCount");
btnRemove = GetValue<Button>("btnRemove");
txtMonetary = GetValue<TMP_Text>("txtMonetary");
txtPrice = GetValue<TMP_Text>("txtPrice");
btnDelete.onClick.AddListener(OnClickbtnDelete);
btnEditor.onClick.AddListener(OnClickbtnEditor);
btnAdd.onClick.AddListener(OnClickbtnAdd);
btnRemove.onClick.AddListener(OnClickbtnReduce);
#endregion
}
#region AutoGen_Method
private void OnClickbtnEditor()
{
}
private void OnClickbtnDelete()
{
ShoppingCartManager.Instance.RemoveFromCart(shoppingCartData);
OnDeleteCallback?.Invoke();
GameObject.Destroy(gameObject);
}
private void OnClickbtnReduce()
{
if (shoppingCartData.count <= 1)
{
return;
}
shoppingCartData.count--;
ShoppingCartManager.Instance.RefreshCart();
txtCount.text = shoppingCartData.count.ToString();
OnUpdateCallback?.Invoke();
}
private void OnClickbtnAdd()
{
if (shoppingCartData.count >= 10)
{
return;
}
shoppingCartData.count++;
ShoppingCartManager.Instance.RefreshCart();
txtCount.text = shoppingCartData.count.ToString();
OnUpdateCallback?.Invoke();
}
#endregion
public void SetData(ShoppingCartData data)
{
shoppingCartData = data;
var texture2D = TextureHelper.ConvertByteArrayToTexture2D(data.previewImage);
rawPic.texture = texture2D;
// rawPic.rectTransform.sizeDelta = new Vector2(texture2D.width, texture2D.height);
RawImageScaler.SetTextureWithAspectRatio(rawPic, texture2D);
txtCount.text = data.count.ToString();
txtMonetary.text = ShoppingCartManager.Instance.ShoppingCart.monetary;
txtPrice.text = data.bookAmount.ToString("F");
txtProductName.text = data.bookName;
}
public override void OnDispose()
{
base.OnDispose();
#region AutoGen_Dispose
btnDelete.onClick.RemoveListener(OnClickbtnDelete);
btnEditor.onClick.RemoveListener(OnClickbtnEditor);
btnAdd.onClick.RemoveListener(OnClickbtnAdd);
btnRemove.onClick.RemoveListener(OnClickbtnReduce);
btnDelete = null;
btnEditor = null;
rawPic = null;
txtProductName = null;
btnAdd = null;
txtCount = null;
btnRemove = null;
txtMonetary = null;
txtPrice = null;
#endregion
}
}
}