|
@@ -24,6 +24,8 @@ public class ShoppingController : MonoBehaviour
|
|
|
private Button yesButton, noButton;
|
|
|
private Label msgBody;
|
|
|
private VisualElement msgRoot, msgField;
|
|
|
+ private TextField qtyField;
|
|
|
+ int puchaseQty = 1; // 购买数量,默认1个
|
|
|
|
|
|
// 选中的产品
|
|
|
private string selectedItemId, selectedItemDesc, selectedItemPrice;
|
|
@@ -53,8 +55,10 @@ public class ShoppingController : MonoBehaviour
|
|
|
msgBody = msgField.Q<Label>("msgBody");
|
|
|
yesButton = msgField.Q<Button>("msgYes");
|
|
|
noButton = msgField.Q<Button>("msgNo");
|
|
|
+ qtyField = msgField.Q<TextField>("qtyField");
|
|
|
noButton.clicked += MsgNoClick;
|
|
|
yesButton.clicked += MsgYesClick;
|
|
|
+ qtyField.RegisterValueChangedCallback(OnQtyFieldValueChanged);
|
|
|
|
|
|
//初始化设定
|
|
|
LanguageSetting();
|
|
@@ -92,6 +96,8 @@ public class ShoppingController : MonoBehaviour
|
|
|
yesButton.text = textValue;
|
|
|
textValue = GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "shoppingUI", "button", "no", EnviromentSetting.languageCode });
|
|
|
noButton.text = textValue;
|
|
|
+ textValue = GameTool.GetValueAtPath(EnviromentSetting.languageData, new string[] { "shoppingUI", "message_box", "qty", EnviromentSetting.languageCode });
|
|
|
+ qtyField.label = textValue;
|
|
|
}
|
|
|
|
|
|
/*获取所有产品列表,切换商品分类之后,需要重新读取和加载
|
|
@@ -207,6 +213,8 @@ public class ShoppingController : MonoBehaviour
|
|
|
selectedItemPrice = price;
|
|
|
msgBody.text = description;
|
|
|
msgRoot.visible = true;
|
|
|
+ qtyField.value = "1"; // 重置数量输入框
|
|
|
+ puchaseQty = 1; // 重置购买数量
|
|
|
}
|
|
|
|
|
|
// 数据读取
|
|
@@ -280,7 +288,7 @@ public class ShoppingController : MonoBehaviour
|
|
|
WWWForm form = new();
|
|
|
form.AddField("user_id", UserProperty.userId);
|
|
|
form.AddField("item_id", itemId);
|
|
|
- form.AddField("qty", 1);
|
|
|
+ form.AddField("qty", puchaseQty);
|
|
|
StartCoroutine(WebController.PostRequest(url, form, callback: PurchaseItemCallback));
|
|
|
}
|
|
|
|
|
@@ -309,7 +317,32 @@ public class ShoppingController : MonoBehaviour
|
|
|
{
|
|
|
Debug.Log(data["message"]);
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
+ private void OnQtyFieldValueChanged(ChangeEvent<string> evt)
|
|
|
+ {
|
|
|
+ // 尝试将输入内容转换为整数
|
|
|
+ if (int.TryParse(evt.newValue, out int value))
|
|
|
+ {
|
|
|
+ // 检查是否在 1 到 999 的范围内
|
|
|
+ if (value < 1)
|
|
|
+ {
|
|
|
+ qtyField.value = "1"; // 如果小于 1,自动修正为 1
|
|
|
+ }
|
|
|
+ else if (value > 99)
|
|
|
+ {
|
|
|
+ qtyField.value = "99"; // 如果大于 999,自动修正为 999
|
|
|
+ }
|
|
|
+ yesButton.SetEnabled(true); // 启用确认按钮
|
|
|
+ puchaseQty = value; // 更新购买数量
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ // 如果输入不是有效的整数,清空或提示用户
|
|
|
+ qtyField.value = ""; // 清空输入
|
|
|
+ yesButton.SetEnabled(false); // 禁用确认按钮
|
|
|
+ Debug.Log("请输入有效的整数!");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|